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

Hassan Hedr

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

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

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

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

    38

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

  1. تأكد من وجود قيمة للمتغير doc قبل إرساله ضمن التابع postDocument كالتالي const postDocument = () => { if(!doc) return; ... } حاول أيضًا حذف الترويسة Content-Type وإرسال الملف بدون الترويسة كالتالي axios.post(url, formData)
  2. حاول إضافة الترويسة Content-Type مع طلب الإرسال في axios كالتالي: axios.post(url, formData, { headers: { "Content-Type": "multipart/form-data", }, }); وتأكد من إعداد multer بالشكل الصحيح على الخادم لكي يتم ترجمة الملف المرفوع إلى المتغير req.file const multer = require('multer') const upload = multer(...); ... app.post('/audio', upload.single('document'), function (req, res, next) { ^^^^^^^^^^^^^^^^^^^^^^^^ const file = req.file // الملف })
  3. يبدو أنك تقوم ضمن الاستعلام بعملية جمع Join لجدول آخر مع الجدول items يحوي أيضًا على الحقل NAME، يمكنك تعديل الاستعلام وذكر اسم الجدول items بشكل تصريحي قبل اسم الحقل ضمن جملة الشرط، ليصبح الاستعلام لديك يشبع التالي: SELECT * FROM items WHERE items.NAME = "..." ^^^^^^ JOIN other_table ...
  4. يرجى تعديل السؤال وإرفاق شيفرة HTML للصفحة المقصودة وتنسيقه بتنسيق Code ليتمكن الزوار من مساعدتك
  5. يرجى التأكد من إضافة قوس الإغلاق للصنف admin، class admin { ... } ^ class Main { ... } المشكلة الأخرى أن الحقول First_Name و Last_Name الوصول إليها محصور ضمن الصنف admin فقط لأنها private، يمكن بدلًا من ذلك استخدام التوابع setFirst_Name و setLast_Name كالتالي admin ad = new admin(); ad.setFirst_Name("Majd"); ad.setLast_Name("mm");
  6. تأكد من تطابق اسم التابع deleteproduct ضمن صنف المكون مع ذكره ضمن ملف العرض، أيضًا تأكد من كون تابع الحدث public كالتالي: class MyComponent extends Component { public function deleteproduct($product_id) { ^^^^^^ ... } }
  7. هل تأكدت بداية من إمكانية الوصول بشكل سليم إلى الصفحة المراد مشاركتها محليًا عبر الرابط المحلي وليس رابط ngrok، يرجى إرفاق ذلك الرابط
  8. HTML و CSS و JavaScript هي لغات الويب، مهما كان نوع المشروع الذي تقوم بتطويره أو حجمه في حال أردت توفير صفحات ويب لعرض المعلومات أو للتعامل مع النظام لا بد من بناء تلك الصفحات باستخدام تلك اللغات لا يهم مدى حجم المشروع فهذه اللغات معتمدة ولها دعم كبير ضمن المتصفحات. تشكل تلك اللغات الواجهات الأمامية للموقع فقط، في حال كان التطبيق بالكامل يعمل بطرف العميل فستكفي تلك اللغات لبناء التطبيق بالكامل ويمكن استضافته ضمن أي استضافة للملفات وتوفير الوصول لها عن طريق عنوان أو اسم نطاق ما، أما في حال مركزية النظام الأساسي سيكون هناك فصل (ولو جزئي) بين الواجهات الأمامية لموقع النظام والنظام المركزي (النظام الخلفي Backend) للمشروع، هناك تستطيع استخدام العديد من لغات البرمجة مثل PHP - Python - Ruby - JavaScript وأطر العمل أو المكتبات مثل Laravel - Django - Rails - ExpressJS يمكنك الاستفادة من قراءة المقالات التالية
  9. يجب تحويل كافة النصوص ضمن القالب وتمريرها إلى أحد التابعين التاليين: __('...') أو __e('...') ولترتيب كافة النصوص ضمن القالب الخاص بك ليسهل ترجمها أختر اسم نطاق للنصوص خاص بالقالب يكون فريدًا وغير قابل للتكرار ومرره كمعامل ثانٍ للتوابع السابقة عند كل تحويل لنص ضمن القالب، مثال في حال اخترت اسم النطاق my-theme تصبح الاستدعاءات السابقة كالتالي __('...', 'my-theme') أو __e('...', 'my-theme') وضمن ملف التعريف بالقالب (غالبًا style.css) ضمن تعليق التعريف بالقالب أضف الخاصية Text Domain وقيمتها اسم النطاق المختار سابقًا كالتالي: /* * .... * Text Domain: my-theme */ بعدها ستجد النصوص ضمن القالب لديك قد ظهرت ضمن إضافة الترجمة ويمكنك ترجمتها وتخزين الترجمات ضمن الموقع
  10. حماية مفتاح الواجهة البرمجية API Token هي مسؤولية المستخدم نفسه وليست مسؤولية المطور، على المستخدم أن يختار التعامل مع النظام باستخدام متصفح آمن ومحمي يمنع المستخدمين الآخرين أو المواقع أو البرامج الأخرى من الوصول إلى محتويات المخزن المحلي localstorage، أيضًا يجب الانتباه لاستخدام اتصال آمن ك HTTPS ليتم إرسال الطلب مع المفتاح عبره ومنع احتمال التنصت على الطلب واستخراج مفتاح المستخدم من قبل طرف ثالث إذا كنت تقصد أن المفتاح معرض لاستخراجه من قبل المستخدم نفسه فلا يمكنك تقريبًا حماية ذلك، لأن النظام لديك ينظر لكافة الطلبات الواردة إليه على أنها طلبات من مستخدمين ومن الصعب التحقق من مصدر تلك الطلبات هل أتت عبر واجهة موقعك أم قام المستخدم ببناءها بنفسه يمكنك تخزين التوكن ضمن localstorage او ضمن Cookies وبذلك سيتم إرسالها مع كل طلب بشكل آلي لكن يجب إعداد axois لذلك عبر إضافة السطر التالي axios.defaults.withCredentials = true; يمكنك إرسال طلب للمسار sanctum/csrf-cookie/ ليتم إرسال التوكن بشكل آلي من قبل sanctum وتعيينها لدى العميل ليتم إرسالها بشكل آلي مع الطلبات اللاحقة axios.get('/sanctum/csrf-cookie').then(response => { // تسجيل الدخول }); يمكنك الاستفادة من قراءة الإجابات على السؤال التالي
  11. يجب تثبيت إضافة Laravel ضمن المحرر: الضغط على Ctrl+Alt+S ليظهر محرر الإضافات البحث عن إضافة Laravel وتثبيتها فتح مجلد المشروع والتوجه إلى Settings > Languages & Frameworks > PHP > Laravel والتأكد من تفعيله بعدها ستصبح مزايا الإضافة متاحة لك ضمن المحرر خلال العمل على المشروع
  12. يمكنك البحث عن ما ترغب به ضمن منصة خمسات، قد تجد من يقدم لك تلك الخدمة هناك، أو يمكنك طرح ما تريد ضمن منصة مستقل وسيتقدم من يمتلك نظام مشابه مع الشيفرة المصدرية ويرغب ببيعه بعرض على مشروعك ويمكنك الاتفاق معه والاستلام والدفع عن طريق المنصة
  13. إذا تأكد أولًا من إمكانية دخولك للبرنامج من خلال العنوان المحلي localhost قد يكون الرابط على الشكل التالي: http://localhost/moodle بعد تأكدك أن البرنامج يعمل لديك محليًا بشكل سليم حاول مشاركته عن طريق ngrok كالتالي (مع مراعاة تغيير الرابط المحلي في حال الاختلاف) ngrok http http://localhost
  14. نمذجة قاعدة البيانات تعتمد على نطاق المشروع وما نوعية البيانات التي يراد تخزينها، إذا كانت النماذج ضمن المشروع عبارة عن مستخدمين ومنشورات فقط ف نعم النوعين كافيان، لكن ان احتاج المشروع لنموذج جديد يجب إضافته لا قواعد في ذلك، طبيعة المشروع تحدد ما هي النماذج الموجودة
  15. هل يمكن التوضيح أكثر ما الذي تحاول مشاركته ضمن بيئة جهازك المحلية وكيف تقوم بذلك
  16. الأمر يتبع طبيعة الموقع لديك وهيكليته ولغات البرمجة المستخدمة ضمن وأطر العمل، الأسئلة الذي طرحتها تحتاج لعمل طويل ومختص بتحليل النظم حيث سيقوم بالاطلاع على طبيعة موقعك بشكل كامل والاستفسار عن المتطلبات التي ذكرتها بشكل أوسع ثم تحديد أنسب الحلول والتقنيات لتطبيقها ضمن الموقع يمكنك البحث عن خبير في تحليل وتطوير المواقع عبر طرح متطلباتك والمشروع الذي تحاول تطويره ضمن منصة مستقل والانتباه إلى تقديم المعلومات الكافية ليتقدم لمشروعك المستقلين أصحاب الخبرة ويمكنك تعيينهم للعمل على التطويرات ضمن المشروع
  17. ضمن النسخة 5 من بوتستراب يوجد دعم رسمي للاتجاه من اليمين إلى اليسار، بعد تنفيذ الأمر التالي لتثبيت الحزمة الرسمية ضمن المشروع: npm i bootstrap@5 بعد إعداد webpack بالشكل الصحيح لتحميل ملفات CSS يمكنك ضمن ملفات جافاسكريبت استيراد ملف بوتستراب للدعم كالتالي وسيتم تحزيمه مع ملفات الموقع بشكل صحيح: import 'bootstrap/css/bootstrap.rtl.min.css';
  18. تأكد من إدراج الربط لملف تنسيق bootstrap-rtl ضمن صفحات HTML ضمن موقعك عبر إضافة الوسم التالي <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.rtl.min.css" integrity="sha384-gXt9imSW0VcJVHezoNQsP+TNrjYXoGcrqBZJpry9zJt8PCQjobwmhMGaDHTASo9N" crossorigin="anonymous"> بعدها يجب تعيين كل من الخواص dir بالقيمة rtl و lang بالقيمة ar على العنصر الجذر html ضمن الصفحات ليتم تطبيق خواص التنسيق من اليمين إلى اليسار ضمن الصفحة بشكل سليم، يصبح الوسم لديك كالتالي: <html lang="ar" dir="rtl"> ...
  19. تأكد من عمل المخدم محليًا ومن صحة الرابط المحلي الذي تقوم بمشاركته، بفرض تحاول مشاركة الاتصال على المنفذ المحلي 8080 تأكد من عمل الرابط محليًا http://localhost:8080/moodle ثم شارك الاتصال بالمنفذ من خلال تنفيذ الأمر التالي: ngrok http http://localhost:8080 ^^^^^^^^^^^^^^^^^^^^^ بعد التنفيذ سيظهر لك الروابط العامة التي تمكنك من الاتصال من بعيد تأكد من نسخها ومشاركتها بشكل صحيح
  20. القياس يعتمد على الاستخدام فهناك العديد من القياسات والأشكال والاستخدامات، يجب الاستفسار من الزبون وفهم متطلباته واحتياجاته أو طلب مثال عن الحجم الذي يرغب به، ما المنتجات المتوقع وضعها ضمن الكيس؟ هل الكيس يحتاج إلى أيدي ؟ هل يحتاج الكيس إلى قاعدة عريضة ؟ هي هناك تصميم بصري معين مطلوب وضعه على الكيس (بحيث نختار أبعاد وشكل مناسب) ؟ بخصوص حاملة أكواب القهوة أيضًا يجب الاستفسار عن أحجام أكواب القهوة المستخدمة والعدد المطلوب وضعه ضمن الحاملة الواحدة، التالي مثال على الحجم القياسي
  21. المشكلة لديك هي في تنظيف البيانات لا تدع تلك المشكلة تزحف إلى زوايا المشروع فستبقى تحاول إيجاد الحلول لها في كل سياق لمشكلة تواجهك تكون هي مصدرها، المعرّف هو قيمة تميز بين كائنين مختلفين كليًا، أي لو تشابه كائنان في جميع الخصائص واختلفا بقيمة المعرف فهما كائنان مختلفان ويجب معاملتهما كذلك، قد يصدف امتلاك موردين مختلفين لنفس الاسم ولكن هما موردين مختلفين حاول تنظيف البيانات في جدول suppliers بعد تأكدك من أن تطابق الأسماء يعني تطابق ما تمثله تلك السجلات في الواقع، ابدأ حديد النسخ المتكررة من جدول الموردين اختر احداها واعتمد المعرف له ضمن باقي الجداول قم بتعديل المفتاح foreign key ضمن الجداول كافة لتشير إلى معرف المورد الذي اعتمدته بعدها لن تحتاج لحل تلك المشكلة ضمن باقي المشروع فقط معرف واحد لكل مورد حقيقي وغير مسموح بالتكرار
  22. بحسب المتطلبات للموقع ولغة البرمجة المستخدمة يمكن الاستفادة من البرمجة كائنية التوجه في بناء أصناف تمثل مفاهيم ضمن مجال العمل الذي يسعى التطبيق لخدمته، في حالة تطبيق لمطعم يمكن مثلًا بناء صنف يمثل قائمة الأصناف المتوفرة : public class Menu { String[] items; public Menu(String[] availableItems) { items = availableItems; // تعيين الأصناف المتوفرة } // طباعة الأصناف المتوفرة public void printItems() { System.out.println("يتوفر لدينا الأصناف التالية:"); for (String item : items) { System.out.println(item); } } } يمكن انشاء قائمة أصناف وطباعة محتوياتها باستخدام الصنف السابق كالتالي: Menu menu = new Menu(["item 1", "item 2"]); menu.printItems(); // :يتوفر لدينا الأصناف التالية // item 1 // item 2 يمكنك القراءة أكثر عن البرمجة كائنية التوجه في المقال التالي:
  23. في حال كنت مبتدءًا فيجب أولا البدء بأساسيات ومفاهيم البرمجة فهي مشتركة تقريبًا في جميع تطبيقات ولغات البرمجة، تعلم وطبق في سكراتش Scratch بداية فهو سهل ومفيد لك في البداية بعدها طبق ما تعلمت ضمن لغة برمجة جديدة تتعلمها، حدد الاختصاص الذي ترغب في العمل ضمنه، إذا اخترت برمجة النظم الخلفية فلديك عدة لغات منها PHP و Javascript و Python و Ruby يمكنك تطوير النظم الخلفية بواسطتها فلديها مكتبات وأطر عمل عديدة ودعم واسع، يوجد ضمن الأكاديمية عدة دورات تمكنك بالبدء من الصفر والتعلم خطوة بخطوة مع التطبيق العملي على مشاريع عدة تصبح عند اتمامها قادر على تطوير التطبيقات بشكل كامل: دورة تطوير تطبيقات باستخدام لغة بايثون دورة تطوير التطبيقات باستخدام لغة JavaScript دورة تطوير تطبيقات الويب باستخدام لغة PHP يمكنك الاستفادة من قراءة المقال التالي
  24. أيضًا يمكنك الاستفادة من قراءة المقالات التالية وفيها بشكل عام عن أساسيات التموضع positioning في CSS وعن كل من خواص التموضع static, relative, absoulute, sticky, fixed وعن النموذج المبنية عليه النموذج الصندوقي Box Model حاول تطبيق هذه الخواص بنفسك على أمثلة متعددة وهي أفضل طريقة لفهم استخداماتها:
  25. الحاجة لتخزين البيانات سببها حاجتنا في استرداد البيانات في وقت لاحق بشكل صحيح وسريع، يمكنك تخزين البيانات ضمن أي مخزن أو توزيعها على عدة أنواع من المخازن، فوائد مخزن قاعدة البيانات: يوفر سهولة في ربط البيانات مع بعضها سرعة في استرداد البيانات بشكل صحيح بسبب فهرستها سهولة في الاستعلام عن البيانات واستخراج المعلومات منها سهولة في تعديل أو حذف البيانات يمكنك تقسيم البيانات إلى عدة مخازن، المعلومات عن المنتجات تخزن ضمن قاعدة البيانات، وصورها تخزن في مخزن نظام الملفات، والاكتفاء بذكر مسار ملف صورة كل منتج ضمن قاعدة البيانات لسهولة استرداده لاحقًا، بهذه الطريقة ستصبح قاعدة البيانات خفيفة وسهلة التعديل و استعلام البيانات منها ولن تؤثر على حجمها يمكنك الاستفادة من قراءة المقال التالي:
×
×
  • أضف...