لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/23/21 في كل الموقع
-
إن استخدام Laravel Fortify هو فقط لتسهيل الإجراءات الأساسية لعمليات التحقق وتسجيل الدخول وإعادة تعيين كلمة المرور...إلخ. بالإضافة إلى أنه يقوم بإنشاء المسارات لها وبذلك يسهّل العمل ويختصر الوقت. في حال الحاجة لوجود مسارات مخصصة أو تعديل هذه المسارات التي يقوم fortify بإنشائها فعندها لا حاجة لاستخدامه، ويمكن إنشائها بشكل مخصص كما هو الوضع الطبيعي في أي مشروع. لأن أي تعديل على الملف التالي: /vendor/laravel/fortify/routes/routes.php وعند القيام بالأمر: composer update ستذهب أي تعديلات تم إجرائها ضمن المجلد vendor. وبالتالي لن يتم حفظها بشكل دائم. أما عند استخدام Fortify وإضافة مسارات أخرى في المشروع فيتم ذلك عن طريق وضع وسيط middleware باسم fortify ضمن نفس مجلد تعريف مسارات المشروع web.php كالتالي: Route::group(['middleware' => config('fortify.middleware', ['web'])], function () { Route::get('home', function () { return 'Home'; }) }); ويمكن أيضاً استخدام auth لمسارات معيّنة عن طريق إضافة: Route::get('newpage', function () { return 'newpage'; }) ->middleware(['auth']);2 نقاط
-
سبب المشكلة التي تواجهها هو عدم توافق بين الإصدارات، فيبدو أنك تقوم باستخدام مكتبة React /DNS ضمن التطبيق، و إن البعض من إصداراتها غير متوافق مع آخر نسخة من Laravel websockets. الحل هو بأن تقوم بتخفيض النسخة المستخدمة من Reac/DNS إلى النسخة 0.4.19 عن طريق composer كالتالي: composer require react/dns:^0.4.19 بعدها يمكنك إعادة التشغيل عن طريق نفس الأمر للتأكد من أن الإصدار 0.4.19 متوافق ويعمل بشكل صحيح مع laravel websockets: php artisan websockets:serve2 نقاط
-
على حسب المشروع، قد يكون المشروع عبارة عن تحويل ملف فوتوشوب إلى HTML & CSS، حينها يتم تسليم ملفات HTML و CSS والصور والخطوط المستخدمه في الموقع، أو قد يكون المشروع عبارة عن عمل لوحة تحكم لموقع موجود مسبقًا، حينها يعطيك العميل ملفات HTML و CSS وتصميم لوحة التحكم التي يريدها، فتقوم بعمل لوحة التحكم حسب المطلوب، وترسل ملفات لوحة التحكم بكل محتوياتها. وربما يريد العميل إصلاح مشكلات تواجهة في موقعه (مثلاً، القائمة الجانبية لا تعمل على الهواتف بسبب مشكلة CSS)، فيعطيك العميل ملفات الصفحة التي بها المشكلة لتقوم بإصلاحها وتعيد إرسال هذه الملفات إليه. وليس دائماً يعرف العميل كيف يتعامل مع ملفات المشروع النهائية، فعليك دائماً أن تتفق معه على صيغة الملفات النهائية، وما إن كان سيتطيع التعامل معها بنفسه أم أن لديه شخص آخر ذو خبرة سيقوم بتركيب هذه الملفات في الموقع (مدير خوادم على سبيل المثال).2 نقاط
-
لقد بدأت في تعلم React بدافع الفضول وأردت معرفة الفرق بين React و React Native - على الرغم من أنني لم أجد إجابة مرضية باستخدام Google. يبدو أن React و React Native لهما نفس التنسيق. هل لديهم تركيب مختلف تمامًا؟2 نقاط
-
ReactJS هي مكتبة JavaScript ، تدعم كل من الويب الأمامي ويتم تشغيلها على خادم لبناء واجهات المستخدم وتطبيقات الويب. وتتبع مفهوم المكونات القابلة لإعادة الاستخدام. React Native هو إطار عمل متنقل يستخدم محرك JavaScript المتاح على المضيف ، مما يسمح لك بإنشاء تطبيقات جوال لأنظمة أساسية مختلفة (iOS و Android و Windows Mobile) في JavaScript الذي يسمح لك باستخدام ReactJS لبناء مكونات قابلة لإعادة الاستخدام والتواصل بمكونات أصلية. كلاهما يتبع امتداد بناء جملة JSX لجافا سكريبت. الذي يتم تجميعه إلى مكالمات React.createElement في الخلفية2 نقاط
-
السلام عليكم اولاً لاداعي للخوف فالأمر بسيط جداً و قد تواجهك بعض الصعوبات في البداية ولكنك ستتغلب عليها الأمر المهم هو أن تحافظ على ثقتك بنفسك. بالنسبة لمراحل العمل على منصات العمل الحر فهي ثلاث مراحل : مرحلة تلقي العروض وفي هذه المرحلة يتقدم من يجد أن الوظيفة المعروضة تناسبه بعرضه ويوضح تفاصيل العرض والقيمة المادية والزمن الذي يحتاجه لإنجاز المهمه. المرحلة الثانية هي مرحلة تنفيذ المشروع و تأتي هذه المرحلة بعد أن يتواصل معك العميل ويتم الإتفاق ويقوم بايداع مبلغ العمل في مستقل و يوافق على عرضك بعدها ينتقل النقاش بينكما إلى مايعرف بنقاش الصفقة ويجب عليك أن توضح للعميل جميع التفاصيل هنا وان لاتتواصل خارج المنصة لتضمن حقك . اخيراً تأتي مرحلة استلام المشروع فإما أن يقوم العميل بالضغط على استلام المشروع من نفسه او ان تطلب انت ان تسلم المشروع وترفع الملفات الخاصة به و بعد ذلك يتم تحويل المبلغ لك ولكن لا يمكنك سحبه قبل مرور فترة الضمان وهي 15 يوم. اخيراً ما تعلمته كافي لدخول الى مجال العمل الحر و القدرة على المنافسة فقط قم بتنفيذ عدد من المشاريع حتى تضعها في معرض اعمالك.2 نقاط
-
عليك فقط أن تقوم بالتطبيق على مشاريع حقيقية في البداية لكي تختبر قدراتك في العمل وتستطيع أن تقدر الوقت والتكلفة اللازمة لإنهاء المشروع، ويمكنك أن تقوم بذلك من خلال تصفح المشاريع المطلوب في مواقع العمل الحر مثل مستقل وتقوم بعمل بعض من هذه المشاريع دون أن تقوم بالتقديم عليها، فالهدف من هذه الخطوة هو التأكد من قدراتك في عمل مشاريع حقيقية ومطلوبة في السوق. خلال هذه الخطوة يمكنك أن تقيس مقدار الوقت الوقت اللازم لعمل مشروع معين ومقدار المجهود المبذول وبالتالي تستطيع أن تقدر سعر ساعة العمل الخاص بك. هنا خطوات تحديد وإختيار المشروع المناسب لك: تصفح المشاريع الموجود الخاصة بالبرمجة وتصميم المواقع من هنا أقرأ عنوان ووصف كل مشروع يمكنك القيام به، أقرأ وصف المشروع جيدًا وتأكد من فهمك لكل المطلوب تنفيذه. قدر ثمن مجهودك والوقت اللازم لتنفيذ المشروع وقارنه مع الميزانية والمدةالمقترحة لتنفيذ المشروع (موجودة على اليسار في بطاقة المشروع). قدم عرضك وأكتب كل التفاصيل التي تستطيع القيام بها والوقت اللازم لك لكي تنهي المشروع. إنتظر رسالة من صاحب المشروع للتواصل، سوف يسألك عن بعض التفاصيل الإضافية على الأغلب وسيقارن بينك وبين كل المستقلين الذي قدموا على نفس المشروع أيضُا عند الإتفاق مع العميل وإختياره لك والموافقة على عرضك سوف تصلك رسالة تخبرك بأن صاحب المشروع قد بدأ صفقة معك، وحينها يمكنك أن تتواصل معه من خلال صفحة المناقشة (ستظهر لك بعد الموافقة على عرضك). أنجز المشروع بأسرع ما يمكن وبأعلى جودة ممكنة. أخبر صاحب المشروع بكل جديد من تغيرات وإنجازات في صفحة المناقشة لا تتواصل أبدًا خارج المنصة للحفاظ على حقوقك حتى إن طلب منك العميل، وفي حالة تواصلك معه خارج موقع مستقل أكتب كل التفاصيل على الموقع أيضًا. سلم كل ملفات المشروع حسب المتفق عليه في صفحة نقاش المشروع، ولا تخشى أن يتم سرقة مجهودك فموقع مستقل تضمن لك كل حقوقك. بعد أن يراجع صاحب المشروع كل الملفات المطلوبة، سيقوم بقبول المشروع وسيتم تحويل تكلفة المشروع إلى حسابك (بعد خصم نسبة موقع مستقل) في خانة الرصيد المعلق لمدة 14 يوم ثم سيمكنك سحبها بأي وسيلة سحب مدعومة في الموقع. أبدأ من خطوة رقم 1 مرة أخرى. لا تنسى أن تتابع مدونة مستقل للحصول على معلومات ونصائح أكثر.2 نقاط
-
انا جديد على مجال web developer , تعلمت HTML - CSS - JavaScript - node.js - Express.js - Git -Github - WordPress .و لم اقم بعمل مشاريع لاى عميل من قبل . انا الان خائف من التقديم على وظائف قبل ما اعرف: ببعت المشروع للعميل مثلا ملفات (HTML, CSS ,JS) . وهل بحتاج من العميل اشياء قبل العمل. ارجوكم عاوز اعرف كل حاجة خاصة بالتعامل مع العميل من الاول الى الاخر.1 نقطة
-
اكتب كود C ++ الذي يعثر على مضاعفة أعداد N باستخدام أي من عبارة الحلقة ، يجب أن تتوقف الحلقة عندما تصل نتيجة الضرب إلى القيمة (500).1 نقطة
-
أستطيع أن أمرر props من مكون component معين إلى مكون ابن بداخله child component، لكني لا أستطيع عمل العكس وهو إرجاع props إلى المكون الأب Parent component في React؟1 نقطة
-
اكتب عمليه تراجعيه تتلقى مؤشر على اول حلقه من سلسله حلقات من نمط صحيح على العمليه ان تنفذ مايلي: ان تبدل كل قيمه حلقه سالبه ب (-1) اي سالب واحد . ان تبدل كل قيمه حلقه موجبه ب (1). سؤال الثاني: اكتب عمليه تتلقى مؤشر على اول حلقه من سلسله حلقات التي حدودها من نمط صحيح (والتي فيها على الاقل حلقه واحده) على العمليه ان تعيد اكبر قيمه في سلسله.1 نقطة
-
نمرر بداية السلسلة للدالة، ونختبر في كل مرة وجود عقدة فارغة أو لا، ثم نختبر قيمة العقدة و نطبق المنطق المطلوب ومن ثم نمرر العقدة التالية للدالية كاستدعاء عودي/تراجعي. Public static void PositiveNegative(Node<int> p) { if (p == null) return; if (p.value > 0) p.value = 1; else if (p.value < 0) p.value = -1; PositiveNegative(p.GetNext()); } لمعرفة أكبر قيمة: نريد تمرير قيمة تحمل أكبر قيمة و لتكن Max_Value، نعيدها عند نهاية السلسلة لأننا عندها سيكون لدينا أكبر قيمة بعد تطبيق منطق الخوارزيمة. في كل خطوة نقارن بين القيمة التي لدينا و القيمة الحالية للعقدة ونسند القيمة الحالية ل Max_Value في حال كانت أكبر.. نستدعي الدالة عوديا و نمرر لها الوسطاء، العقدة التالية و أكبر قيمة حققناها للآن. Public static int PositiveNegative(Node<int> p, int Max_Value) { if (p == null) return Max_Value; if (p.value > Max_Value) Max_Value = p.value; return PositiveNegative(p.GetNext() , Max_Value); } أرجو الاعتماد على نفسك في حل المشكلات البرمجية وعدم الاعتماد على الآخرين.1 نقطة
-
السلام عليكم انا اسأل عن تكلفة إنشاء موقع كوبونات مثل هذا الموقع اسمه كوبون خصم coupon5sm انا امتلك بالفعل موقع لكوبونات الخصم ولكن يعجبني تصميم هذا المواقع ولا اعلم كم تكون تكلفة انشاء موقع بنفس التصميم أعتقد ان الموقع يعمل بنظام ووردبريس ولكن بحثت كثيرا عن القالب المستخدم ولم اجد له اي مصدر مما يعني انه يبدوا قالب خاص بالموقع فهل يوجد اي قوالب قريبة في التصميم من هذا القالب؟ او يجب ان يتم تصميم موقعي من البداية؟ اتمنى مساعدتي وشكرًا لكم1 نقطة
-
حتى لو كان حسابك البنكي بالدولار سيتم التحويل للعملة المحلية لبلدك. المشكلة في التحويل المباشر لحسابك البنكي هي أن الpaypal لا تعرض لك أي تفاصيل عن أسعارها الخاصة بالتحويل بين العملات. أما في حال السحب لبطاقة الvisa يتم خصم 1% من المبلغ وطبعا يمكنك سحب المبلغ كما هو بالدولار وبدون تحويله.1 نقطة
-
أحاول استخدام Fortify في لارافيل. ولكن لاحظت بأن المسارات الافتراضية التي يتم تهيئتها ضمن ملفات المكتبة موجودة في الملف: /vendor/laravel/fortify/routes/routes.php وهي مختلفة عن ملفات المسارات الموجوجة افتراضياً في التطبيق (web و api) فهل يجب علي التعديل على الملف السابق لإضافة أو تعديل مسارات ضمن المشروع؟1 نقطة
-
عند محاولتي لنقل المشروع Laravel إلى خادم خاص وأثناء تثبيت الملفات والمكتبات ضمن لارافيل يظهر لي هذا الخطأ: Cannot create cache directory /home/amir123/.composer/cache/repo/mynewwebsite.org/, or directory is not writable. Proceeding without cache. وبعدها يستمر بتحميل المكتبات. فما معنى هذا الخطأ وهل سيسبب مشكلة في المشروع فيما بعد؟1 نقطة
-
معنى هذا الخطأ هو عدم وجود صلاحيات للكتابة على المسار المذكور. حيث سيتم المتابعة بتحميل المكتبات المستخدمة في Laravel ولكن لن يملك المشروع القدرة على استخدام الكاش بسبب عدم امتلاكه الصلاحيات للكتابة أو التعديل على المجلد cache. لذلك يجب عليك تعديل الصلاحيات على مجلد المشروع بشكل عام أو فقط مجلد الكاش في حال كانت المشكلة موجود فقط ضمنه أولاً: نقوم بتغيير صلاحيات المجموعة على المجلد كالتالي: sudo chown -R amir123 /home/amir123/.composer/cache/repo/mynewwebsite.org بافتراض أن اسم المستخدم الجذر لديك هو كما مذكور في نص السؤال amir123 وأيضاً نقوم بتعديل صلاحيات الكتابة على المجلد Files: sudo chown -R amir123 /home/amir123/.composer/cache/files/ وفي حال بقيت المشكلة، أيضاً حاول تعديل الصلاحيات على composer: sudo chown -R amir123 /home/amir123/.composer ليتمكن من الكتابة وتعديل الملفات في حال كانت إعدادات الخادم لديك عكس ذلك.1 نقطة
-
لدي تطبيق قمت ببنائه باستخدام React و Laravel وأقوم باستعمال websockets ضمن لارافيل. ولكن بعد تهئية الاتصال في websockets ومحاولة تشغيله عن طريق هذا الأمر: php artisan websockets:serve يظهر لدي الخطأ هذا الخطأ مباشرةً: Whoops\Exception\ErrorException : Class BeyondCode\LaravelWebSockets\Statistics\DnsResolver may not inherit from final class (React\Dns\Resolver\Resolver)1 نقطة
-
انا جديد في الموقع وانا مو اعرف البرمجة ممكن حد يساعدني !!!! ...I am new to the site, and I don’t know programming. Can someone please me !!!!1 نقطة
-
اولا شكرا على التوضيح الرائع, لقد انرت لى الطريق ثاتيا ممكن اعرف /المتفق عليه\ زى ايه (يعنى ممكن اسلم العميل الموقع ال انا صصمته على هيئة ملفات html و css و js) هل العميل هيعرف يتعامل مع الموقع كملفات زى كدا1 نقطة
-
تنتشر في فلسطين مكاتب عديدة تقوم بالسحب لك من خلال موقع مستقل أو خمسات, ولكن الأمر المزعج في هذه المكاتب هي العمولة المقتطعة من قبل أصحاب المكاتب و هي كبيرة نوعا ما. يمكنك البحث عن هذه المكاتب والتواصل معها والتفاوض على نسبة العمولة إذا أردت السحب من خلال المكتب. هناك أيضا اشخاص يقومون بالسحب لك ولكن لا أنصح بهم إطلاقاً. هذه المكاتب ممكن أن تقوم بالدفع نقداً أو التحويل إلى حسابك البنكي بعد ما يقومون باستلام الأرباح على حساب paypal الخاص بهم.1 نقطة
-
للأسف وسيلة سحب الأرباح المتاحة حالياً في موقع خمسات ومستقل هي PayPal فقط. يمكنك إنشاء حساب PayPal بدون أي مشاكل لكن للأسف يجب إختيار الدولة إسرائيل، أنا من فلسطين ولدي حساب PayPal وأقوم بسحب أرباحي إلى الـvisa card المتربطة بحسابي البنكي، يمكنك أيضاً سحب الأرباح مباشرة إلى حسابك البنكي الفلسطيني لكن للأسف لا يمكنك سحبه بالدولار بل سترغمك paypal على تحويل المبلغ إلى عملتك المحلية " شيقل " قبل تحويله لحسابك.1 نقطة
-
أجعل متغير الحلقة i بدلًا من N (في السطر 10) لأننا سنستعمل المتغير N في تخزين الرقم الذي أدخله المستخدم (في السطر 8) نبدأ الحلقة من الرقم n وليس من 1 (في السطر 10) كما أننا لا نضيف 1 على متغير الحلقة بدل نزيد عليه قيمة N في كل مرة، لذلك إجعل N++ تصبح i=i+N ، بهذه الطريقة سيتم زيادة قيمة i بمقدار N أضف جملة cout داخل حلقة التكرار (السطر 12)1 نقطة
-
بما أن توابع redux يجب أن تكون pure أي لا يجوز التعديل على state object يدوياً بل إرجاع object جديد مختلف عن السابق إن أردنا التعديل، وفق هذا المبدأ فإن هذا السطر: arr: state.arr.push([action.newItem]) خاطئ ﻷنه يعدل على المصفوفة بشكل مباشر، الحل هو التالي: arr: [...state.arr,action.newItem] السطر السابق يستعمل ميزة array rest حيث تنتج مصفوفة جديدة فيها كل عناصر state.arr ومضافاً إليها action.newItem، يمكن استخدام ميزة array rest لدمج مصفوفتين أيضاً بالشكل اﻵتي: arr: [...state.arr,...action.newItems] ويمكن إضافة عنصر في بداية المصفوفة بدلاً من نهايتها هكذا: arr: [action.newItem,...state.arr] بالمناسبة أنا أنصحك أن تتعلم redux-toolkit وتستخدمها في جميع مشاريع redux وهذا ما ينصح به فريق مطوري redux، لماذا؟ ﻷن مثالك بعد redux-toolkit يمكن استبداله بالكود التالي: import {createSlice} from "@reduxjs/toolkit"; const slice = createSlice({ name: "items", initialState: [], reducers: { addItem(state,action){ state.arr.push(action.payload); } } }); const {actions,reducer} = slice; const {addItem} = actions; export default reducer; export addItem; // addItem is an action creator so we dispatch it like this dispatch(addItem(newItem)); لاحظ أننا استعملنا state.arr.push وهذا صحيح ﻷن redux-toolkit تستعمل مكتبة اسمها immer التي تعمل بالطريقة التالية: الـstate الممرر في addItem method هو draft State object مختلف عن state object المخزن داخل redux ، كل تعديل على هذا draft object تلتقطه مكتبة immer المستعملة من قبل redux-toolkit، عند اﻻنتهاء من التعديلات ترجع مكتبة immer كائن object جديد مختلف عن state object القديم وفيه التعديلات المطلوبة. يمكنك قراءة المزيد عن redux-toolkit هنا ويمكنك قراءة المزيد عن مكتبة immer وفهمها أكثر هنا1 نقطة
-
1 نقطة
-
سأقوم بشرح دالة لكي تنفذ هذه المسألة بلغة جافاسكريبت وعليك أن تقوم بكتابة كود c++ لنفسك. أول شيء نقوم بعمل دالة تستقبل العدد N كـ argument، ولابد من أن تبدأ الحلقة من الرقم n، ولأننا نريد مضاعفة الرقم n فنقوم بزيادة المتغير i بقيمة n كل مرة، ونضع أيضًا شرط لإستمرار حلقة التكرار وهو ألا تزيد قيمة المتغير i عن 500 function multiplier(n) { // نبدأ الحلقة من الرقم n // ونضع شرط لإستمرار الحلقة وهو أن يكون المتغير i أصغر من أو يساوي 500 // نزيد قيمة المتغير i بقيمة n for(var i = n; i<=500; i+=n) { console.log(i) } } // طباعة كل مضاعفات الرقم 50 multiplier(50) بالتوفيق1 نقطة
-
الفرق اﻷساسي هو أن React يستهدف الوب بينما React Native يستهدف تطبيقات الجوال. خرج كود React هو ملفات HTML - CSS - JAVASCRIPT ينفذها متصفح الوب، خرج React Native هو إما apk يتم رفعه إلى غوغل بلاي أو IPA يتم رفعه إلى آبل ستور. الnative components في ReactJS هو div وp وبقية عناصر HTML ، الـnative components في React Native هي View وText وغيرها التي تترجم إلى native UI widgets حسب platform أكان أندرويد أم iphone الهدف من ReactJS هو تسهيل برمجة تطبيقات الوب، الهدف من React Native هو برمجة تطبيقات الجوال بلغة موحدة بدلاً من لغة برمجة مختلفة لكل platform مدعومة - أي بدلاً من Swift/ios وJava/Kotlin/Android - وتملك نفس أداء التطبيقات المبرمجة بطريقة native. عدا هذه اﻻختلافات فنعم هما متشابهان كثيراً من حيث أن كليهما يستخدم لغة الجافاسكريبت وكلاهما لهما نفس الطريقة في الكتابة من Components وProps وstate وإلخ.1 نقطة
-
يبدو أن هناك خطأ في بنية السؤال نفسه، فأنت لست في حاجة إلى تمرير props من مكون ابن إلى المكون الأب، ولذلك لأن المكون الأب لديه بالفعل هذه الـ props في المقام الأول، ولا يجب أن يكون المكون الأبن أكثر تعقيدًا من هذا: var Child = React.createClass({ render: function () { return <button onClick={this.props.onClick}>{this.props.text}</button>; }, }); في حين أن المكون الأب لديه بالفعل هذه الـ props: var Parent = React.createClass({ getInitialState: function() { return {childText: "Click me! (parent prop)"}; }, render: function () { return ( <Child onClick={this.handleChildClick} text={this.state.childText}/> ); }, handleChildClick: function(event) { // يمكن الوصول إلى كل الـ props مباشرة من هنا alert("The Child button text is: " + this.state.childText); alert("The Child HTML is: " + event.target.outerHTML); } }); وهنا نفس الأمثلة السابقة لكن بإستخدام ES6 التي تسهل عليك كتابة الكود وتوضحه أكثر. المكون الأبن: const Child = ({onClick, text}) => ( <button onClick={onClick}>{text}</button> ) المكون الأب: const Parent = ({childrenData}) => ( <div> {childrenData.map(child => ( <Child key={child.childNumber} text={child.childText} onClick={e => { alert("The Child button data is: " + child.childText + " - " + child.childNumber); alert("The Child HTML is: " + e.target.outerHTML); }} /> ))} </div> ) كما أن الحدث event يحتوي على العنصر نفسه من خلال إستخدام e.target وهكذا تستطيع الوصول إلى كل أجزاء العنصر من داخل المكون الأب، لذلك لست في حاجة إلى تمرير أي props من المكون الأبن إلى المكون الأب. وهنا إقتباس من موقع react الرسمي يوضح أن الـ props هي الطريقة الوحيدة الني يستطيع المكون الأب التفاعل مع المكون الابن (خلال تدفق البيانات العادي dataflow) المصدر: Refs and the DOM1 نقطة
-
لا يمكنك تجربة الإعلانات على جهاز وهمي او emulator فقط على جهاز جوال حقيقي ستظهر. يمكنك تجربة ذلك واخباري, أيضا إذا استمريت بفتح الإعلانات من الجهاز الأفتراضي أو الوهمي سيتم حظر حسابك في أدموب أو تعليقه.1 نقطة
-
jsx هو عبارة على javascript نعم لكن هذا لا يخولك لاستخدام كود javascript بالطريقة المعتادة فعناصر ال jsx هي في الحقيقة دوال واذا ترجمنا الكود الذي ارفقته في السؤال فسيكون كالتالي return div( for (var i = 0; i < list.length; i++) { post } ) وفي javascript لا يمكننا كتابة كود في منطقة المعاملات لدالة ما ولكن يمكننا توفير المعاملات فقط لذا فالطريقة الصحيحة للوصول لذلك هي اعطاء معامل لعنصر jsx هكذا <div>{title}</div> هذا سيترجم الى return div(title) وهذا كود javascript صحيح ويمكنك تطبيقه في مثالك بهذه الطريقة : <div> { list.map((res)=> ( <post list={res} /> ))} </div>1 نقطة
-
أولاً يجب عليك التأكد من استخدام نفس المنفذ الذي يتم استعماله في websockets ضمن الحزمة، ووضعه في ملف dokcer-compose. علماً بأن المنفذ الافتراضي في حال لم تقم بتغييره هو 6001. ثم يمكنك فصّل الخصائص عن بعضها لحاويتين منفصلتين، بحيث تقوم الحاوية الأولى بتشغيل تطبيق لارافيل والحاوية الأخرى تقوم بالاتصال مع websockets على الشكل التالي: ملف الحاوية الأولى app.dockerfile FROM php:7-cli-alpine RUN apk --update add wget \ curl \ git \ grep \ build-base \ libmemcached-dev \ libmcrypt-dev \ libxml2-dev \ imagemagick-dev \ pcre-dev \ libtool \ make \ autoconf \ g++ \ cyrus-sasl-dev \ libgsasl-dev RUN docker-php-ext-install mysqli pdo pdo_mysql tokenizer xml RUN pecl channel-update pecl.php.net \ && pecl install memcached \ && pecl install imagick \ && pecl install mcrypt-1.0.3 \ && docker-php-ext-enable memcached \ && docker-php-ext-enable imagick \ && docker-php-ext-enable mcrypt RUN rm /var/cache/apk/* && \ mkdir -p /var/www ENTRYPOINT ["/usr/bin/php", "/var/www/html/websocket-service/artisan", "websockets:serve"] ملف web.dockerfile: FROM php:7-fpm-alpine RUN apk --update add wget \ curl \ git \ grep \ build-base \ libmemcached-dev \ libmcrypt-dev \ libxml2-dev \ imagemagick-dev \ pcre-dev \ libtool \ make \ autoconf \ g++ \ cyrus-sasl-dev \ libgsasl-dev RUN docker-php-ext-install mysqli pdo pdo_mysql tokenizer xml RUN pecl channel-update pecl.php.net \ && pecl install memcached \ && pecl install imagick \ && pecl install mcrypt-1.0.3 \ && docker-php-ext-enable memcached \ && docker-php-ext-enable imagick \ && docker-php-ext-enable mcrypt RUN rm /var/cache/apk/* && \ mkdir -p /var/www ولجعل المنفذ 6001 مرئياً خارج الحاوية، نقوم بتغيير التوجيهات لتصبح كالتالي: app: build: context: ./ dockerfile: app.dockerfile working_dir: /var/www/html volumes: - ./:/var/www/html ports: - "6001:6001" environment: - DB_PORT=${DB_PORT} - DB_HOST=${DB_HOST}1 نقطة
-
يمكنك استخدام الكود كاملا, لقد قمت بتجربته و التأكد من عمله <?php $DATABASE_HOST = 'localhost'; $DATABASE_USER = 'root'; $DATABASE_PASS = ''; $DATABASE_NAME = 'phplogin'; $db = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME); if ($stmt = $db->prepare('SELECT id, password FROM accounts WHERE username = ?')) { $stmt->bind_param('s', $_POST['username']); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; }else { $sql = "INSERT INTO accounts (username, password, email) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($db, $sql)) { mysqli_stmt_bind_param($stmt, "sss", $username, $password, $email); $username = $_REQUEST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $email = $_REQUEST['email']; if(mysqli_stmt_execute($stmt)) { echo "Records inserted successfully."; } } } } $stmt->close(); $db->close(); ?> بحيث أنه في الكود الثاني الذي قمت أنت بإرفاقه تقوم بالتحقق من وجود اسم المستخدم ام لا لذلك يوجد في الكود شرط ويمكن استخدام هذا الشرط بحيث أنه إذا تحقق وكان اسم المستخدم موجود لا نقوم بإدخال البيانات إلى قاعدة البيانات, وإذا كان اسم المستخدم غير موجود نضيف البيانات إلى قاعدة البيانات. وهذا هو الشرط if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; } نضيف إليه else بحيث يصبح هكذا مع إضافة كود الإدخال إلى قاعدة البيانات. if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; }else { $sql = "INSERT INTO accounts (username, password, email) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($db, $sql)) { mysqli_stmt_bind_param($stmt, "sss", $username, $password, $email); $username = $_REQUEST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $email = $_REQUEST['email']; if(mysqli_stmt_execute($stmt)) { echo "Records inserted successfully."; } } }1 نقطة
-
يمكنك عمل else في الكود الثاني ليتم تنفيذ الكود الموجود بداخلها إن كان $stmt->num_rows يساوي صفرًا if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; } else { $sql = "INSERT INTO accounts (username, password, email) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($db, $sql)) { mysqli_stmt_bind_param($stmt, "sss", $username, $password, $email); $username = $_REQUEST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $email = $_REQUEST['email']; if(mysqli_stmt_execute($stmt)) { echo "Records inserted successfully."; } } } بهذا الشكل سيتم عمل حساب جديد إن لم يكن موجود في قاعدة البيانات1 نقطة
-
يمكنك برمجة ثيم كامل لوردبريس عن طريق الشروحات المقدمة من موقع ووردبريس يمكنك زيارة التوثيق كاملا من هنا . هناك عدة شروط لتنفيذ وبرمجة أي قالب للوردبريس من خلالها يمكنك تنفيذ أي فكرة تريدها وهي: ملف header.php وهو الملف المسؤول عن رأسية الموقع. ملف footer.php وهو الملف المسؤول عن تذييل و أخر الموقع. ملف sidebar.php وهو الملف المسؤول عن الشريط الجانبي للموقع. ملف style.css لوضع تنسيقات الثيم بداخله. ملف rtl.css لوضع تنسيقات الثيم ليدعم الاتجاه من اليمين لليسار. ملف index.php هو الملف الرئيسي للقالب. ملف home.php , front-page.php إذا تم وضع أي منهن يكون الملف هو الواجهة الرئيسية للموقع. ملف comments.php الملف المسؤول عن التعليقات. وهناك الكثير من الأمور التي يجب الأخذ بعين الاعتبار من تنفيذها يمكنك زيارة التوثيق الرسمي و متابعته بشكل جيد لتفهم ذلك جيداً. أيضا توفر ووردبريس دوال للمساعدة في برمجة القالب مثل: دالة get_header(); هذه الدالة تقوم بإستدعاء header الخاص بالموقع. get_footer(); هذه الدالة تقوم بإستدعاء footer الخاص بالموقع. get_sidebar(); هذه الدالة تقوم بإستدعاء sidebar الخاص بالموقع. get_search_form(); هذه الدالة تقوم بإستدعاء فورم البحث الخاص بالموقع. get_template_part('template_name'); هذه الدالة تقوم بإستدعاء أي ملفات تريد وضعها بالثيم. هناك الكثير من الدوال وتوفر ووردبريس مرجع كامل للدوال يمكنك النظر إليه.1 نقطة