اذهب إلى المحتوى

محمد عاطف17

الأعضاء
  • المساهمات

    3124
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    29

كل منشورات العضو محمد عاطف17

  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] ] // حيث ان المصفوفة الداخلية هى القيم الخاصة بالايام والخارجية الخاصة بالمستخدمين .
  2. يبدو انك تريد ان تصل بموجه الاوامر الى جزء ال D لديك و الى مجلد بداخله . واسهل طريقة لذلك هى عن طريق كتابة كلمة cmd فى مكان عنوان الملف هكذا . او يمكنك الضغط على زر الفارة الايمن فى مكان فارغ بداخل المجلد واختيار Open in Windows Terminal هكذا . وسيتم فتح موجه الاوامر لديك فى المكان الذى تقف فيه .
  3. هذا كود مختلف عن السابق الذى ارسلته حيث ان المشكلة السابقة تم حلها . قم باسبتدال هذا السطر بالسطر هذا 'password' => ['required'], حيث انه كان مطلوب ان يكون هناك حقل اخر لتاكيد كلمة السر وانت لا تقوم بارساله . وايضا هنا قواعد للتحق من كلمة السر مثل يجب ان تتكون من حروف وارقام ولا تقل عن 8 خانات ولذلك قد قمنا بحذفهم. ومن المفترض بعد هذا التعديل ان يتم حل المشكلة لديك ان شاء الله
  4. اذا كما اخبرتك قم بحذف الجزء من الكود الخاص بالتحقق منهم الذى يتحقق من ان يجب ان يكونو موجودين . وقم بحذفهم . لاحظ هنا انك تضع انهم required اى اذا لم يتم ارسالهم من الواجهة الامامية فلن يتم انشاء المستخدم. وقم باستبدال الكود السابق بالكود الذى ارسلته له فى التعليق السابق.
  5. اولا يجب على التسجيل ان يكون 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'], ]);
  6. وعليكم السلام ورحمة الله وبركاته . حسب الكود المرفق فانه لا يوجد اى مشاكل . وبما انه كان يعمل سابقا و لا يعمل الان فمن الممكن ان تكون المشكلة فى الواجهة الامامية او فى جزء اخر من الواجهة الخلفية . لذلك لمساعدتك بشكل افضل فيجب ارسال رسالة الخطأ سواء فى الواجهة الخلفية او فى المتصفح لمعرفة مكان ونوع الخطأ . وهل يمكنك ايضا ارسال نسخة من البيانات التى يتم ارسالها للواجهة الخلفية من الواجهة الامامية فمن الممكن انك ترسل بيانات ليست كاملة وبما انه يتم التحقق من البيانات اولا فمن اللمكن ان تكون هذه هى المشكلة
  7. وعليكم السلام ورحمة الله وبركاته . المشكلة تكمن فى جزء الباك اند حيث ان هذه جزء من التقيديات الخاصة بال 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 وذلك ليمكنك من قراءته فى الواجهة الامامية. ولكن كما وضحت لك فان هذه الطريقة ليست امنه وستصيب الموقع الخاص بثغرات تمكن المهاجمين من قراءة المعلومات الخاصة بالمستخدمين. لذلك الحل الاول هو الافضل وهو ما ارشحه لك لاستخدامه
  8. ان Microsoft edge هو متصفح خاص بنظام ويندوز و هو تطوير للمتصفح القديم الخاص ب Microsoft internet explorer. وهو الان يعمل على المحرك Chromium مما يجعله افضل كثيرا واسرع من البرنامج القديم internet explorer. ويمكنك من خلاله تصفح الانترنت والمواقع وايضا ياتى بمحرك البحث الغنى عن التعريف Bing وهو محرك البحث المنافس ل google والخاص بشركة Microsoft. ويوجد العديد من المتصفحات خلاف Microsoft edge مثل google chrome و firefox و opera . ويمكنكى اختيار المتصفح المناسب لكى من حيث الاضافات التى يحتويها ومن حيث السرعه والملائمة .
  9. وعليكم السلام ورحمة الله وبركاته . هل تقصد انك تريد توجيه منفذ الاوامر (cmd) داخل partion او مجلد ؟ اذا كان كذلك فاسهل طريقة هى بالذهاب الى المكان الذى تريد ان يبدا منه منفذ الاوامر و فى مكان مسار المجلد قم بكتابة كلمة cmd ثم اضغط على enter .
  10. ان المتغير employees هو من نوع قائمة "list" وهو data structure فى لغات البرمجة يحتوى على عدة عناصر بداخله وكل عنصر له ترتيب ورقم فى المصفوفة . وللوصول الى اى عنصر فى المصفوفة فنقوم بكتابة رقم العنصر بداخل [] بعد اسم المصفوفة مباشرة . لذلك قمنا بكتابة index وهو يشير الى رقم العنصر الذى نريد طباعته. ويمكنك قراءة هذا الشرح على موقع موسوعة حسوب لتعرف اكثر عن القوائم فى بايثون lists .
  11. وعليكم السلام ورحمة الله وبركاته . الخطأ لديك هنا كما اشرت فى الصورة التالية . لاحظ انك قد اخطأت فى كتابة اسم المتغير gradients و قمت بكتابته gradinets لذلك فقط قم بتعديل الاسم وسيعمل معك.
  12. الكود يعمل جيدا ولا يوجد اخطاء فيه ففى المتغير الاول filteredcountry قمت بعمل ترشيح بالنسبة لل country وتقوم بالتحقق من المتغير country1 الذى قيمته "امريكا" . والمتغير الثانى filteredcountry2 تقوم بعمل ترشيح بالنسبة لل country كالذى فى السابق ولكن تقوم بالتحقق من المتغير place الذى يظهر من الصورة التى ارفقتها ان قيمته "اميركا" لذلك لاحظ ان "اميركا" != "امريكا" اذا المتغيرين country1 و place ليسو متساويين لهذا لا يظهر نتائج فى ال filteredcountry2 . فاعتقد فقط انك لم تنتبه للقيمة المرسلة للمتغير place .
  13. يوجد بعض الاخطاء فى جملة الاستعلام لديك . اولا يفضل استخدام left join فى جميع الاماكن وعدم الجمع بين right join و left join الا اذا دعت الحاجة وهنا لا يجب استخدام right join فانت فقط تريد ملفات المشاريع جميعها سواء كان الربط صحيحا او خاطئا ولا تريد باقى الجداول كاملة . ثانيا هناك خطأ فى الربط بين جدول student و project فقد تم الربط بين Num_STD و id_std وليس Num_std . والاستعلام الصحيح هو التالى SELECT f.path_file , p.name_project, s.Num_std , s.Name_std , s.Email_STD , t.Name_teah, d.Name_dept FROM file_project f LEFT JOIN projects p on p.id_Pro = f.id_p LEFT JOIN student s ON p.Num_STD = s.id_std LEFT JOIN teachers t ON s.id_teah = t.id_teah LEFT JOIN departments d ON t.id_dept = d.id_dept;
  14. وعليكم السلام ورحمة الله وبركاته . الامر بسيط ان شاء الله . ان نظام التشغيل هو المتحكم الرئيسى لديك فى الجهاز وهو ما يقوم بربط الهاردوير بالسوفتوير وينظم طريقة عملهم و التاكد من عدم حدوث اخطاء منهم او اى تداخل بينهم . وهو يوفر لك واجهات برمجية API للتحكم فى الاوامر و تنفيذ المعلومات . وبالفعل كما تقول فان جيمع المعالجات تفهم لغة الاله ولكن المشكلة ليست هنا . لنفرض مثلا ان لدينا شركة معينه . وهناك اكثر من مدير لهذه الشركة وجميعم يتحدثون لغه واحده والموظفين ايضا يتحدثون نفس اللغه . الان اذا جاء مشروع او امر للمدير فان كل مدير تفكيره او ذكاءه او ادارته للامور مختلفه طبعا وليست متشابهة وهناك مدير اكفاء من مدير اخر وهكذا. الان جيمع المديرين سينفذون نفس العمل ولكن بطرق مختلفه وكل مدير سيطلب او ينظم او يرتب العمل من الموظفين بطريقة مختلفه عن الاخر . وجيمعه سيصلون للنتيجة المرجوة ولكن سيكون هنا مدير افضل من مدير اخر فى اشياء معينة وهكذا . ونظام التشغيل فى المثال السابق هو المدير فكل نظام تشغيل يتميز عن الاخر فى شئ او يتعامل مع اشياء واخرى لا او اسرع من الاخر وهكذا . وبما ان كل نظام تشغيل (مدير) لديه طريقة عمل خاصة اذا يجب على من يعمل معه ان يتفهم هذا النظام ويسير عليه . وهكذا فان البرامج والسوفتوير يجب ان تستعمل ال API (النظام) الخاص الذى يوفره نظام التشغيل (المدير) . ولهذا فاذا جئنا ببرنامج مثلا يعمل على نظام Mac اذا فان هذا البرنامج يسير على النظم التى يطلبها المدير Mac واذا حاولنا تشغيل هذا البرنامج على windows مثلا فلن يعمل لان النظام الذى يسير عليه لا يتناسب مع النظام الخاص ب windows .
  15. لاحظ ان القيمة التى تم عمل التكرار عليها فى for loop هى صف فى قائمة ( tuples in a list) وحيث ان الصف هو زوج من قيمة ومفتاح . [(1, 2), (3, 4), (5, 6)] حيث ان المفتاح هو الرقم فى يسار الصف اى 1 و 2 و 5 هم مفاتيح وهو المتغير الاول على اليسار i الذى تم تمريره ل for . والقيم هى الرقم فى يمين الصه اى 2 و 4 و 6 هم قيم وهو المتغير الثانى j الذى تم تمريره ل for . اذا نفهم من هذا ان for تقوم بالتكرار على القوائم واذا كانت القوائم تحتوى على صفوف من مفاتيح وقيم فيمكننا الحصول عليها بتمرير متغير ل for وسيصبح المتغير الاول من اليسار هو قيمة المفتاح والمتغير الثانى هو القيمة نفسها .
  16. وعليكم السلام ورحمة الله وبركاته . يوجد العديد من الطرق والحلول لهذه المشكلة و الحل الاسهل والاسرع هو اولا ترتيب المصفوفة من الاصغر الى الاكبر ومن ثم التكرار عليها بعد الترتيب عن طريق حلقة التكرار و اختيار الرقم على حسب الشرط الذى تريده واذا كنت تريد الرقم الاصغر الثانى دائما اذا يمكنك فقط استخدام الرقم الثانى فى المصفوفة وسيكون هو دائما ثانى اقل رقم . ويمكنك تجربة حلول اخرى بنفسك والتفكير فى خوارزمية جيده واخبارنا بما وصلت اليه حتى نرى معك اذا كان ما قمت به صحيحا ام لا .حتى تحقق اقصى استفادة من التعلم . بالتوفيق لك
  17. العفو لا شكر على واجب . واياكم اللهم امين
  18. من فضلك تاكد من عدم وجود اى مسافات زائدة فمن الممكن ان تكون تلك هى المشكلة
  19. الخطأ يخبرك ان طول الكود هو 266 والمسموح لك هو 25 حرف فقط . لذلك من فضلك قم بكتابة هذا السطر فقط فى الموقع والضغط على test STRANGE_STRING = 'ßú' ولا تقوم بكتابة اى شئ اخر سوى هذا السطر
  20. بدلا من كلمة foo قم بكتابة اى حرفين فقط بيديك من الاحرف اللاتينيه فقط ولو كتبت اكثر من ذلك سيظهر لك خطا. يمكنك كتابة هذه كما وضحت لك سابقا. حيث ان السؤال لايتطلب اى برمجة نهائيا
  21. لاحظ ان الحل يطلب منك فقط وضع الاحرف فى المتغير STRANGE_STRING ولا يطلب منك اى كود . حيث اذا اصبحت عدد حروف الكود الخاص بك اكثر من 25 بايت اى 25 حرف سيظهر لك هذا الخطأ Solution too large . كل ما عليك هو وضع فقط قيمة ال STRANGE_STRING هكذا STRANGE_STRING = 'ßú' او استخدام اى احرف ولكن يجب على الجملة الا تتعدى ال 25 حرف و الاحرف اللاتينية تحسب كحرفين . حيث ان هذه المسألة لا تهدف الى تعليمك شئ فى البرمجة سوى ان تكون حذرا فى استخدام الدوال المضمنة فى لغات البرمجة فحيث من اللمكن ان يحدث خطأ غير متوقع عند استخدامها دون معرفة الحالات الخاصة .
  22. نعم صحيح استخدمت all للحصول على النتيجة كمصفوفة حتى استطيع دمجها مع المنشورات السابقة . نعم الموجه push('scripts')@ هو خاص بالاصدار 2 من مكتبة livewire وبما انك تستعمل الاصدار 3 منها فهم قد قامو بتحديث اسم الموجه ليصبح script@ . ولا شكر على واجب اخى أمير . وبالتوفيق لك ان شاء الله
  23. يوجد عدة انواع من ال joing . اولا ال inner joins ألتى كنت تستعملها مسبقا وهى فقط تقوم بارجاع نتيجة التقاطع فقط واى قيم لم يتم الربط بينهم او فارغين فلن يتم ارجاعهم . اما ال LEFT و ال RIGHT فانك تخبر mysql بان يقوم بارجع الجدول كاملا سواء الجدول الذى يسار كلمة JOIN و يمينها حسب ما سوف تستخدم وبذلك سوف يقوم بارجاع الجدول كاملا سواء كان الربط صحيحا او خاطئا . واذا كان صحيحا سيقوم بارجاع بيانات الجدول المربوط . لاحظ كما فى الصورة السابقة . ويمكنك قراءة هذا الشرح على موقع wiki hasoub. left join و inner join
  24. لاحظ كما اخبرتك انت قمت بالربط ب id_std وليس Num_std وهذا الكود يجب ان يعمل معك
  25. اعتقد انك اخطأت فى ربط الجدولين حيث قمت بربطهم ب id_std الخاص بال students . SELECT s.Num_std ,s.Name_std ,s.Email_STD ,p.name_project,t.Name_teah,d.Name_dept FROM student s LEFT JOIN projects p ON p.Num_STD=s.id_std LEFT JOIN teachers t ON s.id_teah=t.id_teah LEFT JOIN departments d ON t.id_dept=d.id_dept; لذلك من فضلك قم بتجربة هذا الكود واخبارى بالنتيجة. وايضا هل يوجد فى جدول students فى العمود Num_std قيمة تساوى 14 و 15 ؟
×
×
  • أضف...