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

Adnane Kadri

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

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

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

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

    52

كل منشورات العضو Adnane Kadri

  1. هي ليست مغلقة، تأكد فقط من النزول الى اسفل الصفحة، ستجد محرر التعليق، استعمله لذلك.
  2. ليس تماما، الاستعلام يحدث بالفعل ويتم تنفيذه غير أنه لا يتم التقاط عائده من على خارج الدالة. فالمشكلة هنا هي أنك تحاول الوصول الى متغير محلي local variable من على خارج نطاق الدالة function scope. وللوصول اليه اظنك ستحتاج ضبطه كعائد للدالة التي تقوم بتوصيفها. فيكون ذلك كـ: function connecting($order_table,$table){ global $order_id ; global $conn; $query_var = 'SELECT '.$order_table.'.*, '.$order_table.'.price AS price, admins.name AS user, patron_colors.color_name AS color_name, patron_colors.color_count FROM '.$order_table.' LEFT JOIN admins ON '.$order_table.'.user = admins.id JOIN '.$table.' ON '.$order_table.'.'.$order_table.'_id = '.$table.'.id JOIN patron_colors ON '.$order_table.'.color_select = patron_colors.id WHERE '.$order_table.'.order_id=' .$order_id . ' ORDER BY '.$order_table.'.id ASC;'; $run = $conn->query($query_var); return $run; } الآن ستحتاج استقبال عائد الدالة وتخزينه في متغير: $run = connecting('order_bracelet','bracelet'); وأخيرا استعماله في المرور على الصفوف الناتجة: foreach ($run AS $row ){ // code here }
  3. مرحبا حمد، ان كنت تواجه مشكلة ما في احد دروس الدورات فيمكنك توصيف مشكلتك في قسم تعليقات الطلاب اسفل كل درس، وسيمكن المتابعة معك آنذاك.
  4. يعتمد هذا على حاجة المشروع بدرجة اولى، فإن كان هنالك داع لتوفير حالة استخدام لادراج 500 سجل مرة واحدة فسيكون ذلك نعم، اما ان كان يجب انشاء هاته السجلات واحدا واحدا فلا بأس بذلك ايضا. وعموما، يتم ذلك بشكل مستقل، اي واحدا واحدا.
  5. هي موارد وتشكيلات بيانات يتم ادارتها والتعامل معها عن طريق تطوير الواجهات الخلفية، وان كنت جديدا على هذا المفهوم فستجد ان الامر مختلف قليلا عن تطوير الواجهات الامامية. فهو الجزء من التطبيق الذي يشتغل على الخادم ويدير مختلف عمليات CRUD: القراءة - التعديل - الادراج او الانشاء - الحذف على موارد البيانات، سواءا كان افلاما او مقالات اي ما الى ذلك. هذا بجانب التعامل مع مفاهيم مثل توثيق ومصادقة الطلبات وتسجيل الانشطة وغيرها. ففي جزئية القراءة مثلا، يقوم تطبيق الخادم بالقيام باستعلام قواعد بيانات لقراءة 500 سجل افلام مثلا، ثم يقوم باعادة النتيجة ككائن JSON في الرد على الطلب. نفس الشيء بالنسبة للحذف او التعديل او غيرها.
  6. يمكنك تثبيت bootstrap كحزمة بواسطة مدير الحزم npm عن طريق الامر: npm i bootstrap الآن قم باستيراد ملف تنسيقات بوتستراب في ملف جافاسكربت الرئيسي index.js لديك: import 'bootstrap/dist/css/bootstrap.css'; import 'bootstrap'; وسيمكنك البدء في استعماله بشكل مباشر. قد تكون ايضا مهتما باستعمال react-strap مباشرة. وهي مكتبة تتوفر على مجموعة من مكونات react وبوتسراب سهلة الاستخدام والتضمين مباشرة.
  7. تحدث هاته المشكلة عند امتلاك المستودع البعيد remote repo على تعديلات لا يمتلكها المستودع المحلي local repo او مجلد العمل working directory، ولتلافي هاته المشكلة سيجب اما: جبر الدفع الى المستودع المبعيد عن طريق اضافة الخيار f او force: git push origin main --force سحب التحديثات الى مجلد العمل ثم القيام بالدفع مجددا: git pull --rebase origin main git push origin main
  8. لأن git bash يتطلب ذلك، فهو تطبيق يحاكي بيئة bash على وينذوز ومن بين ما يقوم به هو انه يربط الايداعات التي تقوم بها على المستودع المحلي ويعرفها بهوية، هذا الاسم هو ليس بالضرورة اسم مستخدمك على github. ولذلك فإنه عند البدء مع git bash سيشترط عليك ذلك. على عكس طرفية windows يمكنك الاستزادة بالبحث عن الموضوع اكثر، Getting started with Git - github docs او عن الفرق بين git bash و cmd
  9. جرب تنفيذ الامرين التالين بدون الخيار global--: git config user.email "YOUR_EMAIL_HERE" git config user.name "YOUR_NAME"
  10. يبدوا انك تستعمل git bash. حاول ادخال معلومات الاستيثاق الخاصة بحسابك على الغيتهب وفق الامرين المشار اليهما: git config --global user.email "YOUR_EMAIL_HERE" git config --global user.name "YOUR_NAME" بعد ذلك، حاول اعادة ايداع الملفات. في حالة التعذر، حاول تنفيذ الامرين عن طريق طرفية ويندوز عادية cmd
  11. أولا، لا أرى أنك تقوم باضافة العمود المعني في جدول المستخدمين او في ملف تهجيره. تأكد من ذلك أولا: $table->string('job_title')->default(1) ثانيا، الدالة المساعدة request تقوم باعادة سلسلة نصية تعبر عن قيمة المعامل الممرر عبرها. في حين ان التابع update يقبل مصفوفة ترابطية المفاتيح فيها هي اسماء الاعمدة والقيم فيها هي قيم هاته الاعمدة. بمعنى أنك لا زلت تحتاج الاشارة الى password في التابع update كـ: ->update(['password' => request('password')]) او مباشرة: ->update(request()->only('password')) يفترض ان يحل هذا المشكلة لديك. اعرف أكثر عن Eloquent من خلال مقدمة إلى رابط الكائنات بالعلاقات Eloquent
  12. يمكنك كفكرة تحضير مصفوفة للعناصر الفريدة ومن ثم المرور على كامل العناصر المراد تفحصها، والقيام بالتالي: التحقق من ما ان كان محتوى العنصر الذي يتم المرور عليه موجودا في مصفوفة العناصر الفريدة في حالة كان ذلك يتم حذف العنصر او اخفاءه في حالة لم يكن ذلك يتم اضافة محتوى العنصر الى مصفوفة العناصر الفريدة مثال: <div class="num">1</div> <div class="num">2</div> <div class="num">2</div> <div class="num">3</div> const nums = document.querySelectorAll('.num') var exists = []; Array.from(nums).map(num => { if(exists.includes(num.innerHTML)){ num.style.display = 'none' return; } exists.push(num.innerHTML) }) انتبه الى انه لم يتم استعمال ذات المعرف id لكامل العناصر، لأن هذا الاخير يفترض ان يكون فريدا مميزا لعنصر واحد. ايضا الى استعمال Array.from لتمكين المرور على nums كمصفوفة واستعمال توابع المصفوفات للتعامل معها. توثيق Array.prototype.map()‎ حسب ويكي حسوب
  13. ليس المطلوب اي تعديل بعد، ملف laravel.log سيحتوي آخر رسالة خطأ تم توليدها. معرفة مضمون رسالة الخطأ سيساعد في فهم المشكلة التي تواجهها وبالتالي حلها.
  14. تكملة لما أشار اليه المدرب @Kais Hasan يمكنك عمل escape للرمز المستهدف في SQL عن طريق العبارة ESCAPE مرفقة بالرمز: SELECT * FROM my_table WHERE my_column LIKE '%&|&%' ESCAPE '|'; سيتم التعامل مع اي ما يلحق بالرمز كمحرف عادي literal characters بدل رموز خاصة special characters
  15. بدون تشخيص كامل للخطأ، لن يمكن الحسم في موضوع حله بطبيعة الحال. جرب افتح الصفحة عن طريق متصفح آخر او عن طريق جهاز حاسوب. او قم مثلا بتنزيل محتوى الملف وفتحه عن طريق محرر اكواد.
  16. الفكرة ليست في الاستضافة، فرسالة الخطأ هنا تنتجها احد ملفات الخادم او واجهته الخلفية. وستستمر نفس الرسالة بالظهور رغم نقل الاستضافة في حالة عدم حل هاته المشكلة. هل يمكنك التقاط صورة لما يحدث عند محاولتك فتح ملف laravel.log؟
  17. هل تواجه مشكلة بفتح الملف الكائن بالمسار المشار اليه؟ storage/logs/laravel.log
  18. هل تستخدم FTP لادارة الملفات على الخادم ام مستعرض الملفات في الاستضافة؟
  19. هل تمتلك وصول ssh الى الخادم الخاص بك؟ قد يحدث هذا بسبب احتفاظ التخزين المؤقت بملف الاعداد env. وعدم التقاطه اي تحديثات تمت به. في مثل هاته الحالة ستحتاج محو التخزين المؤقت لملف الاعداد، قد يكون وصول ssh ضروريا لتنفيذ الامر: php artisan cache:clear على كل، يحتفظ لارافيل بنسخة من رسالة الخطأ في ملف laravel.log الكائن بالمسار: storage/logs يمكنك استعراض رسالة الخطأ دون تفعيل وضع التصحيح عن طريق المشار اليه سابقا.
  20. لا يمكن تشخيص المشكلة الا بعد تمكين وضع التصحيح Debug mode لفهم المشكلة ومن ثم العمل على حلها. فالخطأ 500 يعني مشكلة بالخادم وفقط. بدون أي تفاصيل اضافية. اظن ان التطبيق مبني على لارافيل، يمكنك تمكين هذا الوضع عن طريق: فتح ملف env. الكائن بمجلد المشروع على الاستضافة. البحث عن السطر APP_DEBUG=false تعديله ليصبح APP_DEBUG=true حفظ الملف واعادة تحديث الصفحة على المتصفح ستظهر الآن رسالة خطأ مرفقة بتفاصيل المشكلة. يمكن انطلاقا من عليها العمل على حل المشكلة، في حالة التعذر يرجى ارفاقها للنظر فيها.
  21. نعم بالتأكيد، او قم باتخاذ المنحى الثاني، وهو حقن قيمة name في متغير جافاسكربت عام. او كفكرة عملية اخرى، قم بحقن القيمة في وسم meta داخل عنصر head بدل وسم عادي. فهاته البيانات في الأخير هي بيانات وصفية.
  22. حاول حقن قيمة auth()->user()->name في متغير عام او في وسم ثم قم عن طريق React بقراءته واسناده للحقل المعني، <div id="user-name">{{ auth()->user()->name }}</div> <div id="profile"></div> let userName = document.querySelector('#user-name').textContent const Profile = ()=> ( <form action="/home" method="POST"> @csrf <input type="text" value="{userName}" /> <button type="submit">save</button> </form> ) نفس الشيء بالنسبة لحقل csrf، لن يعمل. حاول مقاربة نفس الطريقة في انشاء الحقل csrf.
  23. من غير المقترح ان يتم حفظ صورة او ملف الى قاعدة البيانات بشكل مباشر، فهاته الملفات هي متواجدة بصيغة ثنائية binary، يجب اعتبار هاته النقطة في تخزينها، مثال: الحقل الموافق يجب ان يكون BLOB او LONGBLOB ليمكنه تخزين ذلك. الأصح هو ان يتم تخزين هاته الصور والملفات الى قرص التخزين الخاص بخادمك وحفظ مسارات هاته الملفات الى قواعد البيانات، او كفكرة اخرى، تشفير هاته الملفات بصيغة base64 وخزنها في قاعدة البيانات كسلسلة نصية. ما تقوم به في الشيفرة المرفقة غير واضح جيدا، لا يبدوا منطقيا المرور على كامل معاملات POST وارفاقها الى السلسلة data مثلا: foreach($_POST as $k =>$v){ if(!in_array($k,array('id')) && !is_array($_POST[$k])){ if(!is_numeric($v)) $v = $this->conn->real_escape_string($v); if(!empty($data)) $data .=","; $data .= " `{$k}`='{$v}' "; } } هذا بجانب ان الكثير من الاكواد تحتاج الاختصار والتبسيط اكثر.
  24. هل رسالة الخطأ التي تظهر هي رسالة مخصصة أم انه يتم رمي PHP exception عند محاولتك حفظ ملف او صورة؟
×
×
  • أضف...