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

عبد الوهاب بومعراف

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

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

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

كل منشورات العضو عبد الوهاب بومعراف

  1. عدم القدرة على استدعاء مكتبة speech_recognition على الرغم من تثبيتها عادة ما تكون نتيجة لعدم استخدام البيئة الصحيحة حيث تم تثبيت المكتبة لهذا قد يؤدي ذلك إلى عدم التعرف على المكتبة من قبل VSCode. لذلك تحقق من تثبيتها عبر الأمر: pip show SpeechRecognition وتأكد من استخدام البيئة الصحيحة وأنك ضمن البيئة الصحيحة التي تم تثبيت المكتبة فيها، يمكنك تنشيط البيئة على الطرفية أين مسار مجلد المشروع باستخدام: .\venv\Scripts\activate ثم استيرادها بهذه الكيفية: import speech_recognition as sr إن استمر المشكل قم بحذف ثم إعادة تثبيتها داخل البيئة الافتراضية: pip uninstall SpeechRecognition pip install SpeechRecognition بما أنك قمت بالمشاركة معنا أول مرة أرجو في قادم المرات إن كان سؤالك متعلقا بإحدى دورات الأكاديمية أن تقوم بإدراجه أسفل كلّ درس استصعب عليك فهمه أو لديك استفسار حوله، أين ستجد صندوقا للتعليقات مثل الذي هنا، يمكنك إرفاق مجلدات مشروعك أو لقطات شاشة وإرفاق الاستفسار الذي لديك وسنجيبك بكلّ صدر رحب.
  2. البرمجة الخاصة للمتجر الإلكتروني باستخدام لارافل أو غيرها من اللغات وأطر العمل هي مناسبة إذا كانت لديك متطلبات خاصة أو تحتاج إلى تخصيص عميق في المتجر، بينما استخدام المواقع الجاهزة يبقى خيارا جيد إذا كنت ترغب في إطلاق متجر بسرعة وسهولة دون تعقيدات البرمجة فمن ناحية البرمجة بلارافل فستحظى بميزات وتفضيلات كالمرونة في تخصيص المتجر مما مما يتيح لك بناء ميزات فريدة وفقا لاحتياجاتك الخاصة، لكن هذا قد يتطلب تعقيدا لأنه يحتاج إلى معرفة عميقة بلغة PHP وأساسيات البرمجة بالإضافة إلى فهم بنية الإطار كما أنّه قد تكون التكلفة أعلى نظرا لاحتياجك إلى مطورين أو فريق تقني متخصص للبرمجة والصيانة. بينما إنشاء متجر إلكتروني باستخدام منصات E-Commerce فيمكن استخدامها من ناحية السهولة فتوفر منصات مثل Shopify مثلا واجهات استخدام سهلة، مما يمكّن حتى المبتدئين من إنشاء متجر بسرعة كما يمكنك إطلاق المتجر في وقت قصير دون الحاجة إلى كتابة الكثير من الأكواد وغالبا ما تتضمن هذه المنصات دعما مباشرا وتحديثات تلقائية، مما يسهل عليك التركيز على المبيعات كما أن تكاليف بدء التشغيل قد تكون أقل، ولكن هناك رسوم شهرية أو نسبة من المبيعات.
  3. قم بإضافة الحقل في نموذج الـ Livewire عبر تحديث النموذج الذي تستخدمه لتحميل الصورة فأنت لم تقدم معلومات أو شيفرة توضح النموذج الذي تعمل عليه، حسنا لا بأس، قم بإضافة الحقل كما أشرنا على هذا النحو: public $photo; protected $rules = [ 'photo' => 'image|max:1024' ]; ثم أضف حقل الإدخال لتحميل الصورة في ملف الـ Blade: <input type="file" wire:model="photo"> وبعد أن يتم تحميل الصورة، استخدم الوظيفة store لحفظها في public/storage، ثم احفظ الرابط في قاعدة البيانات وهذا مثال عملي على ذلك: public function store() { $this->validate(); if ($this->photo) { $path = $this->photo->store('photos', 'public'); Model::create([ 'photo_path' => $path, ]); } } وعندما تريد عرض الصور من قاعدة البيانات، استخدم الدالة Storage::url() للحصول على الرابط العام للصورة: <img src="{{ Storage::url($model->photo_path) }}" alt="صورة"> ثم قم بتشغيل الأمر: php artisan storage:link لإنشاء الرابط الرمزي.
  4. يمكنك استخدام SSH لكنه يحتاج إلى خبرة، فأوّل خطوة هي الوصول إلى خادم SSH من خلال أدوات مثل mysqldump و scp أو rsync يمكنك فتح الطرفية وكتابة الأمر التالي: ssh username@yourserver.com بطبيعة الحال عليك أن تستبدل username باسم مستخدمك وyourserver.com بعنوان خادمك. بعدها استخدم الأمر mysqldump لإنشاء ملف احتياطي لقاعدة البيانات كالتالي: mysqldump -u db_user -p db_name > backup.sql كالعادة استبدل db_user باسم مستخدم قاعدة البيانات وdb_name باسم قاعدة البيانات وبعد إنشاء ملف backup.sql, يمكنك استخدام scp لنقله إلى جهازك لكن انتبه لهذا الأمر: scp username@yourserver.com:/path/to/backup.sql /local/path/ مع استبدال /path/to/backup.sql بالمسار الصحيح على الخادم و/local/path/ بالمسار على جهازك المحلي.
  5. لفك تشفير هذا الملف، ستحتاجين إلى معرفة نوع التشفير المستخدم وأيضا مفتاح فك التشفير المناسب، يمكنك الاطلاع على هذه الشروحات التي ستفيدك:
  6. يمكنك استخدام جافا سركيبت للتأكد من حذف الصورة عند تغيير الخيار من "طبيب" إلى "مهندس" وهذا مثال كامل للتعامل مع جافا سركيبت مع PHP: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>تعديل المعلومات</title> <style> body { font-family: Arial, sans-serif; } .hidden { display: none; } </style> </head> <body> <form method="POST" enctype="multipart/form-data"> <label for="role">اختر الوظيفة:</label> <select id="role" name="role"> <option value="doctor">طبيب</option> <option value="engineer">مهندس</option> </select> <div id="imageUpload" class="hidden"> <label for="image">رفع الصورة:</label> <input type="file" id="image" name="image"> </div> <input type="submit" value="تعديل"> </form> <script> const roleSelect = document.getElementById('role'); const imageUploadDiv = document.getElementById('imageUpload'); const imageInput = document.getElementById('image'); roleSelect.addEventListener('change', function() { if (this.value === 'doctor') { imageUploadDiv.classList.remove('hidden'); } else { imageUploadDiv.classList.add('hidden'); imageInput.value = ''; // حذف الصورة عند التغيير } }); window.onload = function() { if (roleSelect.value === 'doctor') { imageUploadDiv.classList.remove('hidden'); } }; </script> </body> </html> فهنا الملف يحتوي على نموذج يتضمن select لاختيار الوظيفة و input لرفع الصورة كما استخدمنا كلاس hidden لإخفاء عنصر رفع الصورة، وعند تغيير الخيار في select، يتحقق مما إذا كان الخيار "طبيب" أو "مهندس" وإذا تم اختيار "مهندس" فسترى أنه يتم إخفاء عنصر رفع الصورة ويتم مسح قيمة الصورة.
  7. الطرق تتعدّد وتختلف على حسب رغبتك، فأولا يجب عليك إنشاء قاعدة بيانات ولتكن MySQL بحيث تحتوي على جدولين مثلا كالتالي: جدول users (مع أعمدة id, name, email) posts (مع أعمدة id, user_id, title, content) ثم قم بإنشاء صفحة HTML بسيطة تتضمن نموذج بحث: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>صفحة البحث</title> <style> body { font-family: Arial, sans-serif; margin: 20px; padding: 0; background-color: #f4f4f4; } .container { max-width: 600px; margin: auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } input[type="text"] { width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ddd; border-radius: 5px; } button { padding: 10px 15px; background: #5cb85c; color: white; border: none; border-radius: 5px; cursor: pointer; } button:hover { background: #4cae4c; } </style> </head> <body> <div class="container"> <h2>بحث عن بيانات</h2> <form action="search.php" method="POST"> <input type="text" name="query" placeholder="أدخل كلمة البحث..." required> <button type="submit">بحث</button> </form> </div> </body> </html> ثم أنشئ ملف search.php لمعالجة البيانات المرسلة من النموذج: <?php $servername = "localhost"; // اسم الخادم $username = "username"; // اسم المستخدم $password = "password"; // كلمة المرور $dbname = "database_name"; // اسم قاعدة البيانات // إنشاء اتصال $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من الاتصال if ($conn->connect_error) { die("فشل الاتصال: " . $conn->connect_error); } // الحصول على كلمة البحث $query = $conn->real_escape_string($_POST['query']); // استعلام SQL للبحث في الجدولين $sql = "SELECT * FROM users WHERE name LIKE '%$query%' UNION SELECT * FROM posts WHERE title LIKE '%$query%' OR content LIKE '%$query%'"; $result = $conn->query($sql); if ($result->num_rows > 0) { // عرض النتائج while($row = $result->fetch_assoc()) { echo "نتيجة: " . $row['name'] . " - " . $row['title'] . "<br>"; } } else { echo "لا توجد نتائج."; } $conn->close(); ?> بعدها قم بفتح ملف index.html في المتصفح وأدخل كلمة البحث واضغط على الزر للبحث.
  8. إذا كنت تفكر في تعلم الأساسيات عبر تطبيقات الهاتف خلال الفترة الحالية، فهذا يمكن أن يكون خطوة مفيدة لتأسيس معرفة أولية عن اللغة. ولكن يجب أن تعلم أن التطبيقات على الهاتف تكون محدودة في العمق والشمولية مقارنة بالعمل على الحاسوب، بالنسبة للكورس على الأكاديمية، يمكنك أن تبدأ به حتى لو لم تكن لديك خلفية عن البرمجة أو بايثون، فالكورس يحتوي على كل الأساسيات ويبدأ من الصفر، مما يجعله كافيا حتى لو لم تكن لديك أي خبرة سابقة، و بهذه الطريقة ستحصل على منهج متكامل ومنظم يغطي كل ما تحتاجه.
  9. أرجوا وضع أسئلتك فقطهنا و سيتكفل المدربون بمساعدتك.
  10. يمكنك استخدام JavaScript للتحكم في العرض والإخفاء، حيث عندما يختار المستخدم 'انثى'، يظهر الـselect الثاني ويسمح للمستخدم بتحديد نوع المركز، أما إذا اختار 'ذكر'، فيظهر فقط الـselect الثالث الذي يسأل إذا كان المستخدم مديرا، ام الـselect الثالث يظهر دائما إذا تم تحديد الجنس، وإذا اختار المستخدم 'نعم'، يظهر حقل الصورة للرفع بهذا الشكل: <!-- الـselect الأول --> <select name="Cn" id="Cn" onchange="showSelect(this)"> <option value="">الجنس</option> <option value="انثى" <?php echo ($row['Cn'] == 'انثى') ? 'selected' : ''; ?>>انثى</option> <option value="ذكر" <?php echo ($row['Cn'] == 'ذكر') ? 'selected' : ''; ?>>ذكر</option> </select> <!-- الـselect الثاني (يظهر إذا كان الخيار 'انثى') --> <select id="na" name="nah" style="display: <?php echo ($row['Cn'] == 'انثى') ? 'block' : 'none'; ?>;" value="<?php echo $row['nah']; ?>"> <option value="">نوع المركز</option> <option value="المركز الاول" <?php echo ($row['nah'] == 'المركز الاول') ? 'selected' : ''; ?>>المركز الاول</option> <option value="المركز الثاني" <?php echo ($row['nah'] == 'المركز الثاني') ? 'selected' : ''; ?>>المركز الثاني</option> </select> <!-- الـselect الثالث (يظهر دائمًا بعد تحديد 'انثى' أو 'ذكر') --> <select id="am" name="aly" style="display:none;" value="<?php echo $row['aly']; ?>"> <option value="">هل انت مدير؟</option> <option value="نعم" <?php echo ($row['aly'] == 'نعم') ? 'selected' : ''; ?>>نعم</option> <option value="لا" <?php echo ($row['aly'] == 'لا') ? 'selected' : ''; ?>>لا</option> </select> <!-- قسم الصورة (يظهر إذا تم اختيار 'نعم' في الـselect الثالث) --> <div> <label id="zoo" style="display: none;">ارسل صورة:</label> <input type="file" id="img" name="file" style="display: none;" value="<?php echo $row['file']; ?>"> </div> <br> <script> function showSelect(select) { const naSelect = document.getElementById('na'); const amSelect = document.getElementById('am'); const zooLabel = document.getElementById('zoo'); const imgInput = document.getElementById('img'); // عرض الـselect الثاني فقط إذا كان الجنس 'انثى' if (select.value === 'انثى') { naSelect.style.display = 'block'; amSelect.style.display = 'block'; } else if (select.value === 'ذكر') { naSelect.style.display = 'none'; amSelect.style.display = 'block'; } else { naSelect.style.display = 'none'; amSelect.style.display = 'none'; zooLabel.style.display = 'none'; imgInput.style.display = 'none'; } // عرض قسم الصورة إذا كان المستخدم اختار 'نعم' amSelect.addEventListener('change', function() { if (amSelect.value === 'نعم') { zooLabel.style.display = 'block'; imgInput.style.display = 'block'; } else { zooLabel.style.display = 'none'; imgInput.style.display = 'none'; } }); } </script>
  11. ربما سيكون توجهك للإعتماد على htmx مع بعض الإضافات حل جيد لتحقيق أهدافك الحالية، لأنه يوفر لك وسيلة فعّالة لتطوير الواجهات الأمامية باستخدام HTML فقط مع تقليل الاعتماد على JavaScript التقليدي، وهو ما يتماشى مع رغبتك في تجنب ضعف القواعد والحدود في JavaScript، كما يتيح لك إضافة تفاعلات AJAX، وسحب المحتوى ديناميكيا، وإدارة التفاعل بشكل سلس، مما يسهل عليك بناء واجهات مستخدم تفاعلية. و لكن بما أن هدفك النهائي هو التخصص في الـ Backend، استمر في تعزيز مهاراتك في تقنيات مثل Node.js و Laravel و Django، والتي ستفيدك بشكل كبير في المستقبل، لأن في المشاريع الكبيرة ستحتاج إلى أطر عمل سريعة جدا و ممتازة لذا إجعل هذا الأمر كبداية للخوص أكثر في هذا الأمر.
  12. بالنسبة لقيمة المتغيرات تما طباعتها بدون مشاكل، تأكد من أن المسار المذكور في علامة <script> صحيح، أو ربما لديك إضافة خاصة ب google translate و هي المتسببة في هذا المشكل، بما أن الشيفرة الخاصة بك لا تحتوي على طلبات HTTP واضحة، فعلى الأغلب السبب منها.
  13. يوجد العديد من المواقع المجانية الأمر يعود على حسب إختيارك و أفضلها GitHub Pages حيث يسمح لك باستضافة مواقع ثابتة مجانا باستخدام GitHub، ويعتبر مناسب للمواقع البسيطة ومشاريع الويب الشخصية، كما يوجد أيضا Netlify حيث يوفر استضافة مجانية وسهلة الاستخدام للمواقع الثابتة، ويتميز بواجهة سهلة وسرعة في النشر، أما إذا كان مشروع يعتمد على JavaScript وReact فيوجد إستضافة Vercel فهي ممتازة لمثل هذه المشاريع، ويوفر استضافة مجانية وسهلة الاستخدام مع تكامل مباشر مع GitHub وGitLab.
  14. الإختيارات كثيرة و الأمر يعود على حسب رغبتك و اللغة التي تريد، فيوجد بايثون حيث تعتبر لغة سهلة التعلم وتستخدم بشكل واسع في تطوير الباك إند بفضل أطر العمل مثل Django وFlask، كما يوجد جافا سكريبت و التي تعتبر الأكثر إستخداما و يمكن استخدامها في الباك إند باستخدام Node.js، مما يجعلها خيارا جيدا إذا كنت مهتما بتعلم JavaScript بشكل عام، أو يمكنك الإعتماد على PHP فهي لغة شهيرة لتطوير الويب، وتستخدم في العديد من مواقع الويب وتطبيقات الويب بفضل أطر العمل مثل Laravel. بالتوفيق.
  15. لإجتياز الإمتحان يجب عليك الإنتهاء من أربع مسارات في الدورة على الأقل، بعدها سيتم إختبارك في تلك المسارات، و يوجد أيضا مشاريع في كل دورة يجب عليك إنجازها و وضعها في المستودع الخاص بك في Github، الإمتحان يركز على هذه الدروس التي درستها، لذا حاول التركيز على المشاريع التي قمت بها و فهمها جيدا، بالنسبة للإمتحان سيطلب منك إنجاز مشروع مصغر في مدة عشرة أو 15 يوم و يجب عليك تقديمه، و يمكنك أن تطلع أكثر على المعلومات من هذا المقال: أو من خلال دليل الإمتحان.
  16. وعليكم السلام، يمكنك التحقق من أن برنامج بايثون قد تمت تثبيته أولا من خلال فتح موجه الأوامر قم بالضغط على زر Windows + Rثم اكتب "cmd" ثم اضغط Enter واكتب الأمر التالي: python --version إذا تم تثبيت بايثون بشكل صحيح، سترى رقم الإصدار المثبت على جهازك. مثل: Python 3.9.5 إذا لم تظهر هذه المعلومات وظهرت رسالة خطأ بدلا من ذلك، فقد يعني هذا أن بايثون غير مثبت بشكل صحيح أو أن مسار بايثون غير مضاف إلى متغير البيئة PATH. عندما تقوم بتثبيت البرنامج أول مرة، احرص على تنزيل أحدث إصدار من الموقع الرسمي وأثناء التثبيت، تأكد من اختيار "Install launcher for all users" و "Add Python to PATH" وحينما تظهر رسالة التثبيت بنجاح تأكد من غلق نافذة المثبت تماما ثم جرب تشغيل IDLE من خلال البحث عن "IDLE (Python 3.x)" في قائمة البدء وفتحه وهذه هي بيئة التطوير المتكاملة لبايثون وينبغي أن تعمل إذا تم التثبيت بشكل صحيح. يمكنك متابعة هذه الخطوات إن لم تعمل معك:
  17. المشكلة الأساسية تكمن في نموذج HTML فحقول الإدخال في النموذج لا تحتوي على خاصية 'name'وبدون هذه الخاصية، عندما يتم إرسال النموذج، لن يتم إرسال أي بيانات فعليا إلى الخادم وهذا هو السبب في أنك ترى قيم NULL في قاعدة البيانات لذا يجب إضافة خاصية 'name' لكل حقل إدخال في النموذج كما يجب أن تتطابق هذه الأسماء مع أسماء أعمدة قاعدة البيانات والأسماء التي تستخدمها في وحدة التحكم (Controller) عدل النموذج وعوض الجزء القديم بالتالي: <input type="text" name="name_std" class="form-control" style="width: 100%;" placeholder=" اسم الطالب"> <input type="text" name="num_std" class="form-control" style="width: 100%;" placeholder="رقم القيد"> <input type="email" name="email_std" class="form-control" style="width: 100%;" placeholder="البريد الالكتروني "> <input type="date" name="date_student" class="form-control" style="width: 100%;"> <input type="text" name="adress_std" class="form-control" style="width: 100%;" placeholder=" العنوان"> <input type="text" name="phone" class="form-control" style="width: 100%;" placeholder="رقم الهاتف">
  18. هذا الأمر يعتمد على ما تعلمته، وعلى المكتسبات البرمجية التي لديك، ففي حال ما كان لديك إلمام بمفهوم الدوال، الجمل الشرطية، المتغيرات والعوامل، الحلقات التكرارية وغيرها من المفاهيم التي ستدرّس في المسار الأول فيمكنك تخطيها، أما إن لم يكن لديك أيّ إلمام بها، أو تجربة عملية معها ولم تقم بكتابة شيفرات برمجية وتطبيق هذه المفاهيم فلا أنصح بتخطي هذا المسار. وحتى لو كانت لديك خبرة سابقة في هذه المفاهيم فيمكنك إتمام المسار الأول بسرعة دون تعب أو جهد.
  19. حاليا لا يوجد ملخصات للدروس، ولكن العديد من الموارد البديلة موجودة وأعتقد أن عدم وضع ملخصات هو دافع للطالب كي يستلهم من الدروس مباشرة أهم النقاط التي يقدمها المدرب، يمكنك كتابة الملخصات بنفسك، والعديد من الأبحاث توصي بهذا الأمر لما فيه من منفعة كبيرة لصاحبها، عوض الاعتماد على ملخصات ليست من كتابته. ما يوجد حاليا يمكن أن يغنيك عن الملخصات الجاهزة، لكن أنصحك بكتابتها بنفسك، يمكنك الاستفادة من موسوعة حسوب فهي كنز غني بالمعلومات ومورد يمكنك الرجوع إليه وقت ما احتجت لذلك: موسوعة حسوب. كما يمكنك الوصول إلى رابط لمستودع المشروع ستجد به الكود النهائي للمشروع وذلك في المسارات الخاصة بالمشاريع العملية. كما أنصح بتحقيق التوازن بين الحفظ والفهم، فليس كل ما يتم تقديمه يتم تلخيصه وحفظه، توجد أمور ستتعود عليها بالممارسة والاستمرارية وليس الحفظ.
  20. return و print() هما كلمتان مفتاحيتان في العديد من لغات البرمجة، وprint() باختصار نستخدمها لعرض قيمة معينة على الشاشة تقوم بطبع القيمة المحددة ثم تستمر في تنفيذ الكود التالي، كما أنها لا تعيد أيّ قيمة أي لا يمكن تخزين النتيجة التي تم طباعتها في متغير لاستخدامها لاحقا. بينما return فتستخدم لإرجاع قيمة من دالة إلى المكان الذي تم استدعاء الدالة منه عندما يصل التنفيذ إلى عبارة return، تتوقف الدالة عن العمل وتعيد القيمة المحددة أي أنه يمكن تخزين القيمة المرجعة في متغير لاستخدامها لاحقا في عمليات حسابية أو في دالة أخرى. يمكنك الاطلاع أكثر من هنا:
  21. الدورة التي ستبدأ بها تعتمد على رغبتك الشخصية بالدرجة الأولى ولميولاتك، فقد تكون محبّا لدورة ما ويمكنك تقديم أقصى ما لديك كي تستوعبها وتتقنها، فما دمت في البداية فالبدء بدورة تطوير واجهات المستخدم قد يكون أحسن، لأنك ستتعلم فيها العديد من المفاهيم الأساسية، بالرغم من أنه حتى دورة تطوير تطبيقات الويب ستتعلم فيها بعض المفاهيم الأساسية والتي يوجد معها ترابط مع الدورات الأخرى. أما استرداد المبلغ فيتم وفق شروط ومعايير تحددها الأكاديمية، ومن بين هاته الشروط هو إتمامك لدورة واحدة مع أخذ الشهادة وتحصلك عليها، ثم في حالة ما لم تتحصل على عمل خلال ستة أشهر يمكنك التواصل مع الدعم لاستكمال الإجراءات المناسبة من هنا: مركز دعم الأكاديمية. كما أنصحك بالاستفسار عن عروض الصيف عندهم فالمعلومات الحالية لدي هي فقط الموجودة في هذا الرابط: عرض العطلة الصيفية 2024.
  22. يمكنك تحديث ال VSCode لديك لأحدث إصدار، وتحديث بايثون لديك، أو حاول إلغاء تثبيت امتداد Python ثم إعادة تثبيته مرة أخرى من خلال الذهاب إلى علامة الامتدادات في الشريط الجانبي والبحث عن Python، ثم قم بإلغاء التثبيت وإعادة التثبيت وكحل مؤقت يمكنك كما في الصورة: فتح VS Code والانتقال إلى الإعدادات بالنقر على أيقونة الإعدادات في الزاوية السفلية اليسرى واختيار "Settings". في شريط البحث، اكتب "validate" وابحث عن إعدادات مثل "Python> Validate: Enable". قم بإلغاء تحديد المربع بجوار اللغات التي لا تريد التحقق منها. هذا في حال لم تكن تريد استخدام ال Intellisense لكن أنصح بتحديث الإصدارات لديك ليعمل عندك بشكل جيد.
  23. يمكنك حفظ الصورة، واختيار مكان حفظها قبل ذهاب واجهة ال Print Screen هذا سيسهل عليك مشقة البحث، وعمل خطوات إضافية، فبعد الضغط على Print Screen ستظهر لك هذه الصورة في أقصى يمين الشاشة في الأسفل: قم بالضغط عليها ستفتح لك الواجهة التالية: أين يمكنك نسخ ولصق الصورة مباشرة هنا، أو حفظها في المكان الذي تريد ثم رفعها مجددا هنا في التعليقات.
  24. دعنا نفهم أولا بنية ملفات XAMPP أولا نجد ملفات قاعدة البيانات وعادة ما تكون موجودة في مجلد database داخل مجلد تثبيت XAMPP وتحتوي على قواعد البيانات التي أنشأتها باستخدام MySQL ونجد أيضا ملفات المواقع التي تقع في مجلد htdocs، حيث يتم تخزين ملفات مواقع الويب التي تعمل عليها ثم ملفات التكوين وتوجد في مجلد etc وتحتوي على ملفات تكوين مختلفة لـ Apache وMySQL وغيرها. أرجو توضيح نوع الملف الذي تقصده، ف XAMPP يخزن بياناتك في ملفات ومجلدات مختلفة، وهذه الملفات هي التي تحتوي على قواعد بياناتك، ملفات موقعك، وإعدادات النظام وغيرها. لتحديد الملف يمكنك البحث عنه من خلال مستكشف الملفات في واجهة التطبيق، ثم حدد نوع الملف فمثلا لو كنت تريد نقل قاعدة البيانات يمكنك اتباع هذه الخطوات: في phpMyAdmin: اختر قاعدة البيانات ثم "تصدير". نقل الملف: انقل الملف الذي تم تصديره إلى المكان الجديد. في phpMyAdmin الجديد: اختر "استيراد" وقم بتحديد الملف.
  25. كمبرمج مبتدئ، استخدام مكتبة مثل NextAuth مع Next.js خيار جيد، فباستخدامه ستحصل على العديد من الميزات والتسهيلات، لكن في النهاية، الهدف هو أن تصبح مطورا متمكنا قادرا على اتخاذ قرارات مباشرة حول متى تستخدم المكتبات الجاهزة ومتى تنفذ الحلول بنفسك، ومع الوقت والممارسة، ستطور الحس السليم لاتخاذ هذه القرارات بناء على احتياجات كل مشروع. لكن كنصيحة، ابدأ باستخدام المكتبة وهذا سيساعدك على فهم الأساسيات بعد ذلك، ابدأ في تعلم المفاهيم الأساسية للأمان مثل التشفير والتحقق من الهوية ثم قم بتخصيص المكتبة أي حاول تخصيص المكتبة التي تستخدمها لتناسب احتياجات تطبيقك بشكل أفضل بعدها يمكنك الانطلاق في بناء نظامك الخاص بعد أن تكتسب خبرة كافية.
×
×
  • أضف...