-
المساهمات
8752 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
117
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو محمد_عاطف
-
يمكنك استبدال هذا السطر @if ($homework->deadline > Carbon\Carbon::now()) بالسطر التالى . @if ($homework->deadline->gt(Carbon\Carbon::now()))
-
نعم يمكن ذلك حيث إن auth:sanctum إذا لم يكن الشخص قيد تسجيل الدخول فانه يقوم بارسال خطأ AuthenticationException , ويمكننا اضافة رسائل معينه او تخصيص الرد على هذا النوع من الاخطاء كالتالي. لنقم بالذهاب الى ملف app\Exceptions\Handler.php ونقم بكتابة هذا الكود . use Illuminate\Auth\AuthenticationException; public function register() { $this->renderable(function (AuthenticationException $e, $request) { if ($request->is('api/*')) { return response()->json([ 'status_code' => 401, 'success' => false, 'message' => 'هنا الرسالة التى نريدها.' ], 401); } }); } حيث نقوم بكتابة اول سطر بعد اسطر ال use فى الملف ونقوم باستبدال دالة register بالكود السابق , أما إذا كانت دالة register ليست فارغة فلنقم فقط باضافة السطر الذى بداخل الدالة إلى الدالة الموجودة فى الملف لديك . ويمكنك تخصيص اى رسالة او بيانات إضافيه تريدين إضافتها .
- 3 اجابة
-
- 1
-
-
كما توقعت فإن الدالة onExpiry تعمل جيدا المشكلة عند تحميل الصفحة . لذلك لنقم بمقارنة التاريخ فى كود ملف ال blade هكذا. <td> <div class="counter wow animate__animated animate__fadeInDown"> <div class="defaultCountdown" data-delivery-id="delivery-{{ $homework->id }}" data-date="{{ $homework->deadline }}"> </div> </div> </td> <td> @if ($homework->deadline > Carbon\Carbon::now()) <div class="delivery" id="delivery-{{ $homework->id }}"> <a href="{{ route('download-file', $homework->id) }}" class="btn btn-sm btn-secondary"> <i class="fa fa-upload"></i> تسليم </a> </div> @endif </td> والآن سيتم إخفاء الزر عند بداية تحميل الصفحة اذا كان الوقت قد إنقضى
-
اعتقد أن هناك لبس لديك . إن الدالة onExpiry سيتم تنفيذها بعد بدء العداد وانتهاء الوقت . ولكنها لن تنفذ اذا لم يبدأ العداد أى ان اذا كان الوقت قد انتهى بالفعل قبل تحميل الصفحة ستجد ان العداد لم يعمل وستجده صفر فى جميع الخانات ولن تنفذ الدالة . فهل المشكلة لديك فى تلك النقطه ؟ انه فى بداية الصفحة لا يتم اخفاء زر التحميل ؟ لتجربة الدالة قم بوضع المتغير deadline في قاعدة البيانات بدقيقة زائدة عن الوقت الحالى حتى يتم عد دقيقة فقط وستجد ان الدلة تم تنفيذها واختفى زر التسليم . واخبرنى بالنتيجة بعد ذلك
-
لاخفاء زر التسليم نستخدم دالة الاستدعاء onExpiry التى توفرها keith-wood countdown. اولا نضع للعنصر الذى يحوى سمة delivery نضع له id مميز حتى نستطيع من خلاله اخفاء الزر ونضع على عنصر ال defaultCountdown ال id المرتبط بزر الرفع هكذا . <td> <div class="counter wow animate__animated animate__fadeInDown"> <div class="defaultCountdown" data-delivery-id="delivery-{{$homework->id}}" data-date="{{ $homework->deadline }}"> </div> </div> </td> <td> <div class="delivery" id="delivery-{{$homework->id}}"> <a href="{{ route('download-file', $homework->id) }}" class="btn btn-sm btn-secondary"> <i class="fa fa-upload"></i> تسليم </a> </div> </td> والان فى كود الجافا سكريبت نستخدم التالى . <script> $(function() { $('.defaultCountdown').each(function(i) { const time = new Date($(this).data('date')); const id = $(this).data('deliveryId') $(this).countdown({ until: time, format: 'odHMS', onExpiry:function(e){ $(`#${id}`).hide() } }); }) }); </script> والآن مع انتهاء اى عداد سيتم اخفاء الزر المرتبط به .
-
اذا كنت تريد انشاء واحد او اكثر من عداد واحد فيجب استبدال ال id بال class حتى نستطيع التعامل مع جميع العدادات. ووضع وقت العداد الذى يتم اعادته من قاعدة البيانات فى العنصر عن طريق خاصية ال data . الان هذا كود show.blade.php <tbody> @foreach ($homeworks as $homework) <tr> <td>{{ $homework->id }}</td> <td>{{ $homework->title }}</td> <td> <div class="counter wow animate__animated animate__fadeInDown"> <div class="defaultCountdown" data-date="{{$homework->deadline}}"> </div> </div> </td> </tr> @endforeach </tbody> فى الكود السابق قمنا خاصية data-date للعنصر وهى الآن تحتوى على ال deadline الذى يأتى من قاعدة البيانات . والآن هذا هو كود الجافاسكريبت . <script src="assest/JavaScript/jquery-3.1.1.min.js"></script> <script src="assest/bootstrap/js/bootstrap.min.js"></script> <script src="assest/jquery.countdown/js/jquery.plugin.min.js"></script> <script src="assest/jquery.countdown/js/jquery.countdown.min.js"></script> <script src="assest/jquery.countdown/js/jquery.countdown-ar.js"></script> <script> $(function () { $('.defaultCountdown').each(function (i) { const time = new Date($(this).data('date')); $(this).countdown({ until: time, format: 'odHMS' }); }) }); </script> هنا قمنا بعمل حلقة تكرار على العناصر التى تحتوى على السمة defaultCountdown ثم انشاء التاريخ عن طريق استرجاع القيمة من خاصية ال data-date و من ثم إنشاء العداد . والآن سيتم انشاء اى عدد من العدادات على حسب ما يتم استرجاعه من قاعدة البيانات
-
نعم ستجد تمارين عملية فى دورة علوم الحاسب فى بعض المسارات حيث فى المسارات العمليه يتم توفير تمارين ويقوم بحلها المدرب فى نهاية المسار ولكن فى المسارات النظرية ربما لا تجد بها تطبيق عملي وذلك شئ طبيعى. ويمكن توفير ذلك لك بالطبع، حيث يمكنك التعليق في نهاية كل مسار وطلب تدريبات للتطبيق عما تم شرحه بالمسار وسيتم توفيرها لك. ويمكنك البحث على الانترنت على اختبارات وكتابة اسم المسار الذي انهيته وستجد تمارين كثيرة نظرية حول ذلك.
-
يجب توفير مسار الواجهة الخلفية قبل اسم الصورة حتى يتم استرجاعها من الواجهة الخلفية حيث اذا لم تقم بوضع المسار كما فعلت انت فسيتم ارجاعه من الواجهة الامامية وحيث ان الصورة ليست موجودة فى سيرفر الواجهة الامامية فلن تظهر . قم باستبدال سطر رقم 62 بهذا السطر src={`${API_URL}/public/images/${nav.image}`} وقم باستبدال API_URL بعنوان الواجهة الخلفية . والافضل هو انشاء ثابت لديك فى ملفات البيئة "env" فى الواجهة الامامية يحتوى على مسار الصور فى الواجهة الخلفية مباشرة . هكذا مثلا IMAGE_PATH="localhost:8000/public/images" واستخدام هذا الثابت ووضعه فى خاصية src مباشرة فى الصورة قبل اسم الصورة هكذا src={`${IMAGE_PATH}/${nav.image}`}
- 2 اجابة
-
- 1
-
-
ان التطبيقات والبرامج التي تسمح بإنشاء مواقع وتطبيقات الويب دون الحاجة إلى كتابة كود html تسمى بـ "منصات بناء المواقع" (Website Builders). وهذه المنصات توفر واجهة بصرية GUI تسمح للمستخدمين بسحب العناصر وتخصيص تصميم الموقع دون الحاجة إلى معرفة بالتفاصيل البرمجية أو برمجة HTML. الفرق الاساسى بين استخدام هذه المنصات وبرمجة المواقع باللغات التقليدية مثل html هو: سهولة الاستخدام: حيث توفر تلك المنصات واجهات سهلة الاستخدام تسمح للمبتدئين او حتى غير المبرمجين بإنشاء مواقع بسرعة وسهولة دون الحاجة إلى وجود اى مهارات برمجية. السرعة: يمكن للأشخاص إنشاء مواقع ويب بسرعة أكبر من عن طريق البرمجة الاساسية. التخصيص: توفر تلك المنصات الكثير من القوالب والأدوات لتصميم المواقع مما يسمح للمستخدمين بإضافة قواب وتصميمات محددة دون الحاجة إلى كتابة اى كود. ومع ذلك، قد تكون لتلك المنصات بعض القيود حيث لا يمكنك تخصيص جميع الاشياء التى تريدها وتستطيع انشائها عن طريق البرمجة التقليدية . وتلك البرانج بالاساس تقوم باستهداف المستخدمين غير المبرمجين او المبرمج الذى يريد انشاء موقع بسيط لا يحتوى على وظائف او اى اكواد جافاسكريبت عديدة وذلك لسرعه التنفيذ . اما نصيحتى لك اذا كنت تريد ان تكون مبرمجا فان تلك المنصات ليست لك او يجب الاتستخدمها فى بداية التعلم فانك اذا كنت تسعى للحصول على وظيفة ثابته فى شركات كبيرة ومرتبات مجزية او حتى عمل حر فتلك المنصات لن تساعدك فى ذلك حيث لن يمكنك التعديل على موقع موجود لديك او تصميم واجهات معقدة .
-
وعليكم السلام ورحمة الله وبركاته . يمكنك انشاء ملفات pdf عن طريق تحويل ملفات word او excel او حتى power point ويمكنك انشاء تلك الملفات عن طريق برنامج microsoft office او عن طريق google مثل Google Docs وكتابة ما تريد بداخل تلك الملفات ومن ثم تحويلها الى pdf .
- 4 اجابة
-
- 1
-
-
نعم ان JS هى اختصار لكلمة javascript "جافاسكريبت" و هى التى تمكنك من تنفيذ الامور التى تريدها فى الواجهة الامامية للعميل مثل فتح الكاميرا او الميكروفون والبيانات على الجهاز او حتى الوصول الى الموقع ولكن يجب على المستخدم اعطاء اذن الوصول لتلك الاشياء اولا قبل استخدامها والا فلن تستطيع الوصول اليها . وفى دورة php ستتعلم كيف يمكنك رفع الملفات من على الجهاز الى الموقع الخاص بك وحفظها فى قاعدة البيانات و السيرفر .
-
وعليكم السلام ورحمة الله وبركاته . الخطأ يخبرك بان لارافيل الاصدار 11 يحتاج الى php اصدار اكبر من 8.2 وهو ليس متوفر لديك . ويجب عليك حذف xampp ثم تثبيت اصدار يدعم php 8.2 . او يمكنك استخدام اصدار لارافيل يدعم php لديك . يمكنك معرفة اصدار php عن طريق تنفيذ الامر التالى فى cmd php -v ويمكنك معرفة اصدارات لارافيل و اصدار php لذى تدعمه من الجدول التالى
-
الامر بسيط ان شاء الله . كل ما عليك فعله هو انشاء حقل فى جدول المستخدمين لتسجيل رقم الهاتف وجعله unique بحيث لا تتكرر القيم فيه . ناتى الان للواجهة الامامية يمكنك تعديل حقل البريد الالكترونى ليقبل بريد الكترونى او رقم هاتف ويمكنك تحقيق ذلك بالتاكد من ان القيمة التى كتبها المستخدم هى رقم ام نص فاذا كان قد قام بكتابة رقم هاتف ولا توجد اى احرف فاذا ستتاكد ان هذا رقم هاتف ويمكنك تطبيق اى جزء للتحقق من صحة البيانات وهكذا بالنسبة للبريد الالكترونى . واما بالنسبة للواجهة الخلفية فايضا يمكنك التحقق من الحقل المرسل هل هو رقم ام نص فاذا كان رقم يمكنك ارسال استعلام لقاعدة البيانات للتاكد من وجود رقم الهاتف هذا بكلمة المرور و ايضا بالنسبة للبريد الالكترونى اذا كان بريد الكترونى تقوم بارسال استعلام الى قاعدة البيانات للتاكد من وجود البريد الالكترونى هذا بكلمة المرور.
-
اعتقد ان الخطأ هنا لقد قمت بوضع نقطة قبل كلمة img وهذا خاطئ حيث ان النقطة تدل على ان هذه الكلمة هى سمة "class" ونحن لا نريد تنفيذ على سمة بل على عنصر لذلك نحذف النقطة . والخطأ الاخر فى فى كلمة cartTap حيث تم تعريفها فى العنصر ك cartTop لذلك نقوم بتعديلها فى ملف html بالاسم الصحيح cartTap. و من فضلك يمكنك مستقبلا التعليق اسفل الدرس الذى تريد الاستفسار عنه حتى نستطيع مساعدتك بشكل افضل. ستجد صندوق التعليقات اسفل الفيديو مباشرة حيث يمكنك التعليق هناك. شكرا لك
-
وعليكم السلام ورحمة الله وبركاته . اولا قم بالبحث عن المعلومات والاضافات الجديدة والتحسينات و حتى الاشياء التى تم الاستغناء عنها فى الاصدار الجديد. قم بمقارنة البنية الخاصة بمشروعك بالبينة الخاصة بالاصدار الحديث ومدى الاختلاف بينهما . يمكنك الان الاختيار بين التحديث للاصدار الاحدث او تظل على الاصدار الاقدم بناء على احتياجك للاضافات الجديدة ام لا وايضا هل سيتم تغير البنية الخاصة بمشروعك كاملة ام لا . اذا قررت التحديث فعليك اولا اخذ نسخة احتياطية من مشروعك القديم والافضل استخدام نظام إدارة الإصدارات git مثل github. الان يمكنك تحديث الاصدار الى الاصدار الاحدث وتثبيت وتحديث المكتبات اللازمة التى يعتمد عليها . بعد ذلك تطوير الجزء الخاص من المشروع الذى تريده ان يعتمد على احدث الاضافات فى الاصدار الجديد. اذا كان قد تم الاستغناء عن بعض الخصائص او تم استبدال اسمائها فبيجب تعديل هذا الجزء من بنية المشروع حتى يعمل جيدا لانه سيظهر لك خطأ بان هذه الاشياء قم تم هجرها والاستغناء عنها . واخيرا اذا كان مشروعك مرفوع على استضافه فتاكد من ان الاستضافة توفر لك التحديثات الاخيرة من اللغه التى يعتمد عليها الاصدار . فمثلا فى اطار laravel 11 فانه يعتمد على php 8.2 فتاكد من وجود اصدار 8 لديك على الجهاز عند التطوير وايضا توفره على الاستضافه لديك حتى لا تقوم بتطويره ونمن ثم لا يعمل على الاستضافه. والافضل اذا كان المشروع كبير و البنية الخاصة به معقده فيمكنك تجاهل التحديثات ولكن تاكد من اصلاح التحديثات الخاصة بالامان حتى لا يكون موقع معرض للهجمات .
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . نعم بالطبع ان كتابة تعريف الصنف (class) فى اى لغه سواء بايثون او اى لغه اخرى هو شئ جيد جدا من حيث التنظيم وسهولة القراءة والصيانه ومعالجة الاخطاء . تخيل معى انك لديك صنف يثوم باداء وظيفة محددة و يحوى على العديد من الشفرات والاسطر الكثيرة مثلا فوق الالف سطر اول اقل او اكثر . فاذا قمت بوضعه بداخل الكود الخاص بك فستجد ان الكود اصبح مشتتا ولا تعرف ان تحدد الوظائف او اكتشاف الاخطاء . واذا اردت مثلا ان تقوم بنشر هذا الصنف او ارساله الى احد حتى يقوم بالتطوير عليه او حتى استخدامه فسيجد صعوبة فى فهم الكود ولن يتمكن من فصل الاصناف او الكود من بعضها البعض . ولذلك الحل الافضل فى الاصناف الكبيرة او حتى الصغيرة التى تعتمد على بعضها فى البعض هو فصلها فى ملف منفصل وتسمية هذا الملف باسم الصنف او الوظيفة المناسبة واستدعاءه فى المكان الذى تريد انشاء كائنات من هذا الصنف
- 3 اجابة
-
- 1
-
-
مرحبا احمد . إن الدورة التى أنت مشترك بها هى دورة php بالأساس و يتم فيها شرح إطار عمل لارافيل ويتم التعمق فيه بكثرة و إنشاء عدة مشاريع من خلاله حيث أن لارافيل هو اطار العمل الأشهر القائم على php وهو متوفر بكثرة في سوق العمل سواء في الشركات او حتى العمل الحر لذلك يتم شرحه بتعمق في الدورة ويتم تحديثه دوريا حيث أن مطورين لارافيل يقومون بتطوريه وإنشاء اصدارات أحدث منه سنويا كذلك الأكاديمية هنا تواكب هذا التطور. أما بالنسبة لمسار وورد بريس فإنه يتم شرح الاساسيات فيه من حيث تطوير القوالب و تطوير و تطوير الإاضافات وأيضا إنشاء مشاريع عملية للتطبيق عليهم و بما أن وردبريس هو اطار عمل يقوم بانشاء نظام ادارة محتوى المواقع والمدونات وحتى المتاجر البسيطة فانه لن يخلو من الاساسيات التى يتم شرحها في هذا المسار في الدورة . أما بالنسبة للعمل الحر ستجد أن المطلوب بكثرة بالنسبة إلى وورد بريس فإنه سيكون إنشاء قوالب أو تطوير إضافات أو حتى تركيب قالب على الموقع واعتقد أن ما تم شرحه فى هذه الدورة سيكمنك من تنفيذ ذلك بسهولة . وأيضا ساقوم بتوصيل طلبك إلى الادارة والنظر إذا ما كان يحتاج المحتوى أى تطوير ام لا . شكرا لتفهمك وبالتوفيق ان شاء الله.
-
اولا بالنسبة لمشكلة السلة فيجب اولا اخفاء جزء السلة عند بداية تحميل الصفحة حيث نقوم بوضع سمة تسمى hidden الى العنصر الذى يحوى السلة ونقوم باعطائه الخاصية display: none !important; هكذا. .hidden { display: none !important; } ولاظهاره عند الضغط عليه ثم اخفاءه مره اخرى نستخدم الجافاسكريبت لفعل ذلك. حيث اولا نضع لعنصر السلة id يسمى my-cart حتى نستعمله فى جافا سكريبت . والان نقوم بتعريف متغيرين الاول يحوى الزر الخاص بفتح السلة والاخر هو عنصر السلة هكذا. const cart = document.getElementById('cart-btn') const my_cart = document.getElementById('my-cart'); والان نقوم بالاستماع الى الحدث الخاص click على زر السلة و عند الضغط عليه نقوم بحذف السمة hidden اذا كانت موجودة لاظهار السلة او وضع السمة hidden اذا لم تكن موجودة وذلك لاخفائها هكذا. cart.addEventListener('click', () => { my_cart.classList.toggle('hidden'); }); والان نضع حدث click على document حتى نقوم باغلاق السلة اذا تم الضغط فى اى مكان اخر وذلك للتسهيل على المستخدم وعدم اجباره على الضغط فقط على الزر لاخفاء السلة هكذا. document.addEventListener('click',(e)=>{ if( !(e.target.id == "cart-btn") && !my_cart.classList.contains('hidden')){ my_cart.classList.add('hidden'); } }) والان نقوم باستدعاء ملف الجافاسكريبت فى ملف index.html وايضا حذف زر السلة الاخر حيث يوجد زرين فى الكود . ولقد قمت بارفاق الملفات بعد تعديلها . اما بالنسبة تسجيل الدخول فان الامر ليس بتلك السهولة حيث ما قمت به الان هو فقط برمجة الواجهة الامامية اما تسجيل الدخول فيحتاج الى جزء الواجهة الخلفية والتعامل مع قواعد البيانات . ويمكنك عمل واجهة خلفية عن طريق استخدام لغة php او javascript مع اطار عمل express و nodejs . واذا لم يكن لديك اى خلفية عن تطوير الواجهات الخلفية فانصحك اولا بمذاكرة اللغة التى تريد العمل بها بداية من الاساسيات حتى يتسنى لك انشاء اى موقع كاملا script.js style.css index.html
-
وعليكم السلام ورحمة الله وبركاته . نعم بالفعل فان اكاديمية حسوب تقوم دائما بتحديث الدورات لتتوافق مع سوق العمل ومع احدث التقنيات التى يتم نشرها لذلك نحن مستمرون دائما بتطوير المحتوى وبالفعل انت لديك وصول مدى الحياة على الدورة بتحديثاتها . ويمكنك متابعة الدروس والاقسام الجديدة التى تم تحديثها فى الدورة لديك واذا ما واجهتك أى مشكلة فلا تتردد يمكنك السؤال عن اى شئ اسف الدرس فى الدورة .
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . أولا، في Laravel، يتم استخدام نظام المصادقة (Authentication) المدمج لإدارة عمليات تسجيل الدخول والتحقق من الهوية. يجب عليك اولا ان تقوم بكتابة المسارات الخاصة بتسجيل الدخول والتسجيل وتسجيل الخروج في ملف التوجيه (routes/web.php). على سبيل المثال: use App\Http\Controllers\LoginController; Route::get('login', [LoginController::class,'create'])->name('login'); Route::post('login', [LoginController::class,'login']); Route::post('logout', [LoginController::class,'logout'])->name('logout'); ويجب انشاء متحكم فى المسار الذى قمنا بكتابته Auth\LoginController وانشاء الدوال التى قمنا بتمريرها ايضا. الآن، يمكننا أن ننشئ الدالة login() داخل LoginController. حيث تقوم هذه الدالة بالتحقق من بيانات تسجيل الدخول التى يتم ارساله من المستخدم وإذا كانت صحيحة، يتم تسجيل الدخول باستخدام Auth facade المدمجة في Laravel. على سبيل المثال: use Illuminate\Support\Facades\Auth; public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // هنا نقوم بكتابة اى شئ نريده فى حالة قام المستخدم بعمل تسجيل دخول صحيح return redirect()->intended('dashboard'); } return redirect()->back()->withErrors(['email' => 'These credentials do not match our records.']); } تقوم دالة attempt() بمحاولة تسجيل الدخول باستخدام البيانات المقدمة. إذا نجحت عملية التسجيل، يتم توجيه المستخدم إلى المسار المعين في هذه الحالة 'dashboard' ، وإذا فشلت، يتم توجيه المستخدم إلى الصفحة السابقة الطلب عليها مع رسالة خطأ. اما بالنسبة للمستخدم والادمن فيمكنك اضافة حقل فى قاعدة البيانات يسمى is_admin وجعل قيمته ب 1 اذا كان ادمن و 0 اذا لم يكن ادمن. ويمكنك قراءة هذا المقالة لتفهم جيدا عن الاستيثاق جيدا . وايضا هذا الرابط لموسوعة حاسوب ويمكنك قراءة المزيد حول لارافيل هناك.
- 5 اجابة
-
- 1
-
-
نعم بالطبع سيتم ارسال رساله اليك علي البريد الالكترونى الخاص بك عند الرد عليك . ونعم بخصوص الامتحان يمكنك السؤال على مركز المساعدة وسيتم الرد على استفساركم ومساعدتكم ان شاء الله . ولا تقلق اذا كان هناك تاخير فى الرد لانه حاليا يوجد العديد من الطلاب الذين يقدمون على الاختبارات وايضا من يريدون المساعدة حيث يوجد ضغظ حاليا .
-
اعتقد ان المشكلة لديكى فى جزء الحفظ فى قاعدة البيانات فلقد قمتى بالخطأ فى ترتيب ادخال البيانات . cur.execute("INSERT INTO products (ProductName, ExpiryDate, Ingredient) VALUES (%s, %s, %s)", (product_name, ingredient, date_value)) لاحظى انكى يجب ادخال اسم المنتج ثم تاريخ الانتهاء ثم المكونات . ولكنى قد قمتى بالتبديل بين التاريخ والمكونات. لذلك استبدلى السطر لديكى بهذا السطر . cur.execute("INSERT INTO products (ProductName, ExpiryDate, Ingredient) VALUES (%s, %s, %s)", (product_name,date_value ,ingredient)) واذا لم يحل المشكلة فاعقتد ان المشكلة لديكى فى قاعدة البيانات وللتاكد اكثر يجب ارسال رسالة الخطأ التى تظهر فى منفذ الاوامر لديكى
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته . ان ال HTTP response status code 500 تعنى انه يوجد خطأ فى الخادم اى انه حدث مشكلة لديك فى تنفيذ الكود على الخادم . لذلك تاكد من ارسال البيانات بشكل صحيح و ان تكون الشيفرة الخاصة بحفظ البيانات صحيحة . واذا ما زالت المشكلة موجوده فيجب توفير الكود الخاص بحفظ البيانات لنرى اين توجد المشكلة ونستطيع ان نساعدك
-
ليس تماما فان وظيقة مصمم البرمجيات مختلفة عن مطور البرمجيات فهو لا يكتب اى شيفرات هو فقط ملم بعلم التصميم مهما كانت لغة البرمجة وليست لغه معينه . ولذلك اذا لم تكن تريد ان تكون مصمم برمجيات فلا يجب تعلم المجال بشكل موسع بل يكفى تعلم الاساسيات و النظريات التى تساعدك على فى مهنة تطوير البرمجيات مثل : قواعد البيانات هياكل بيانات "Data Structure" نماذج التصميم "Design Patterns" الخوارزميات "algotherms" OOP. ولكن مع الخبرة ستجد نفسك مع الوقت ملم اكثر بتفاصيل التصميم و انشاء المعماريات ولكن فى بداية مسيرتك المهنية انصحك بعدم الغوص عميقا فى تلك المفاهيم حيث من الممكن ان تسبب لك الاحباط و الملل بل يجب ان تاخذ مسيرتك تدريجيا
- 7 اجابة
-
- 1
-
-
توجد عدة اسباب لتلك المشكلة و لنتابع الخطوات معا لنرى اين توجد المشكلة . اولا يجب اغلاق xampp تمام حيث نضغط على زر Quit فى اقصى اليمين اسفل القائمة . والان لنحاول فتح البرنامج مرة اخرى كمسؤول run as administrator ولنحاول مرة اخرى تشغيل mysql . واذا لم يعمل فمن الممكن ان المنفذ (port) 3306 مستعمل من قبل برنامج اخر . لذلك لنحاول تغير المنفذ عن طريق فتح ملف my.ini والبحث عن السطر التالى port = 3306 ونقوم بتغيره الى 3360 مثلا port = 3360 ونقوم باعادة تشغيل الخدمة مرة اخرى . ويمكنك التاكد من ان المنفذ مستعمل ام لا عن طريق الضغط على زر Netstat فى xampp وسيقوم بفتح ناقذة للمنافذ المستخدمة والتاكد من عدم استخدام المنفذ الحالى 3306 واذا لم تعمل فهل يمكنك ارسال ملف تقارير الاخطاء لنرى اين تكم المشكلة