-
المساهمات
9365 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
133
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد_عاطف
-
نعم بالفعل يمكن استخدام php واطار عمل laravel مع اى اطار عمل للواجهات الامامية سواء react او vue او حتى angular . ويمكن تحقيق ذلك بعدة طرق : يمكنك استخدام لارافيل لتوفير apis فقط واستدعاء تلك ال apis واستخدامها فى react او اى اطار عمل اخر, ولكن هذه الطريقة ستجعل كود الواجهة الخلفية منفصل عن الواجهة الامامية ويجب رفع كل منهما على سيرفر منفصل . يمكنك استخدام مكتبات مثل vite و laravel/ui لربط react مع laravel فى نفس المشروع و هنا ستعتمد اكثر على لغة php وليس react او javasript . ونصيحتى هى استعمال الطريقة الاولى لان الطريقة الثانية ستاخذ منكى وقت اطول لتعلم مكتبة vite و laravel/ui وايضا من الممكن ان تجدى صعوبة فى بداية الامر فى فهم كيفية سير الامور. لذلك يجب انشاء مشروعين منفصلين مشروع laravel وهو الواجهة الخلفية والثانى هو react للواجهة الامامية وربطهم عن طريق ال APIS.
-
من فضلك قم بالتعليق اسفل الدرس الذى توجد به مشكلة حيث هذا القسم الخاص بالاسئلة العامة ولا نقوم بطرح اسئلة الدورات فيه. وذلك لمساعدتك بشكل افضل . شكرا لتفهمك وبالتوفيق لك .
-
الخطأ لديك فى هذا الملف src\hook\cart\add-to-cart-hook.js فى مشروع الواجهة الامامية . فى سطر رقم 25 . if (item.availableColors.length >= 1) هنا انت تقوم بالتحقق من طول ال availableColors و هى ليست موجودة فى المتغير item لذلك يحدت الخطأ حيث لا يمكن استدعاء الخاصية length على undifined . والحل هو التحقق اولا من وجود ال availableColors هكذا . if (item.availableColors?.length >= 1) حيث ان علامة ال ? تتحقق اولا من ان القيمة ليست null او undefined قبل تنفيذ ما بعدها وهكذا تكون قد حلت المشكلة . و قد لاحظت ان معظم الاخطاء من هذا النوع حيث لا يقوم السيرفر الخلفى بارجاع البيانات التى تستخدمها فى الواجهة الامامية لذلك يجب عليك اولا التحقق من البيانات التى تعود لك من السيرفر قبل العمل عليها.
-
منذ الاصدار الاعلى من 2.2 فى مكتبة vite تم الغاء الوصول الى المشروع من خارج الشبكه و يمكن فقط الوصول اليه من على نفس الجهاز وذلك لاغراض الامان ولتشغيل السيرفر على الشبكه والسماح للوصول اليها من اى مكان يجب وضع host-- لتحقيق ذلك . ولا شكر على واجب انا هنا لمساعدتك اذا ما احتجت اى مساعدة
- 5 اجابة
-
- 1
-
-
نعم من الممكن ان تكون تلك المشكلة حيث يظهر فى الصورة التى ارسلتها ان ال port 80 و 81 مستخدمان . لنحاول حل اخر وهو تعديل ملف package.json سطر رقم 19 قم باضافة host-- بعد vite هكذا "start": "vite --host" وقم باعادة تشغيل السيرفر ومحاولة الدخول على الروابط التى سوف يقوم بانشائها لك .
- 5 اجابة
-
- 1
-
-
الخطأ لديك فى ملف src\hook\products\view-products-detalis-hook.js فى مشروع الواجهة الامامية . فى سطر 27 و 31 . لاحظ انك تقوم باستدعاء ال api الخاص باحضار التصنيفات (category) وهذا ال api يتطلب ان ترسل ال id الخاص بال category ولكن انت تقوم بارسال item.category وهو object يحتوى فقط على اسماء ال categories لهذا يحدث هذا الخطأ لذلك يجب حذف هذه الاسطر او تمرير لها ال id الخاص بال category ولكن سيتعين عليك تعديل السيرفر الخاص بالواجهة الخلفية لارسال ال id الخاص بال category و لكن الان الحل هو حذف هذه الاسطر هكذا. useEffect(() => { // if (item.category) // dispatch(getOneCategory(item.category)) if (item.brand) dispatch(getOneBrand(item.brand)) // if (item.category) // dispatch(getProductLike(item.category)) }, [item])
-
ستجد فى ملف vite.config.mjs سطر رقم 51 رقم ال port الذى تريد ان يعمل عليه المشروع . ومن المحتمل ان السيرفر لا يسمح بتوفير جميع ارقام ال ports لذلك يمكنك اسبتدال ال port رقم 1001 برقم 80 وهو هو المسؤل عن تصفح المواقع عبر شبكة الانترنت ويعرف بـ HTTP واما اذا كان السيرفر لديك يدعم https فاجعل رقم ال port هو 443 وسيعمل جيدا دون مشاكل ان شاء الله . واذا لم يعمل معك هل يمكنك ارسال رسالة الخطأ التى تظهر لك.
- 5 اجابة
-
- 1
-
-
لقد لاحظت فى الاكواد انك تقوم بعمل fetch للبيانات من سيرفر localhost فى جميع الصفحات عدى صفحة ال packages وايضا اذا كنت رفعت الخادم على نفس الاستضافه ونفس مكان مشروع next.js فمن الممكن ان يكون هذا السبب فمن فضلك قم بتغير اجزاء ال fetch فى الكود لتقوم بارجاع البيانات من الخادم وليس localhost وثم قم بحذف مجلدات .next و node_modules وقم بتشغيل امر ال build ثم اعادة تشغيل السيرفر .
- 6 اجابة
-
- 1
-
-
هل الخادم (الواجهة الخلفية) خاص بك ام لا . لانه اذا لم يكن خاص بك فمن الممكن ان مالك الخادم قام بعدم تفعيل ال cors . وللتاكد من هذا يمكنك استدعاء عنوان ال api فى برنامج post man والتاكد من اذا كان يعمل ام لا . واذا كان يعمل على post man فيمكنك استخدام fetch عن طريق الخادم وليس عن طريق المتصفح .
-
ان مشكلة ال cors تحدث حيث ان السيرفر لا يسمح باستقبال الطلبات من خارج الخادم وذلك لتوفير امان المعلومات ومنع قراءة المعلومات من مصادر مجهولة. واذا كنت تستعمل nodejs فان الامر سهل يمكنك كتابة هذه الاسطر فى ملف السيرفر للسماح بتنفيذ الطلبات من اى مصدر . const cors = require('cors'); app.use(cors());
-
وعليكم السلام ورحمة الله وبركاته . يجب عليكى تنفيذ امر npm run dev لتوليد ملفات ال assets من js و css لتشغيل المشروع . لهذا يجب تشغيل موجه اوامر جديد "cmd" وتنفيذ الامر التالى . npm run dev واعادة تحديث الصفحة وكل شئ سيعمل جيدا ان شاء الله . واخبارى بالنتيجة
-
هل قمت برفع الملفات بعد تنفيذ امر build ام قمت بتنفيذ امر build على السيرفر ؟ حيث ان الخطأ 404 يعنى ان هذه الملفات ليست موجودة على السيرفر فتاكد من ان هذا المسار موجود لديك والملفات موجودة ايضا واذا لم تكن كذلك فقم برفع الملفات مرة اخرى . حيث ان هذه هى static اى ثابته لا تتغير فان السيرفر عند عمل build يقوم بجلب البيانات من ال apis و انشاء صفحات ثابته فحتى لو تم تغير البيانات فى قاعدة البيانات فان الملفات لن تتغير الا حينما يتم تنفيذ امر build من جديد
-
توجد عدة دورات تقدمها اكاديمة حسوب وكل دورة لها اكثر من مسمى وظيفى خاص بها على حسب الاقسام التى قم بالانتهاء منها. اولا دورة تطوير التطبيقات باستخدام لغة Python بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة بايثون و backend devolper باطار عمل django وايضا تهيئك لمجال تحليل البيانات والذكاء الاصطناعى وتعلم الالة . وهذه الدورة اذا اردت ان تصبح مطور واجهات خلفية . ثانيا دورة تطوير التطبيقات باستخدام JavaScript بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة جافاسكريبت وتمكنك من ان تصبح مطور واجهات خلفية MERN stack وايضا تمكنك من تطوير تطبيقات الهاتف ومن الممكن ان تستعملها لتصبح FULL STACK Developer ثالثا دورة تطوير تطبيقات الويب باستخدام لغة PHP بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة php باطار عمل لارافيل و ووردبريس وهذه الدورة تؤهلك لتصبح مطور واجهات خلفية بواسطة php. رابعا دورة تطوير تطبيقات الويب باستخدام لغة Ruby عد الانتهاء من هذه الدورة يمكنك ان تصبح مطور برمجيات بلغة ruby وهذه الدورة تؤهلك لتصبح مطور واجهات خلفية. خامسا دورة تطوير واجهات المستخدم بعد الانتهاء من هذه الدورة يمكنك ان تصبح مطور واجهات امامية . ولتصبح full stack يجب ان يكون لديك المعرفة بلغة او عدة لغات من الواجهات الخلفية و دورة تطوير الواجهات الامامية .
-
الخطأ يخبرك ان GET["time"]_$ غير معرف لذلك تاكد من انك تقوم بارساله فى العنوان url حتى لا يحدث هذا الخطا
- 9 اجابة
-
- 1
-
-
نعم لا مشكلة هل يمكنك ارسال رساله الخطا لاساعدك بشكل افضل
- 9 اجابة
-
- 1
-
-
الخطأ لديك هو انك تقوم بوضع رقم 0 دائما فى المصفوفة الاولى وبهذا سيتم ترجاع مصفوفة واحده فقط الى الخادم . والحل هو وضع ال id الخاص بالمستخدم row["teacher_number"]$ بدلا من ال 0
- 9 اجابة
-
- 1
-
-
يمكنك تحقيق ذلك عن طريق تسمية ال input كمصفوفة وسوف يتم ارساله الى الخادم كمصفوفة هكذا. <input type="checkbox" name="name=name[0][0]" value="0"> <input type="checkbox" name="name=name[0][0]" value="1"> <input type="checkbox" name="name=name[0][1]" value="0"> <input type="checkbox" name="name=name[0][1]" value="1"> <input type="checkbox" name="name=name[0][2]" value="0"> <input type="checkbox" name="name=name[0][2]" value="1"> حيث ستكون المصفوفة الاولى هى الخاصة بحفظ القيم للسمتخدم والمصفوفة الثانية هى الخاصة بالايام . وسوف تصلك النتيجة هكذا الى الخادم . $data = [ [1,1,1,0,0] , [1,1,1,0,0] , [1,1,1,0,0] ,[1,1,1,0,0] ] // حيث ان المصفوفة الداخلية هى القيم الخاصة بالايام والخارجية الخاصة بالمستخدمين .
- 9 اجابة
-
- 1
-
-
يبدو انك تريد ان تصل بموجه الاوامر الى جزء ال D لديك و الى مجلد بداخله . واسهل طريقة لذلك هى عن طريق كتابة كلمة cmd فى مكان عنوان الملف هكذا . او يمكنك الضغط على زر الفارة الايمن فى مكان فارغ بداخل المجلد واختيار Open in Windows Terminal هكذا . وسيتم فتح موجه الاوامر لديك فى المكان الذى تقف فيه .
-
هذا كود مختلف عن السابق الذى ارسلته حيث ان المشكلة السابقة تم حلها . قم باسبتدال هذا السطر بالسطر هذا 'password' => ['required'], حيث انه كان مطلوب ان يكون هناك حقل اخر لتاكيد كلمة السر وانت لا تقوم بارساله . وايضا هنا قواعد للتحق من كلمة السر مثل يجب ان تتكون من حروف وارقام ولا تقل عن 8 خانات ولذلك قد قمنا بحذفهم. ومن المفترض بعد هذا التعديل ان يتم حل المشكلة لديك ان شاء الله
-
اذا كما اخبرتك قم بحذف الجزء من الكود الخاص بالتحقق منهم الذى يتحقق من ان يجب ان يكونو موجودين . وقم بحذفهم . لاحظ هنا انك تضع انهم required اى اذا لم يتم ارسالهم من الواجهة الامامية فلن يتم انشاء المستخدم. وقم باستبدال الكود السابق بالكود الذى ارسلته له فى التعليق السابق.
-
اولا يجب على التسجيل ان يكون API وليس كما هو حاليا فى الكود فان 302 هو كود إعادة التوجيه لان التحقق من البيانات لم يتتحقق ولذلك يعيد توجيهك مع رسائل الخطأ . الخطأ لديك انك لا ترسل البيانات المطلوبة التى تحتاجها الواجهة الخلفية . فان حقل lName مطلوب و هو ليس موجود فى الواجهة الامامية . وايضا حقل occupation و gender و birthday فانت قمت بالتحقق فى الواجهة الخلفية منهم وان لم يكونوا موجودين فلن يتم انشاء المستخدم. والحل هو اما تمريرهم من الواجهة الامامية او اذا لم يكونو مطلوبين فى قاعدة البيانات فيمكنك حذف هذا الكود من الملف لديك .و اسبتدالة بالتالى . $incomingFields = $request->validate([ 'name' => ['required', 'min:2', 'max:10', Rule::unique('normal_users', 'name'), 'alpha'], 'email' => ['required', 'email', Rule::unique('normal_users', 'email')], 'password' => ['required', 'min:10', 'max:200'], ]);
-
وعليكم السلام ورحمة الله وبركاته . حسب الكود المرفق فانه لا يوجد اى مشاكل . وبما انه كان يعمل سابقا و لا يعمل الان فمن الممكن ان تكون المشكلة فى الواجهة الامامية او فى جزء اخر من الواجهة الخلفية . لذلك لمساعدتك بشكل افضل فيجب ارسال رسالة الخطأ سواء فى الواجهة الخلفية او فى المتصفح لمعرفة مكان ونوع الخطأ . وهل يمكنك ايضا ارسال نسخة من البيانات التى يتم ارسالها للواجهة الخلفية من الواجهة الامامية فمن الممكن انك ترسل بيانات ليست كاملة وبما انه يتم التحقق من البيانات اولا فمن اللمكن ان تكون هذه هى المشكلة
-
وعليكم السلام ورحمة الله وبركاته . المشكلة تكمن فى جزء الباك اند حيث ان هذه جزء من التقيديات الخاصة بال Cors. فعندما تستخدم Fetch API على ال CORS حيث لا يكون الطلب من نفس الموقع فانه يحدث تقيد للheaders التى بمكنك قرائتها . ويمكنك فقط قراءة التالى . Cache-Control Content-Language Content-Type Expires Last-Modified Pragma ولن يمكنك قراءة اى شئ اخر من ال headers . response.headers.forEach(function(val, key) { console.log(key + ' ----- ' + val); }); واذا قمت بتنفيذ هذا الكود الذى سيطبع ال headers المرسلة من الخادم لن تجد بداخلها ال jwt لان ليس لك الصلاحية لقرائته بسبب ال cors كما وضحت سابقا. والحل هو ارسال ال jwt فى ال body الخاص بال response و قراءته من ال body فى الواجهة الامامية وليس من ال headers . ويوجد حل اخر ولكنه ليس امن ومن الافضل عدم استخدامه . قم بالذهاب الى ملف config\cors.php تاكد من ان allowed_origins تساوى * . وبداخل exposed_headers قم باضافة Set-Cookie او على حسب الاسم الذى ستضع فيه ال jwt وذلك ليمكنك من قراءته فى الواجهة الامامية. ولكن كما وضحت لك فان هذه الطريقة ليست امنه وستصيب الموقع الخاص بثغرات تمكن المهاجمين من قراءة المعلومات الخاصة بالمستخدمين. لذلك الحل الاول هو الافضل وهو ما ارشحه لك لاستخدامه
- 1 جواب
-
- 1
-
-
ان Microsoft edge هو متصفح خاص بنظام ويندوز و هو تطوير للمتصفح القديم الخاص ب Microsoft internet explorer. وهو الان يعمل على المحرك Chromium مما يجعله افضل كثيرا واسرع من البرنامج القديم internet explorer. ويمكنك من خلاله تصفح الانترنت والمواقع وايضا ياتى بمحرك البحث الغنى عن التعريف Bing وهو محرك البحث المنافس ل google والخاص بشركة Microsoft. ويوجد العديد من المتصفحات خلاف Microsoft edge مثل google chrome و firefox و opera . ويمكنكى اختيار المتصفح المناسب لكى من حيث الاضافات التى يحتويها ومن حيث السرعه والملائمة .
