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

Adnane Kadri

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

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

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

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

    51

كل منشورات العضو Adnane Kadri

  1. هاته الطريقة لم تعد متوفرة منذ الاصدار السابع، في اصدارات لارافيل الأخيرة ابتداءا من النسخة الثامنة ستحتاجين تعريف المسار واسناده ذات الاسم كـ: use Illuminate\Foundation\Auth\EmailVerificationRequest; Route::get('/email/verify/{id}/{hash}', function (EmailVerificationRequest $request) { $request->fulfill(); return redirect('/home'); })->middleware(['auth', 'signed'])->name('verification.verify'); هذا المسار سيتعامل مع الطلبات التي تم إنشاؤها عندما ينقر المستخدم على رابط التحقق من البريد الإلكتروني الذي تم إرساله إليه عبر البريد الإلكتروني.
  2. انتبه الى ان الصور تعمل الآن بعض اضافة القاعدة السابقة. جرب طلب مسار صورة: https://arabiauniform.areyada.com/assets/images/hook/1654601323باركود-05.png او طلب مسار صورة غير موجود: https://arabiauniform.areyada.com/assets/images/hook/لتبس-05.png لم تعد ذات الرسالة السابقة تظهر.
  3. نعم يمكن ذلك ان كنت تحاول فقط تشغيل المشروع، سيكفيك التأكد من توافق متطلبات التشغيل مع بيئة العمل وفقط.
  4. سؤالك يفتقر الى مزيد من التفاصيل، هل يمكنك التوضيح اكثر؟
  5. يذكر ان هنالك الكثير من النسخ ما بين النسخة التاسعة والخامسة للارافيل، ولذلك فإنك قد تضطر للعمل على الكثير من التحديثات التي تمتلك تأثيرات عالية الخطورة High likelhood of impact. والتي يجب مراعاتها ما بين النسخة والأخرى، أي ان كنت ستقوم بالأمر بشكل يدوي فستحتاج: تحديث التطبيق من 5 الى 6 تبعا لدليل التحديث واعتبارا لأي تحديثات عالية الخطورة // // من 6 الى 7 ثم من 7 الى 8 ومن 8 الى 9 وهو الأمر الذي لا يعد عمليا ولا سهلا. مقاربة أخرى يمكن الاعتماد عليها هي إنشاء تطبيق لارافيل جديد تماما وليكن بالنسخة 9 ثم قم بنقل ملفات المتحكمات، النماذج والعروض والمسارات وملفات البذر وما الى ذلك من تطبيقك القديم الى هذا الجديد، ثم سيكون من السهل تشخيص الاخطاء والعمل عليها. على الأقل لن تهتم آنذاك بتحديثات الاعتماديات وسيمكنك الاهتمام مباشرة بالتحديثات التي تختص بسياق الكتابة فقط. ان شئت اختصار الطريق، فستحتاج بشكل ما الى أتمتمة العملية والاعتماد على خدمات مدفوعة من مثل Laravel shift.
  6. دورة تطوير التطبيقات باستخدام لغة Python لا تشترط أي خبرة مسبقة، اذ سيتم في هاته الدورة الانطلاق من ابسط مفاهيم واساسيات لغة بايثون الى كيفية بناء تطبيقات حقيقية نحو اطار عمل Django و Flask وغيرها الكثير. تتكون الدورة من المسارات: أساسيات البرمجة بلغة بايثون تطبيقات برمجية بلغة بايثون أساسيات إطار العمل جانغو Django تطوير متجر إلكتروني باستخدام جانغو Django تطوير واجهة برمجية API باستخدام فلاسك Flask تطوير تطبيقات أودو Odoo أساسيات تحليل البيانات أساسيات تعلم الآلة ولا تتطلب أي خبرة مسبقة أبدا.
  7. تأكد من استعمال استعلام الوسائط الصحيح للتعامل مع طريقة العرض في الطباعة تحديدا، يذكر ان استعلامات الوسائط media@ تحدد مجموعة من التنسيقات من مثل: عرض وارتفاع اطار العرض viewport عرض وارتفاع الجهاز orientation او وضع العرض الكثافة او resolution على نوع معين من الوسائط، فقد يكون جميع الوسائط فنحدد: @media all او جهاز طباعة مثلا: @media print او شاشة حسوب: @media screen يحتمل ان تحدث المشكلة بسبب ان مجموعة التنسيقات تطبق على نمط دون الآخر، جرب وضع مجموعة تنسيقات محددة بجهاز الطباعة: @media print { *{ background-color: red; } } وتحقق ما ان كان ذلك هو سبب المشكلة. في حالة ما كان ذلك، تأكد من تعميم التنسيقات المرادة على كامل اجهزة العرض: @media all{ // ضع كل تنسيقاتك هنا }
  8. بغض النظر عن صعوبة التعامل مع مثل هكذا كم من البيانات من ناحية الواجهة الخلفية إلا ان العملية التي تصفها غير صديقة لتجربة الاستخدام. أظنك تريد بشكل ما اضافة خيار لاضافة اكثر من مالك في نفس الاستمارة. وفي مثل هذا ستحتاج في الغالب هيكلة هاته البيانات على شكل JSON لتنظيم طريقة التعامل معها من طرف الواجهة الامامية او الخلفية. اذ تكون قائمة الملاك هاته كمصفوفة داخل كائن الجيسون لدينا بالشكل التالي: { .. "owners":[ { "name" : "owner 1", "identity": "545789" }, { "name" : "owner 2", "identity": "978798" } ] } ثم ما ان اردنا اضافة مالك جديد الى قائمة الملاك اضفنا كائنا جديدا الى مصفوفة الكائنات. اذ سيكون من السهل آنذاك قراءة مصفوفة الكائنات والمرور على كل مالك من قبل الواجهة الخلفية وانشاء ملاك نقوم بنسبهم الى ذات العنصر. طبعا الفكرة نظرية بحتة، يمكنك تقويمها بحسب حاجتك او استعمالها وفق مثالك.
  9. مثلما اشار المدربون فإن طريقة اضافة تعليق في PHP تختلف، نعني بـ Doc comment النوع الاخير الذي يبدوا كـ: /** * */ التعليق الذي يحتويه هذا النوع يسمى DocBlock وهو نوع من التعليقات التي يمكن أن توفر معلومات مطولة حول عنصر او جزئية ما في التعليمات البرمجية الخاصة بك. وذلك اما للمطورين الذين سيشتغلون مستقبلا على هاته الشيفرة او حتى لبيئات التطوير المتكاملة IDEs من مثل VS code التي تستعمل قواعد كتابة هذا التعليق في توثيق الشيفرة وفي توثيق الواجهات البرمجية. وعموما، يتكون هذا التعليق من: الملخص Summary وهو شرح موجز لما ستقوم به الجزئية المراد توضيحها. التوصيف Description وهو شرح اكثر تفصيلا لما ستقوم به الجزئية. الوسوم Tags وهي سلسلة من التوصيفات الاخرى التي تسبق برمز @ وتعبر عن معلومات من مثل عائد الدالة او نوع المعاملات او غيرها. لاحظ المثال: /** * .حساب العمر انطلاقا من تاريخ الميلاد * * تستعمل هاته الدالة الكائن كذا وكذا في حساب * الفارق الزمني بين كذا وكذا * * @see path/to/resource.php * @param {string} $date_of_birth * @return integer */ function getAge($date_of_birth){ }
  10. بشكل عام، يوجد مجموعة من الثغرات التي يهتم مطورو الواجهات الخلفية بتغطيتها لضمان سلامة البيانات او سلامة التطبيق ككل، نذكر منها: ثغرات الحقن injections وتكون باستغلال حقول الادخال في تقديم شيفرات واكواد الى واجهة التطبيق الخلفية، قد تكون الشيفرات هاته استعلامات قواعد بيانات فتسمى SQL injection او تعليمات نظام تشغيل او طلبيات HTTP يوجد ايضا ثغرات اخرى من مثل: تزوير الطلبات عبر المواقع cross site request forgery البرمجة عبر الموقع cross site scripting او XSS ضعف ادارة جلسات الاتصال Broken session management التوجيه غير المحقق Invalid redirects and forwards وتلافي مشكلة استغلال هاته الثغرات يكون بتعلم اسس الامان في اللغة البرمجية التي تتعامل معها، فكل منها تقوم بتغطية او التخفيف من احتمالية الاصابة بهاته الثغرات بطريقته. ابتداءا من فحص الادخالات او فرض نوع معين من البيانات او تعريف المستخدم برمز مميز او ما الى ذلك.
  11. جرب الاستعانة بمواقع الاستلهام للحصول على قوالب مجانية بالكامل، قد يحتاج بعضها بعض التخصيص او التعديل وفق حاجة المشروع. نذكر من بينها: موقع FreeCss لقوالب ال CSS والمكونات المجانية تصنيف وردبرس في موقع colorlib موقع templatemo موقع nicepage استعمل الكلمة المفتاحية التي تريد القالب حولها واختر من بين الناتج.
  12. مرحبا @Rasmi Rasmi ارفاق ملفات مشروعك في مسار ما بغرض مراجعته يكون عند محاولة الامتحان والحصول على الشهادة، وبالطبع بعد استيفاء شروط الامتحان الأخرى من مثل: اتمام اربعة مسارات تعليمية على الاقل رفع مشاريعك على github اعرفر اكثر من هنا. بعد هذا سيكون عليك القيام بذلك عبر التواصل مع فريق الدعم من خلال مركز مساعدة أكاديمية حسوب اما ان كنت تقصد ارفاق ملفات مشروعك بغرض معاينة مشكلة معينة من قبل المدربين فيمكنك استعمال محرر التعليقات في قسم تعليقات الطلبة اسفل كل فيديو من الدورة.
  13. يمكنك تحقيق ذلك عن طريق: اخفاء النص واعطاءه التنسيق visibility: hidden تحديد النص عند تمرير مؤشر الفأرة على العنصر الأب واظهاره. مثال: <div> <img src="" alt="img"> <h2>Title</h2> </div> div h2{ visibility: hidden; } div:hover h2{ visibility: visible; } يمكنك اختبار ذلك على المتصفح لديك.
  14. يحتمل انه يتم تعطيل الوصول الى مثل هاته الملفات عن طريق ملف اعداد الخادم htaccess. او ان عملية الوصول اليها مقيدة بشكل من الاشكال. لاحظ أيضا ان اي مسار يحمل اسما عربيا لا يتم اعادته وسيتم اظهار نفس المشكلة، وهذا ما لا يزال يشير الى ذات الاحتمال السابق: مشكلة بتكوين ملف htacccess. يمكن مثلا اضافة هذا المسار لقبول المسارات التي هي مكتوبة باللغة العربية: RewriteRule ^([^/]*)$ /index.php?path=$1 [L] في حالة التعذر، يرجى ارفاق محتوى ملف htaccess الخاص بك للنظر فيه.
  15. تصنيف VueJS في مقالات أكاديمية حسوب يحتوي على مجموعة من الدروس المكتوبة المعتبرة في اطار عمل VueJS، قد تكون مهتما بالاطلاع عليها هنا. يوجد ايضا مجموعة من الدروس المتفرقة على قناة أكاديمية حسوب على اليوتيوب من مثل فيديو إنشاء تطبيق بسيط من خلال Vue.js.
  16. من الطبيعي ان يكون التحميل بطيئا اذ يفترض انك تقوم برفع ملف فيديو فيلم عادة ما يكون بأحجام كبيرة وتقديمه الى الخادم ضمن استمارة سيأخذ وقتا. ولكن اعتبارا لتجربة الاستخدام حاول عمل طلبية AJAX لرفع الفيديو المعني الى واجهة التطبيق الخلفية المعنية. قد تحتاج بشكل ما لفصل جدول الفيديوهات عن جدول الأفلام للتعامل مع ادخال سجل فيديو جديد بشكل منفصل عن عملية انشاء فيلم. بهاته الطريقة سيكون من العملي تقديم تفاصيل الفيلم ومن ثم رفع الفيديو نفسه. حاول القيام بذلك افضل.
  17. هي ليست مغلقة، تأكد فقط من النزول الى اسفل الصفحة، ستجد محرر التعليق، استعمله لذلك.
  18. ليس تماما، الاستعلام يحدث بالفعل ويتم تنفيذه غير أنه لا يتم التقاط عائده من على خارج الدالة. فالمشكلة هنا هي أنك تحاول الوصول الى متغير محلي local variable من على خارج نطاق الدالة function scope. وللوصول اليه اظنك ستحتاج ضبطه كعائد للدالة التي تقوم بتوصيفها. فيكون ذلك كـ: function connecting($order_table,$table){ global $order_id ; global $conn; $query_var = 'SELECT '.$order_table.'.*, '.$order_table.'.price AS price, admins.name AS user, patron_colors.color_name AS color_name, patron_colors.color_count FROM '.$order_table.' LEFT JOIN admins ON '.$order_table.'.user = admins.id JOIN '.$table.' ON '.$order_table.'.'.$order_table.'_id = '.$table.'.id JOIN patron_colors ON '.$order_table.'.color_select = patron_colors.id WHERE '.$order_table.'.order_id=' .$order_id . ' ORDER BY '.$order_table.'.id ASC;'; $run = $conn->query($query_var); return $run; } الآن ستحتاج استقبال عائد الدالة وتخزينه في متغير: $run = connecting('order_bracelet','bracelet'); وأخيرا استعماله في المرور على الصفوف الناتجة: foreach ($run AS $row ){ // code here }
  19. مرحبا حمد، ان كنت تواجه مشكلة ما في احد دروس الدورات فيمكنك توصيف مشكلتك في قسم تعليقات الطلاب اسفل كل درس، وسيمكن المتابعة معك آنذاك.
  20. يعتمد هذا على حاجة المشروع بدرجة اولى، فإن كان هنالك داع لتوفير حالة استخدام لادراج 500 سجل مرة واحدة فسيكون ذلك نعم، اما ان كان يجب انشاء هاته السجلات واحدا واحدا فلا بأس بذلك ايضا. وعموما، يتم ذلك بشكل مستقل، اي واحدا واحدا.
  21. هي موارد وتشكيلات بيانات يتم ادارتها والتعامل معها عن طريق تطوير الواجهات الخلفية، وان كنت جديدا على هذا المفهوم فستجد ان الامر مختلف قليلا عن تطوير الواجهات الامامية. فهو الجزء من التطبيق الذي يشتغل على الخادم ويدير مختلف عمليات CRUD: القراءة - التعديل - الادراج او الانشاء - الحذف على موارد البيانات، سواءا كان افلاما او مقالات اي ما الى ذلك. هذا بجانب التعامل مع مفاهيم مثل توثيق ومصادقة الطلبات وتسجيل الانشطة وغيرها. ففي جزئية القراءة مثلا، يقوم تطبيق الخادم بالقيام باستعلام قواعد بيانات لقراءة 500 سجل افلام مثلا، ثم يقوم باعادة النتيجة ككائن JSON في الرد على الطلب. نفس الشيء بالنسبة للحذف او التعديل او غيرها.
  22. يمكنك تثبيت bootstrap كحزمة بواسطة مدير الحزم npm عن طريق الامر: npm i bootstrap الآن قم باستيراد ملف تنسيقات بوتستراب في ملف جافاسكربت الرئيسي index.js لديك: import 'bootstrap/dist/css/bootstrap.css'; import 'bootstrap'; وسيمكنك البدء في استعماله بشكل مباشر. قد تكون ايضا مهتما باستعمال react-strap مباشرة. وهي مكتبة تتوفر على مجموعة من مكونات react وبوتسراب سهلة الاستخدام والتضمين مباشرة.
  23. تحدث هاته المشكلة عند امتلاك المستودع البعيد remote repo على تعديلات لا يمتلكها المستودع المحلي local repo او مجلد العمل working directory، ولتلافي هاته المشكلة سيجب اما: جبر الدفع الى المستودع المبعيد عن طريق اضافة الخيار f او force: git push origin main --force سحب التحديثات الى مجلد العمل ثم القيام بالدفع مجددا: git pull --rebase origin main git push origin main
  24. لأن git bash يتطلب ذلك، فهو تطبيق يحاكي بيئة bash على وينذوز ومن بين ما يقوم به هو انه يربط الايداعات التي تقوم بها على المستودع المحلي ويعرفها بهوية، هذا الاسم هو ليس بالضرورة اسم مستخدمك على github. ولذلك فإنه عند البدء مع git bash سيشترط عليك ذلك. على عكس طرفية windows يمكنك الاستزادة بالبحث عن الموضوع اكثر، Getting started with Git - github docs او عن الفرق بين git bash و cmd
  25. جرب تنفيذ الامرين التالين بدون الخيار global--: git config user.email "YOUR_EMAIL_HERE" git config user.name "YOUR_NAME"
×
×
  • أضف...