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

Hassan Hedr

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

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

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

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

    38

كل منشورات العضو Hassan Hedr

  1. يرجى إرفاق كل من شيفرة جافاسكريبت وشيفرة HTML للمستند الذي تقوم بمحاولة التطبيق عليه
  2. حاول الدخول من الرابط من هنا حصرًا، أيضًا حاول تغيير برنامج الـ VPN في حال كنت تستخدمه بآخر، إذا بقيت المشكلة يمكنك بعد الضغط على زر Advanced ستجد في الأسفل رابطًا كالتالي يمكنك الضغط عليه وسيتم توجيهك للموقع Procceed to www.freepick.com (unsafe) لكن في هذه الحال إحذر من إدخال أي معلومات خاصة بك شمن الموقع سواء اسم وكلمة مرور حسابك أو معلومات بطاقتك البنكية، أستعمل الطريقة الثانية لتصفح الموقع فقط أو التحميل
  3. Polymorphism أو تعددية الأوجه تعني أنه يمكن معاملة الكائن بأشكال مختلفة، في مثالك الصنفين tv_remote و reciver_remote يمكن معاملتهما كصنف من النوع remotecontrol، يمكن تضمين تعددية الأوجه بطريقتين: تعريف شكل الكائن ضمن واجهة interface يضمنها كل صنف بطريقته الخاصة (وهي الطريقة المستخدمة في مثالك) تعريف شكل الكائن ضمن صنف أب، والوراثة منه في الصنف الابن،وسيعامل الصنف الابن على أنه من نفس نوع الصنف الأب يمكنك القراءة أكثر عن البرمجة كائنية التوجه ضمن المقالات التالية:
  4. لا يمكن المقارنة بينهما بشكل مباشر لان لكل منهما وظيفة: الصنف المجرد abstract: هو صنف يعتبر قالبًا يمكن للأصناف الأخرى استخدامه وسترث تلك الأصناف منه كل التوابع والمتغيرات المعرفة داخله، ولا يمكن انشاء كائن من الأصناف المجردة الكلمة المحجوزة final: يمكن تعريف صنف كصنف نهائي final أو تابع ما كتابع نهائي عند تعريف صنف بذلك هذا يدل أن ذلك الصنف لا يمكن لأي صنف آخر أي يرثه <?php final class FinalClass { ... } class ChildClass extends FinalClass { } // final سينتج خطأ لا يمكن الوراثة من صنف ?> عند تعريف تابع كتابع نهائي لا يمكن للأصناف التي ترث ذلك التابع أن تعيد تعريف التابع نفسه ضمنها بما يعرف ب Overriding <?php class BaseClass { final public function finalMetod() { ... } } class ChildClass extends BaseClass { public function finalMetod() { // إعادة تعريف للتابع الموروث ... } } // final سينتج خطأ لا يمكن إعادة تعريف تابع ?>
  5. يمكن تأجيل تهيئة intlTelInput إلى ما بعد حقن العنصر phone# وذلك لأن التهيئة تعتمد على تواجد هذا العنصر من الأساس // 01 - #phone حقن العنصر ... // 02 - intlTelInput تهيئة العنصر مع var phone_number = window.intlTelInput(document.querySelector("#phone"), { ... }); window.iti = phone_number; function getValue(){ var number = phone_number.getNumber(); alert(number); } ... // 03 - getValue الآن يمكن استخدام ... حل آخر يكون بحقن العنصر مبكرًا ولكن إخفاء ظهوره ضمن الصفحة عبر التنسيق كالتالي #phone { display: none; } وبعد اتمام الخطوات نقوم بإظهار العنصر بواسطة javascript document.querySelector("#phone").style.display = 'block';
  6. في حال كنت تريد أن يحوي العنصر عدة فئات من كل جدول على حدى لا بد من انشاء جدول ربط لكل جدول فئات على حدى: items_categories (item_id, category_id) FOREIGN KEY (item_id) REFERENCES item(item_id) FOREIGN KEY (category_id) REFERENCES category(category_id) items_sub_categories_1 (item_id, sub_category_1_id) FOREIGN KEY (item_id) REFERENCES item(item_id) FOREIGN KEY (sub_category_1_id) REFERENCES sub-category1(sub-category1_id) items_sub_categories_2 (item_id, sub_category_2_id) FOREIGN KEY (item_id) REFERENCES item(item_id) FOREIGN KEY (sub_category_2_id) REFERENCES sub-category2(sub-category2_id) ثم الاستعلام عن العنصر مع ربط فئاته الثلاث ضمن الاستعلام كالتالي: SELECT * FROM item LEFT JOIN category ON item.item_id=category.item_id LEFT JOIN sub-category1 ON item.item_id=sub-category1.item_id LEFT JOIN sub-category2 ON item.item_id=sub-category2.item_id
  7. لنحدد وظيفة كل من اللغات والتقنيات المذكورة لنحصر المشاريع الممكت تنفيذها باستخدامها: HTML بناء صفحات ويب CSS و Bootstrap لتنسيق الصفحات Javascript لإضافة التفاعلية ضمن الصفحة Firebase له العديد من المزايا أهمها التواصل في الوقت الحقيقي وتخزين البيانات العديد من المشاريع يمكن القيام بها باستخدام هذه التقنيات أو بعضها: تطبيق دردشة متجر الكتروني موقع خدمات لعبة تفاعلية متعددة المستخدمين حدد مشروع يكون صغير الحجم وواضح المزايا لكي تركز على جودة المزايا وليس كثرتها
  8. لأن التعبير يطلب أن يحتوي النص على الجملة "age is" وبعدها عدد واحد أو أكثر شرط أن تكون هذه الأعداد إما 1 أو 2، التعبير في الجملة لديك طابق القسم التالي : 'Hello there! My name is Ibrahim and my age is 20' ^^^^^^^^^^^ أي طابق الجملة وبعدها عدد واحد، يمكنك استبدال "+" أي واحد أو أكثر، بـ "{1,2}" أي عدد مكون من خانة واحدة أو اثنين فيصبح التعبير كالتالي: const regex = /age is [1-2]{1,2}/; الجمل التالية كلها تطابق التعبير: 'Hello there! My name is Ibrahim and my age is 21' ^^^^^^^^^^^^ 'Hello there! My name is Ibrahim and my age is 11' ^^^^^^^^^^^^ 'Hello there! My name is Ibrahim and my age is 125' ^^^^^^^^^^^^
  9. يجب إرفاق قسم HTML و CSS المتعلق بالتذييل Footer حتى نتمكن من مساعدتك
  10. إذا عملية الحفظ تتم بشكل سليم بما أنك تستخدم nodemon فعند كل عملية حفظ للملفات سيقوم الخادم بإعادة التشغيل وبالتالي خسارة كل بيانات الجلسة بما أن المخزن الافتراضي هو مخزن الذاكرة، حاول طلب المسار session/viaCode ثم طلب مسار الاختبار بعده مباشرة من دون أن تقوم بأي تعديلات على الملفات تؤدي لإعادة التشغيل بين العمليتين
  11. هل يمكنك إرفاق رسالة الخطأ التي تظهر ضمن الرد في الطلب أو ضمن الطرفية التي تعمل بها إجرائية الخادم
  12. هل قمت بتسجيل viaCode بشكل صحيح ضمن الموجه، حاول أيضًا إضافة إرسال جواب بعد حفظ الجلسة بشكل سليم أو إرسال خطأ وذلك للتأكد بأن العملية تتم بشكل صحيح req.session.save((err) => { console.log(err); if(err) res.status(500).send(err.message); else res.send({ token }) })
  13. هل يمكنك إرفاق شيفرة التخزين ضمن الجلسة والشيفرة التي تقوم بها بالاختبار عبر طباعة القيم ضمن الجلسة
  14. المستودع الافتراضي لتخزين بيانات الجلسة هو في الذاكرة، كيف تقوم بالتحقق من عدم تخزين البيانات ضمن الجلسة
  15. في حال كنت تقوم بتجربة المشروع محليًا من دون استخدام HTTPS، حاول إضافة secure بالقيمة false للخاصية cookie ما يسمح بتعيين الكوكي حتى ولو كان الاتصال عن طريق HTTP كالتالي app.use(session({ ... cookie: { secure: false } })) حاول أيضًا بعد تعيين القيم داخل الجلسة استدعاء أمر الحفظ يدويًا كالتالي req.session.save()
  16. هل حاولت تغيير قيمة object-fit إلى cover أيضًا حتى يتم تغيير قياس الصورة كالتالي footer img { ... object-fit: cover; }
  17. حاول إذا تعيين عرض محدد للصورة بما يتناسب مع الشكل الذي تريده مثلا width: 110% كالتالي footer img { width: 110% }
  18. يمكنك أيضًا تعيين العرض الأقصى للتذييل بأن لا يتجاوز عرض الشاشة باستخدام التالي .footer { ... max-width: 100vw; }
  19. يرجى تعديل السؤال وإرفاق التنسيق بشكل نصي وليس كصورة. حاول تحديد الارتفاع الأقصى للتذييل footer باستخدام الخاصية max-height وتعيينها لقيمة تناسب الحجم الذي تريده، مع إضافة الخاصية overflow بالقيمة hidden لإخفاء القسم الزائد من الصورة كالتالي: .footer { ... max-height: 500px; overflow: hidden; }
  20. الخطأ لديك في استدعاء دالة fetchPokeFull في النهاية، حيث أن الدالة تتوقع تمرير غرض يعبر عن بيانات عنصر من عناصر البحث، لا داعي لإستدعائها بنفسك فالتابع fetchPoke يثوم باستدعائه بشكل مناسب عند وصول البيانات، قم بحذف الاستدعاء الأخير كالتالي // fetchPokeFull() ولتجنب الاستدعاء الخاطئ يمكن حماية التابع من داخله عبر الخروج مبكرًا في حال كان المعامل الممرر بلا قيمة كالتالي function fetchPokeFull(pokemon){ if(!pokemon) return; // التحقق من المعاملات ...
  21. يرجى تعديل السؤال الأساسي وعدم إرفاق الملفات بل فقط إضافة الجزء المتعلق بالخطأ كشيفرة ضمن السؤال وأيضًا رسالة الخطأ كنص ضمنها
  22. يرجى إرفاق الشيفرة من الملف بشكل نصي مع تنسيقه كشيفرة ضمن السؤال، ,أيضًا إرفاق رسالة الخطأ بشكل نصي من فضلك حتى يستطيع جميع الزوار مساعدتك بشكل أفضل
  23. في حال كنت تقصد تثبيت شريط التنقل في أعلى الصفحة ليظهر فوق كافة العناصر يمكنك استخدام الصنف fixed-top كالتالي: <nav class="navbar fixed-top ..."> ... ^^^^^^^^^ </nav> أما إذا كنت تقصد فقط إزاحة العنصر أسفل شريط التنقل قم أولا بإضافة الخيار التالي لملف تخصيصات بوتستراب sass لديك $enable-negative-margins: true بعدها يمكنك إضافة مسافة علوية سالبة لعنصر الصورة كالتالي: <img class="mt-n4 ..."> ^^^^^ أيضًا في ملفات sass استهدف شريط التنقل ووضع قيمة z-index له عالية بحيث يبقى فوق جميع العناصر مع خاصية position بالقيمة relative، وقيمة z-index للصورة أيضًا أقل منه لضمان وجودها في الأسفل، بشكل يشبه التالي مع تغيير خواص الاستهداف لتناسب العناصر لديك: nav { position: relative; z-index: 999; } img { z-index: 1; }
  24. حاول إضافة ترويسة قبول json لإخبار الخادم بالصيغة المطلوبة كالتالي import requests url = "https://www.instagram.com/7sampli/?__a=1" res = requests.get(url , headers = {'Accept': 'application/json'}) print(res.json()) أيضًا قد يكون خادم instagram.com قد عطل طلباتك بشكل مؤقت لكثرتها، لذا يجب التوقف عن إرسال الطلبات لفترة ما إلى أن يتم السماح لك بها مجددًا، وعندها حاول التخفيف من عدد الطلبات المرسلة بفترة زمنية قصيرة ، يمكنك محاولة إرسال طلب واحد جديد باستخدام VPN على جهازك مع التأكد أنه يمرر جميع طلبات الجهاز عبره، إذا نجح الطلب يكون هذا تأكيدًا على أن الخادم قم بحظر طلباتك مؤقتًا
  25. يجب تقسيم الموقع إلى مكونات تحتوي داخلها كافة ما يحتاجه المكون من متغيرات وبيانات وحتى أي شيفرة جافاسكريبت متعلقة به، ثم وضع هذا المكونات بشكل هرمي تحت المكون الجذر App، إذا كان الموقع مؤلف من عدة صفحات يجب استخدام موجه خاص مثل react router العملية تحتاج خبرة بالتطوير باستخدام جافاسكريبت وتقنيات الويب ومكتبة رياكت، إذا كنت مبتدئ يمكنك البدء بالتعرف على رياكت بقراءة المقالات التالية: توفر الأكاديمية أيضًا دورة في تطوير التطبيقات باستخدام لغة JavaScript ستتعلم من خلالها اساسيات التطوير باستخدام جافاسكريبت و رياكت
×
×
  • أضف...