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

Mustafa Suleiman

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

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

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

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

    300

كل منشورات العضو Mustafa Suleiman

  1. نعم، افصل كابل الطاقة عنه وكذلك الهارد ديسك، وجرب تغيير كابل الباور الخاص بالكيسة مع كابل الباور الخاص بالشاشة، فقد يكون هناك مشكلة في السلك نفسه.
  2. أولاً أنصحك بقراءة النقاش التالي لفهم المميزات التي أتي بها Vite. وتم دعم Vite في Laravel 9.19 والإصدارات اللاحقة، وVite هي محزم تجميع سريع وخفيف الوزن يستخدم في تطوير تطبيقات الويب، ويعتبر Vite أداة تجميع قائمة على تجميع الوحدات (build on-demand)، مما يعني أنه يجمع فقط الوحدات التي يتم تحميلها فعليًا في صفحة الويب. وقد شرحت كيف يمكنك استخدام Vite في مشروع لارافيل في النقاش التالي، حيث أن في الإصدرات الحديثة لست بحاجة إلى تثبيت Vite، وقدر شرحت أيضًا طريقة التثبيت.
  3. سأوضح لك بمثال كيف يمكن تنسيق الصورة مع النص. HTML: <div class="user-profile"> <img src="path/to/image.jpg" alt="صورة المستخدم"> <span class="username">اسم المستخدم</span> </div> CSS: .user-profile { display: flex; align-items: center; gap: 10px; /* المسافة بين الصورة واسم المستخدم */ } .username { font-size: 18px; /* حجم الخط لاسم المستخدم */ } قمت بإنشاء عنصر div بالصفات user-profile والذي يحتوي على الصورة واسم المستخدم. واستخدمت تنسيقات CSS لتطبيق display: flex على العنصر الأب user-profile لتحقيق توزيع المحتوى في مستوى واحد. وحددت align-items: center لمحاذاة العناصر عموديًا، و gap لتحديد المسافة بين الصورة واسم المستخدم. وتستطيع ضبط قيم التنسيق وفقًا لاحتياجاتك، مثل تغيير حجم الخط أو المسافة بين العناصر، وعليك بتعديل المسار path/to/image.jpg ليتناسب مع موقع الصورة.
  4. حاول فصل القطع واحدة تلو الأخرى وجرب التشغيل، مثلاً قم بإزالة RAM واحدة وأبقي الأخرى مثلاً وجرب التشغيل، أو قم بفصل كرت الشاشة وجرب التشغيل، وأيضًا جرب فصل الهارد تمامًا.
  5. قم بعمل إختبار ضغط للمعالج عن طريق برنامج مثل CPUZ مثلاً، وراقب دراجة حرارة المعالج، فإذا ارتفعت وتم إعادة تشغيل الجهاز، فذلك يعني أن مروحة التبريد بحاجة إلى تغيير، لكن قم أولاً بتغيير المعجون الحراري للمروحة بمعجون تبريد جيد، وإذا استمرت المشكلة قم بتغيير مروحة التبريد. ومتى تحدث لك تلك المشكلة؟
  6. هناك العديد من المفاهيم الرياضية المهمة التي تستخدم في AI، ومن بينها الحساب التفاضلي (Calculus) وجبر الخطي (Linear Algebra) والاحتمالات والإحصاء (Probability and Statistics) والرياضيات التفاضلية والمنطق الرياضي (Discrete Mathematics وMathematical Logic). وما يلي هو توضيح للفروق بين Calculus1 وCalculus2 وCalculus3: Calculus1 (التفاضل والتكامل الأساسي): يتم تعلمه عادة في السنة الأولى من دراسة الرياضيات في الجامعة، ويغطي مفاهيم التفاضل والتكامل الأساسية مثل المشتقة والتكامل غير المحدود والتطبيقات الأولية للتفاضل والتكامل. Calculus2 (تفاضل وتكامل متعدد الأبعاد): يركز على التفاضل والتكامل في الفضاء ثلاثي الأبعاد ويتعامل مع المعادلات التفاضلية الجزئية، ويشمل أيضًا تطبيقات متعددة الأبعاد للتفاضل والتكامل مثل الانحدار الخطي والمساحات المعترضة والقيم القصوى والدنيا. Calculus3 (التفاضل والتكامل في الفضاء الأعلى الأبعاد): يركز على المفاهيم المتقدمة للتفاضل والتكامل في الأبعاد العالية والمعادلات التفاضلية الجزئية غير الخطية والمساحات المتعددة الأبعاد. بالنسبة لسؤالك الثاني، فإن تعلم Calculus وLinear Algebra وProbability and Statistics يعد أساسيًا وضروريًا لفهم وتطبيق تقنيات الذكاء الاصطناعي. وتلك المفاهيم الرياضية تستخدم على نطاق واسع في مجالات مثل تعلم الآلة (Machine Learning) والشبكات العصبية (Neural Networks) ومعالجة اللغة الطبيعية (Natural Language Processing) والرؤية الحاسوبية (Computer Vision) والذكاء الاصطناعي العام (General AI). فإذا كنت ترغب في التخصص في مجال محدد داخل الذكاء الاصطناعي، فربما هناك متطلبات إضافية من المواد الرياضية والإحصائية التي تختلف حسب التخصص. أما بالنسبة لسؤالك الثالث، فإن تعلم Discrete Mathematics وMathematical Logic أمر مفيد لفهم بعض المفاهيم والأدوات المستخدمة في AI. وDiscrete Mathematics تركز على المفاهيم المتعلقة بالأعداد والمجموعات المحدودة والجبر المجرد ونظرية الرسم البياني والتركيب التفاضلي والأعداد المركبة، أما Mathematical Logic يغطي المبادئ الأساسية للمنطق الرياضي والمعرفة المنطقية والاستنتاج. وفي البداية كل ما تحتاجه أنت هو Linear Algebra فعليك بالتركيز على ذلك لتعلم الأساسيات.
  7. أرجو طرح السؤال أسفل فيديو الدورة الخاص بالسؤال، وطرح الأسئلة العامة هنا في قسم أسئلة البرمجة. وإذا كان السؤال غير تابع للدورة، فأرجو توضيحه، ما المقصود بالطريقة الأولى، هل تقصد التحميل من الموقع الرسمي؟ فقد تم شرح ذلك في مقال على أكاديمية حسوب: وكل الطرق تؤدي إلى نفس الغرض وهو تثبيت بايثون، ولكن العمل في بيئة بايثون يتم بشكل إحترافي مثلاً عند إنشاء بيئة إفتراضية لتجنب التعارض بين المكتبات وعزل المشروع ، وذلك كمثال فقط.
  8. قم تم الإجابة بشكل مفصل بخصوص تهيئة الموقع وتحسينه للظهور في محركات البحث وتسويق المقالات في النقاشات والمقالات التالية، أرجو منك قرائتها: القسم الخاص بتهيئة محركات البحث SEO في أكاديمية حسوب
  9. من الأفضل تعيين قيمة "z-index" للـ side bar بحيث تكون أكبر من قيمة ال "z-index" للـ header، وذلك يضمن أن ال side bar سيظهر فوق ال header. .sidebar { position: fixed; z-index: 9999; } .header { position: fixed; z-index: 999; } وتستطيع زيادة padding أو margin للعناصر الأخرى لتحريكها بعيدًا عن ال side bar، أو استخدام الخاصية top كما ذكر لك عمر، وإليك مثال يوضح ما أعنيه. HTML: <!DOCTYPE html> <html> <head> </head> <body> <header class="header"> <h1>عنوان الصفحة</h1> </header> <div class="sidebar"> <ul> <li><a href="#">رابط 1</a></li> <li><a href="#">رابط 2</a></li> <li><a href="#">رابط 3</a></li> </ul> </div> <div class="content"> <p>محتوى الصفحة هنا...</p> </div> </body> </html> CSS: body { margin: 0; padding: 0; } .header { background-color: #f2f2f2; padding: 20px; position: fixed; width: 100%; z-index: 999; } .sidebar { background-color: #eaeaea; position: fixed; width: 200px; top: 80px; bottom: 0; overflow-y: auto; z-index: 9999; } .sidebar ul { list-style-type: none; padding: 0; margin: 0; } .sidebar li { padding: 10px; } .content { margin-left: 220px; padding: 20px; } والنتيجة هي:
  10. هل عرض الصفحة هو 768 بكسل؟ ليتم تطبيق التنسيق؟ قم بتصغير عرض المتصفح ليتم تطبيق التنسيق، وأيضًا تفقد إذا كان هناك تنسيق آخر متعارض، وأيضًا استخدم تعليمة !important وإذا استمرت المشكلة أرجو مشاركة مجلد المشروع لتفقد المشكلة.
  11. إنتبهي إلى النقاط التالي: الفاصلة المنقوطة قبل الكلمة المحجوزة "int" في السطر الأول والسطر الثاني. إضافة علامة الفاصلة المنقوطة بعد كل تعليمة. إضافة علامة الفاصلة بين النصوص المطبوعة والمتغيرات في السطر الثالث. إضافة علامة الفاصلة بين المعاملات في السطر الأخير. إضافة الهوامش الزمنية المطلوبة في سطر الـ #include. الكود بعد إصلاحه: #include <iostream> #include <cmath> int main() { int x = 1; int y = 2; std::cout << "x = " << x << " y = " << y << std::endl; std::cout << "x - y = " << (y - x) << " |y - x| = " << std::abs(y - x) << std::endl; return 0; } وبعد تصحيح الأخطاء، يجب أن يقوم الكود بطباعة قيمة x وقيمة y والفرق بينهما والقيمة المطلقة للفرق بينهما.
  12. الكود يحتوي على خطأ واحد في عبارة SQL المستخدمة في الجملة prepare() في السطر التالي: $stmt2 = $con->prepare("UPDATE student SET name = ?, Email = ?password=? WHERE id =?"); حيث أن الخطأ هو عدم وجود فاصلة بين الحقول name و Email وبين الحقول Email و password، ويجب وضع فواصل بين الحقول بطريقة صحيحة والصحيح هو التالي: $stmt2 = $con->prepare("UPDATE student SET name = ?, Email = ?, password = ? WHERE id =?");
  13. في الوقت الحالي عليك بتنفيذ التالي لحل المشكلة: 1- فتح ملف android/build.gradle في مشروع Flutter باستخدام محرر الأكواد. 2- في الملف build.gradle، قومي بتغيير السطر التالي: dependencies { // ... classpath 'com.android.tools.build:gradle:1.5.0' // ... } إلى: dependencies { // ... classpath 'com.android.tools.build:gradle:4.1.0' // ... } وذلك التغيير يحدث تحديثًا في إصدار أداة Gradle المستخدمة في مشروعك. 3- قومي بفتح ملف android/app/build.gradle في نفس المشروع وتغيير التالي: apply plugin: 'com.android.application' إلى: apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" والتغيير يضمن استخدام إصدار V2 من Android embedding. 5- حفظ الملفات وإغلاقها. 6- افتحي نافذة الأوامر أو تطبيق الطرفية الخاص بك وانتقلي إلى مجلد مشروع Flutter وتشغيل الأوامر التالية لتنظيف المشروع وإعادة بنائه مع التغييرات الجديدة. flutter clean flutter build apk وأيضًا عليك بقراءة المستند الذي تم الإشارة إليه وتعديل ما يلزم في مشروعك إن تطلب الأمر.
  14. في مجال تعلم الآلة وتحليل البيانات، لغة Python تعتبر شائعة ومستخدمة بشكل واسع. حيث تتمتع Python بسهولة التعلم وتوفر العديد من المكتبات والأدوات المتخصصة في مجال التعلم الآلي وتحليل البيانات، مثل NumPy وPandas وSciPy وScikit-learn وTensorFlow وPyTorch وغيرها. لذلك، إذا كنت مبتدئًا في هذا المجال، فأنصحك بالبدء بتعلم Python. وعلى الرغم من أن C++ ليست لغة رقم واحد في مجال تعلم الآلة وتحليل البيانات، إلا أنها تستخدم في بعض الحالات التي تتطلب أداءً ممتازًا وقدرة على التعامل مع كميات كبيرة من البيانات بسرعة عالية. لذلك يكون استخدام C++ مناسبًا إذا كنت تحتاج إلى تطوير خوارزميات محددة بسرعة عالية، ولديك خبرة في البرمجة بلغة C++. وبالنسبة لمكتبات C++ في مجال تعلم الآلة وتحليل البيانات، هناك بعض المكتبات المتاحة مثل TensorFlow بلغة C++ وMLpack وDlib، ولكن فإن التوجه الرئيسي لمجال تعلم الآلة يعتمد بشكل أساسي على Python، لذا فإن توفر المكتبات والأدوات في C++ أقل بعض الشيء. بالنسبة لبرمجة الروبوتات، فإن C++ لغة شائعة ومستخدمة بشكل واسع في هذا المجال، حيث توفر C++ أداءً عاليًا وتحكمًا دقيقًا في الأجهزة والموارد، وذلك مهم عند برمجة الروبوتات. وبخصوص مصادر لتعلم C++ هناك شروحات ودروس في القسم الخاص بها على أكاديمية حسوب، في قسم C++. وتستطيع البحث على يوتيوب وستجد كورسات خاصة بتعلم أساسيات البرمجة من خلال C++.
  15. تمت إزالة خاصية title من عناصر BottomNavigationBarItem اعتبارًا من إصدار Flutter 2.0، وفي الإصدارات الحديثة، تم استبدال العنصر title بعنصر label، والذي يقوم بتحقيق نفس الغرض. لذا، تستطيعي تعديل الكود ليصبح كالتالي: activeColor: material.Colors.lightBlue, inactiveColor: HcColor(@xFFADADAD), BottomNavigationBarItem( icon: Icon(BoxIcons.bx_home_circle), label: tabNo == 0 ? Text("Home") : Container(), ), // BottomNavigationBarItem BottomNavigationBarItem( icon: Icon(BoxIcons.bx_calendar), label: tabNo == 1 ? Text("Planner") : Container(), ), // BottomNavigationBarItem BottomNavigationBarItem( icon: Icon(BoxIcons.bxs_videos), label: tabNo == 3 ? Text("videos") : Container(), ), // BottomNavigationBarItem BottomNavigationBarItem( icon: Icon(BoxIcons.bx_stats), label: tabNo == 4 ? Text("Leaderboard") : Container(), ), // BottomNavigationBarItem ودائمًا عليك بالرجوع إلى المستند الرسمي في حال واجهتك مشكلة: https://api.flutter.dev/flutter/widgets/BottomNavigationBarItem-class.html
  16. دورة إدارة تطوير المنتجات لا تتطلب معرفة برمجية مسبقة، وفي وصف الدورة ستجدي: لمن ليس لديه خبرة في مجال البرمجة أو التصميم ويريد تنفيذ مشروعه الناشئ لمن يريد تعلم إدارة تطوير المنتجات لتحسين فرصه التوظيفية لمن يعمل في إدارة المنتجات ويرغب بتوسعة معلوماته حول عملية التطوير وإدارتها لكن طالما أنك مشتركة في دورة علوم الحاسوب، ولديك الوقت لدراسة الدورة، فأنصحك بدراستها اولاً فهى ستضيف لك الكثير وستمكنك من الاستفادة من دورة إدارة تطوير المنتجات بشكل أكبر وأفضل. وتستطيعي تجاهل الأجزاء التي ليست من ضمن إهتماماتك في الدورة ودراسة الأقسام المناسبة لك ثم الإنتقال لدورة تطوير إدارة المنتجات. وهل تنوين التخصص في البرمجة، أم لديك مشروع وتريدين اكتساب معرفة قبل إنشائه وتكوين فريق عمل؟ أي ما الغرض من دراسة الدورات؟
  17. بشكل مبسط، الإجابة هي نعم، لغة البرمجة المستخدمة يمكن أن تؤثر على سرعة البرنامج. وقبل أن أوضح لك، لا يتم الإختيار بين اللغات بناءًا على السرعة فقط، بل هناك عوامل أخرى، فيجب التضحية بمزايا مقابل مزايا أخرى تخدم المشروع الذي تريد تنفيذه أي trade off، وبعضها لا يناسب مشروعك رغم أنها سريعة. فبعض لغات البرمجة مصممة لتكون أكثر كفاءة وسرعة في تنفيذ العمليات، مثلاً ، لغات مثل C++ تعتبر عادة أسرع من لغات برمجة أخرى مثل Python، لكن، يجب أن تعلم أن الأداء النهائي للبرنامج ليس فقط مرتبطًا بلغة البرمجة، بل أيضًا بطريقة كتابة الكود والخوارزميات المستخدمة فيه. فلغات البرمجة مثل C++ وC هي أمثلة على لغات مفتوحة المصدر وعالية الأداء، وتوفر هذه اللغات مستوى عالٍ من التحكم والقدرة على الوصول المباشر إلى الموارد والتلاعب بها، وبالتالي تسمح بكتابة برامج فعالة من حيث السرعة واستخدام الموارد. بمعنى أن C++ هي لغة برمجة منخفضة المستوى، وتستخدم ترجمة مباشرة قبل تنفيذ البرنامج، مما يعني أن الكود المكتوب بلغة C++ يتم تحويله إلى لغة آلة قبل تشغيله. بفضل هذه الخاصية، تعمل لغة C++ بشكل أسرع وأكثر كفاءة في تنفيذ العمليات مقارنةً ببعض اللغات الأخرى، مثل Python. بالمقابل، Python لغة برمجة عالية المستوى ومفسرة، بمعنى أنه يتم تنفيذ البرنامج خطوة بخطوة أثناء التشغيل، وذلك عن طريق مفسر يقوم بتحويل وتنفيذ الأوامر واحدة تلو الأخرى، وتلك التفاصيل في التنفيذ تؤدي إلى بعض الإختلاف في الأداء والسرعة، حيث قد تكون Python أبطأ من C++ في بعض الحالات. ومرة أخرى الأداء النهائي للبرنامج يعتمد على عوامل أخرى مثل حجم المشروع، وطبيعة العمليات التي يقوم بها البرنامج، وكيفية كتابة الكود وتنظيمه، لذلك، من الممكن تحقيق أداء جيد مع Python من خلال تحسين الخوارزميات والاستفادة من مكتبات Python القوية.
  18. هناك بعض الأمور التي يجب مراعاتها عند استخدام pickImage في Flutter. أولاً، تأكد من أنك قمت بإضافة الاعتمادية الصحيحة لحزمة image_picker في ملف pubspec.yaml الخاص بمشروعك. ثانياً، تأكد من أنك قمت بمعالجة صورة المعاينة التي تم اختيارها بنجاح، وتستطيع استخدام مكتبة معالجة الصور مثل flutter_image_compress لضغط الصورة وتحسين أدائها. ثالثاً، في الكود الحالي، يتم تخزين مسار الصورة المحلية المحددة في حقل imageUrls كقيمة واحدة في قائمة الصور filteredUsers، ولكن العرض المتوقع يتطلب أن يحتوي كل عنصر في القائمة filteredUsers على قائمة من الصور المختارة، لذا يجب تعديل بعض الأجزاء في الكود. في دالة _captureImage، عند إضافة الصورة المحلية الجديدة إلى filteredUsers، قم بتعديل الكود لإنشاء قائمة جديدة من الصور بدلاً من تخزين الصورة المحددة بمفردها، وبإمكانك تحقيق ذلك بتغيير السطر: filteredUsers.add(ImageTopicModel(imageUrls: [image.path])); إلى: filteredUsers.add(ImageTopicModel(imageUrls: [image.path], isLocal: true)); وذلك للإ شارة أن هذه الصورة هي صورة محلية. ثم في دالة build، قم بتعديل جزء إنشاء عناصر الصور داخل ListView.builder كما يلي: return Container( height: 150, child: ListView.builder( // ... itemBuilder: (BuildContext context, int index) { // ... return Row( children: filteredUsers[index].imageUrls!.map((imageUrl) { if (filteredUsers[index].isLocal) { // عرض الصور المحلية return GestureDetector( onTap: () { print('Local image clicked! URL: $imageUrl'); // Perform any action you want when the image is clicked }, child: Padding( padding: EdgeInsets.only(right: 10.0), child: Container( height: 100, width: 100, child: Image.file( File(imageUrl), fit: BoxFit.cover, ), ), ), ); } else { // عرض الصور من الفايربيس return GestureDetector( onTap: () { print('Firebase image clicked! URL: $imageUrl'); // Perform any action you want when the image is clicked }, child: Padding( padding: EdgeInsets.only(right: 10.0), child: Container( height: 100, width: 100, child: Image.network( imageUrl, fit: BoxFit.cover, ), ), ), ); } }).toList(), ); }, ), ); وتلك التغييرات تتيح لك عرض الصور المحلية التي تم اختيارها من خلال pickImage بشكل صحيح بجانب الصور الأخرى التي تأتي من Firebase.
  19. تستطيعي الحصول على مجموعات البيانات (Data sets) من مصادر مختلفة، ومنها: 1- توجد العديد من المواقع التي توفر مجموعات البيانات المفتوحة والتي يمكنك استخدامها مجانًا، بعض المواقع الشهيرة تشمل Kaggle وUCI Machine Learning Repository وGitHub. وإليك الروابط: https://www.kaggle.com/datasets https://archive.ics.uci.edu/ml/datasets.php https://github.com/awesomedata/awesome-public-datasets https://github.com/datasets 2- بإمكانك العثور على العديد من مجموعات البيانات عبر البحث في المواقع الأكاديمية والمؤسسات البحثية. مثل Google Scholar وarXiv وIEEE Xplore. 3- بعض المشاريع البحثية والمنظمات العامة توفر مجموعات البيانات التي يمكن استخدامها لأغراض التدريب، وقد تكون هناك منظمات محددة لمجالات معينة مثل الطب أو الروبوتيات أو السيارات الذاتية. عليك فقط البحث عبر الإنترنت للعثور على المشاريع المناسبة في مجال اهتمامك. 4- هناك بعض المنصات التي توفر خدمات استضافة وتوزيع مجموعات البيانات، وتمكنك من تنزيل البيانات بشكل مريح وبسيط، بعض الأمثلة على ذلك هي AWS Open Data Registry وGoogle Dataset Search وMicrosoft Research Open Data.
  20. عليك بتحديد جميع الفيديوهات التي قمت بقصها من خلال السحب بزر الفأرة الأيسر وتحديد الفيديوهات كما لو كنت تقوم بتحديد مجلدات في الويندوز، أو جرب الضغط على زر CTRL + A لتحديد جميع الفيديوهات. ثم قم بالضغط بزر الفأرة الأيمن على الفيديوهات وستجد خيار باسم Export selected videos.
  21. تستطيع الإعتماد على الطريقة pre_save في نموذجك لتحديد عدد السجلات التي سيتم إضافتها، وذلك من خلال إضافة حقل في النموذج لتعقب عدد السجلات المضافة في اليوم الحالي وتحديثها بناءً على ذلك. from django.db import models from django.utils import timezone class Flashcard(models.Model): # تعريف حقول النموذج الأخرى هنا created_at = models.DateTimeField(auto_now_add=True) day_count = models.PositiveIntegerField(default=0) def save(self, *args, **kwargs): if not self.pk: # إذا كان السجل جديدًا today = timezone.now().date() # الحصول على عدد السجلات المضافة في اليوم الحالي flashcard_count = Flashcard.objects.filter(created_at__date=today).count() # التحقق مما إذا كان عدد السجلات المضافة يساوي 10 if flashcard_count >= 10: raise ValueError("You have reached the maximum number of flashcards for today.") # زيادة عدد السجلات المضافة في اليوم الحالي بمقدار واحد self.day_count = flashcard_count + 1 super(Flashcard, self).save(*args, **kwargs) هنا يتم إضافة حقل day_count لتعقب عدد السجلات المضافة في اليوم الحالي، وتحديد الحد الأقصى لعدد السجلات هو 10، وإذا تمت محاولة إضافة المزيد من السجلات، سيتم رفع استثناء ValueError.
  22. مصطلح "الرفع إلى قوة" في جافاسكريبت مثلاً أو في الرياضيات عامةً يعني عملية رفع عدد معين إلى قوة أخرى. ويستخدم الرمز التالي * في جافاسكريبت للتعبير عن هذه العملية. مثلاًإذا كان لدينا العدد 2 ونريد رفعه إلى قوة 3، فسيكون الناتج هو 2 مضروبًا في نفسه ثلاث مرات (2 * 2 * 2)، أي 8. مثال: let number = 2; let power = 3; let result = Math.pow(number, power); console.log(result); // سيتم طباعة القيمة 8 في وحدة التحكم استخدمت الدالة Math.pow() للقيام بعملية الرفع إلى قوة، وتستقبل هذه الدالة اثنين من الوسائط: العدد الذي نريد رفعه إلى القوة والقوة ذاتها، وتُرجع الدالة قيمة الناتج النهائي. شرح قوة العدد من موسوعة حسوب
  23. أرجو منك توضيح السؤال وذكر الكود المراد توضيحه أو السياق واللغة المستخدمة أو إطار العمل. وإذا كان السؤال خاص بأحد دورات أكاديمية حسوب فأرجو منك طرح السؤال أسفل فيديو الدورة، وطرح الأسئلة العامة هنا. وعلى أي حال، غالبًا ما تقصده هو @guest و@endguest، في إطار العمل Laravel، وهو إطار تطوير ويب قائم على لغة PHP. حيث تستخدم هذه العلامات للتحقق مما إذا كان المستخدم قد قام بتسجيل الدخول أم لا. أي كود يوضع بين هاتين العلامتين سيتم عرضه فقط للمستخدمين الذين لم يقموا بتسجيل الدخول، أي المستخدمين الزوار أو الضيوف. بمعنى أنه يستخدم هذا النوع من الكود في تنظيم عرض المحتوى في صفحات الويب بناءً على حالة تسجيل الدخول للمستخدم. مثلاً، بالإمكان استخدام @auth و@endauth لعرض محتوى خاص بالمستخدم المسجل، مثل البيانات الشخصية أو الصفحة الشخصية. واستخدام @guest و@endguest لعرض محتوى محدد للمستخدمين الزوار، مثل نموذج تسجيل الدخول أو صفحة التسجيل.
  24. المشكلة ما زالت أنه لا يتم العثور على الملف الصوتي في المسار : C:\Users\User\Desktop\al kouds.mp3 لذلك عليك بالتأكد من كتابة الاسم الملف بشكل صحيح والتأكد من المسافات في اسم الملف. وهل اسم المستخدم لديك هو User؟ فلاحظي المسار حيث أنه يبحث داخل المستخدم User، أرجو منك التوجه إلى مجلد Users في قرص الـ C وتأكدي من وجود اسم مستخدم باسم User فأنا مثلاً لدي مستخدم باسم dido4 وبداخله مجلد Desktop. ففي حالة لم يكن هناك مجلد باسم Userحاولي كتابة المسار بشكل مباشر للملف بالشكل التالي، وتأكدي من المسافة في اسم الملف والأفضل تجنب وضع أي مسافات في اسم الملف أنصحك بتغيير اسمه. File file = new File("C:\\Users\\اسم_المستخدم\\Desktop\\al kouds.mp3");
  25. اولاً عليك إنشاء صفحة HTML تحتوي على نموذج (form) لإدخال اسم المستخدم وكلمة المرور: <!DOCTYPE html> <html> <head> <title>تسجيل الدخول</title> <style> .error { color: red; } </style> </head> <body> <h2>تسجيل الدخول</h2> <form method="POST" action="login.php"> <label for="username">اسم المستخدم:</label><br> <input type="text" id="username" name="username"><br> <label for="password">كلمة المرور:</label><br> <input type="password" id="password" name="password"><br> <input type="submit" value="تسجيل الدخول"> </form> </body> </html> بعد ذلك في ملف PHP يسمى "login.php"، يتم التحقق من اسم المستخدم وكلمة المرور في قاعدة البيانات وتوجيه المستخدم إلى صفحته الشخصية في حالة النجاح، وإظهار رسالة خطأ في حالة الفشل: <?php // تفاصيل الاتصال بقاعدة البيانات $servername = "اسم الخادم"; $username = "اسم المستخدم"; $password = "كلمة المرور"; $dbname = "اسم قاعدة البيانات"; // اسماء حقول جدول المستخدمين في قاعدة البيانات $userField = "اسم حقل اسم المستخدم"; $passField = "اسم حقل كلمة المرور"; // استلام قيم اسم المستخدم وكلمة المرور من النموذج $enteredUsername = $_POST['username']; $enteredPassword = $_POST['password']; // إنشاء اتصال بقاعدة البيانات $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من وجود خطأ في الاتصال if ($conn->connect_error) { die("فشل الاتصال بقاعدة البيانات: " . $conn->connect_error); } // استعلام للتحقق من اسم المستخدم وكلمة المرور $query = "SELECT * FROM users WHERE $userField = '$enteredUsername' AND $passField = '$enteredPassword'"; $result = $conn->query($query); // التحقق من نتيجة الاستعلام if ($result->num_rows > 0) { // اسم المستخدم وكلمة المرور صحيحة، يتم توجيه المستخدم إلى صفحته الشخصية header("Location: صفحة_المستخدم.php"); } else { // اسم المستخدم أو كلمة المرور غير صحيحة، يتم عرض رسالة خطأ في النموذج echo '<h3 class="error">خطأ: اسم المستخدم أو كلمة المرور غير صحيحة.</h3>'; echo '<script>document.getElementById("username").style.borderColor = "red";</script>'; echo '<script>document.getElementById("password").style.borderColor = "red";</script>'; } // إغلاق اتصال قاعدة البيانات $conn->close(); ?> وانتبهي إلى أنه يجب استبدال "اسم الخادم" و "اسم المستخدم" و "كلمة المرور" و "اسم قاعدة البيانات" بمعلومات الاتصال الفعلية لقاعدة البيانات الخاصة بك. كما يجب استبدال "اسم حقل اسم المستخدم" و "اسم حقل كلمة المرور" بأسماء الحقول الصحيحة في جدول المستخدمين خاصتك.
×
×
  • أضف...