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

بلال زيادة

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

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

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

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

    30

كل منشورات العضو بلال زيادة

  1. هل يمكنك إرفاق ملفات مشروعك بشكلٍ مضغوط لأنه لن استطيع تفقد المشكلة من خلال الأكواد أو الصور.
  2. يبدو أنكِ لم تثبتين المكتبة المناسبة لذلك حاول رجاء تثبيت المكتبة التالية من خلال الأمر التالي npm install -g sass ثم تقومين بإغلاق CMD و من ثم فتحه مرة أخرى و من ثم تقومين بكتابة الكود الخاص بتحويل Scss إلى css.
  3. هل يمكنك وضع صورة لكيف تقومين بتنفيذ الأوامر
  4. يمكنك تشغيل cmd كمسؤول من خلال الضغط على أبدأ ثم تكتبي cmd ثم تضغطي على تشغيل كمسؤول.
  5. يمكنك تثبيت الحزمة التالية من خلال الأمر التالي npm install -g node-sass ثم يمكنك إعادة تشغيل المشروع من خلال الأمر التالي npm run build ايضا يمكنك محاولة حذف الكاش من خلال الأمر التالي npm cache clean --force ثم تجربة تنفيذ الأمر السابق في الأول لتقوم بتثبيت الحزمة من جديد.
  6. يمكنك مراسلة الدعم الفني من هنا و يمكنك وضع أي سؤال يجول في خاطرك بخصوص الدورات و سقوم الدعم الفني بالرد عليك و الإجابة على جميع أسئلتك.
  7. يمكنك صنع دالة للتحقق من شهادة ssl فحيث يمكنك إنشاء الدالة بهذا الشكل function isSSL( ) { } ومن ثم يمكنك استخدام مصفوفة $_SERVER لجلب قيمة HTTPS بهذا الشكل $_SERVER['HTTPS'] حيث ايضا يمكنك استخدام دالة preg_match لتقوم بتطبيق تعبيراً نمطياً على سلسلة نصية وتركيب هذه الدالة هو int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int$offset = 0 ]]] ) بحيث أن pattern هو النص المراد البحث عنه, كسلسة نصية, subject السلسلة النصية المُدخلة , matches إذا ضُبِطَت قيمة المعامل matches، فستُملأ تلك المصفوفة بنتائج البحث. إذ ستحتوي ‎‎‎‎$matches[0]‎ على النص الذي يطابق النمط الكامل، وستحتوي ‎‎‎‎$matches[1]‎ على النص الذي يطابق أول نمط فرعي محاط بالأقواس، وعند تطبيق preg_match( "/^(|off|false|disabled)\$/i", $_SERVER['HTTPS'] ) سوف تعيد لنا الدالة 1 إذا كانت الشهادة مفعلة و صفر إذا كانت غير مفعلة function isSSL( ) { return !( !isset( $_SERVER['HTTPS'] ) || preg_match( "/^(|off|false|disabled)\$/i", $_SERVER['HTTPS'] ) ); } ومن ثم يمكنك استخدام هذه الدالة بداخل دالة getBaseUrl بهذا الشكل function getBaseUrl( ) { return ( isssl( ) ? "https://" : "http://" ).$_SERVER['HTTP_HOST'].strrev( strstr( strrev( $_SERVER['PHP_SELF'] ), "/" ) ); } بحيث تضع بجانب الرابط https:// إذا كانت الشهادة مفعلة و تضع http:// إذا كانت الشهادة غير مفعلة .
  8. يمكنك استخدام trigger لمحو البيانات من الفورم في حالة نجاح المهمة أو فشلها , في حالة نجاح المهمة تكون بهذه الطريقة success: function(response) { $('form').trigger("reset"); } و في حالة فشل المهمة error:function(response){ $('form').trigger("reset"); } فيكون كامل الكود بهذا الشكل <script> $(document).ready(function(e) { $("#messages").on('submit', function(e) { e.preventDefault(); $.ajax ({ type: 'POST', url: 'send.php', data: new FormData(this), dataType: 'json', contentType: false, cache: false, processData:false, success: function(response) { $('form').trigger("reset"); }, error:function(response){ console.log("DD"); $('form').trigger("reset"); } }); }); }); </script>
  9. يبدو أنكِ لم تقومي بتعريف bottomsheet عند الضغط على الزر , فيمكنك وضع bottomsheet عند النقر على الزر بهذه الطريقة onPressed: () { showModalBottomSheet( context: context, builder: (context) { return Column( mainAxisSize: MainAxisSize.min, children: <Widget>[ ListTile( leading: new Icon(Icons.photo), title: new Text('Photo'), onTap: () { Navigator.pop(context); }, ), ListTile( leading: new Icon(Icons.music_note), title: new Text('Music'), onTap: () { Navigator.pop(context); }, ), ListTile( leading: new Icon(Icons.videocam), title: new Text('Video'), onTap: () { Navigator.pop(context); }, ), ListTile( leading: new Icon(Icons.share), title: new Text('Share'), onTap: () { Navigator.pop(context); }, ), ], ); }); }
  10. صحيح دالة mail تستخدم لأرسال بريد إلكتروني على البريد الإلكتروني الذي تود إرسال له هذا البريد, في البداية حتى تستطيع ارسال بريد إلكتروني من خلال أي صفحة بالموقع يجب أن نعرف دالة تكون قابلة للاستخدام بأي وقت و من أي صفحة فمثلاً يمكننا إنشاء دالة باسم sendMail بهذا الشكل function sendMail( ) { } ثم نمرر لها المتغيرات التالية function sendMail( $to, $from, $subject, $message ) { } حيث أن المتغير $to هو البريد الإلكتروني الذي نود إرسال بريد إليه. و متغير $from هو البريد لصاحب الموقع أو للشخص الذي قام بإرسال هذا البريد. و $subject هو عنوان البريد المرسل و $message هو نص الرسالة التي تم إرسالها بالبريد ثم بداخل الدالة نقوم بوضع ترميز utf-8 لعنوان الرسالة كما في الكود التالي $subject = sprintf( "=?utf-8?B?".base64_encode( $subject )."?=" ); ثم قمنا بإرسال headers الازمة عن طريق متغير $headers $headers = sprintf( "To: %s <%s>\nFrom: %s\nMIME-Version: 1.0\nContent-type: text/html; charset=utf-8", $to, $to, $from ); ثم قمنا بتمرير المتغيرات إلى دالة mail كما في الكود التالي return mail( $to, $subject, $message, $headers ); فتكون كامل الدالة function sendMail( $to, $from, $subject, $message ) { $subject = sprintf( "=?utf-8?B?".base64_encode( $subject )."?=" ); $headers = sprintf( "To: %s <%s>\nFrom: %s\nMIME-Version: 1.0\nContent-type: text/html; charset=utf-8", $to, $to, $from); return mail( $to, $subject, $message, $headers ); } ويمكن استخدام الدالة بهذه الطريقة <?php $to = "البريد المرسل إليه"; $from = "بريد المرسل"; $subject = "عنوان البريد"; $message = "نص البريد"; sendMail($to,$from,$subject,$message);
  11. تبحث الدالة strpos()‎ عن أول ظهور لمحارف معينة في سلسلة نصية ثم تعيد ترتيب موقعها في تلك السلسلة. و تركيب هذه الدالة int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) حيث المتغير $haystack هي السلسلة النصية التي ستبحث عنها. و المتغير $needle مجموعة المحارف التي ستبحث الدالة عنها. إن لم تكن تلك المحارف سلسلة نصية، فستحول إلى عدد صحيح وتعامل على أنها قيمة ترتيبية للمحارف. و متغير $offset معامل اختياري وهو قيمة إزاحة المؤشر من بداية السلسلة النصية والذي يبدأ عنده البحث. إن كانت قيمة هذا المعامل سالبة، فسيبدأ البحث بعد إزاحة المؤشر من نهاية السلسلة النصية والذي سيبدأ عند البحث. ومن الأمثلة على هذه الدالة <?php $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); // لاحظ أنَّنا استعملنا المعامل ===. لن يجدي استعمال المعامل == نفعًا إذ لن يعمل كما //.هو الأول أي 0 'a' هو متوقع له لأنَّ موقع المحرف الذي نبحث عنه if ($pos === false) { echo "The string '$findme' was not found in the string '$mystring'"; } else { echo "The string '$findme' was found in the string '$mystring'"; echo " and exists at position $pos"; } ?> حيث يمكنك الرجوع إلى شرح هذه الدالة على موقع ويكي حسوب من هنا .
  12. الأمر طبيعي , وسوف يستغرق وقت في الظهور ولا توجد مشكلة محددة في هذا الأمر
  13. لاحظ أنه لم تقم بحفظ الملف , ولو أردت التأكد من ذلك سوف تلاحظ أنه يوجد نقطة بيضاء بجانب اسم الملف و هو page.html فعليك حفظ الملف بعد الأنتهاء من كتابة الأكواد عن طريق الضغط على قائمة file ثم save أو بالضغط على لوحة المفاتيح على الزرين ctrl + s او من خلال فائمة file يمكنك تعليم خيار auto save , هل لو سمحت قمت بحفظ الملف و تجربة فتحه مرة أخرى و أخباري بالنتيجة.
  14. هل يمكنك إرفاق الكود الذي كتبته , ايضا يفضل لو أنت مسجل في الدورة ان تقوم بكتابة التعليق أسفل الفيديو الذي تشاهده , كي يتم الرد عليك و حل مشكلتك بأسرع وقت , يمكنك الأطلاع على هذا الرابط لكي تعرف كيف تقوم بطرح الأسئلة أسفل كل فيديو من هنا .
  15. لا يظهر التطبيق بسرعة كبيرة على المتجر يجب الأنتظار كم يوم حتى يظهر , ايضا عند البحث عن باسم التطبيق و اسم المطور يكون قد ظهور لأنك بحثت باسمه أو باسم مطوره ولكن في حالة وجود تطبيقات مشابهة و تكون أقدم من تطبيقك فسوف تظهر قبل تطبيقك و يكون تطبيقك في الصفحات التالية , ايضا حاول الاهتمام بوصف التطبيق و اسمه و محاولة تمييزه بكلمات دليلة تدل عليه مما تساعد في تقدمه في نتائج البحث الأولى. ولكن لا تقلق سوف يظهر تطبيقك مع مرور الوقت في الصفحات الأولى بعد الزيارات و التحميلات التي سوف تتم عليه.
  16. حاول حذف الساعات و الدقائق و الثواني من الدالة date و قم بتجربة الأمر مرة أخرى. <?php if ( date("Y-m-d")==$row['end_time'] ) : ?>
  17. في متغير $data يجب إعطاءه تاريخ اليوم $data = date('d-m-Y'); ثم في تاريخ النهاية يتم تحويله ليكون بنفس تنسيق التاريخ الحالي $end_time = date('d-m-Y', $row['end_time']); ثم في الاستعلام التالي يتم مقارنة التاريخ الحالي و تاريخ النهاية كما في الشكل التالي $stmt = $db->prepare("UPDATE breaking_news SET news=? date <= ?, end_time >= ?");
  18. حاولي حذف مجلد node_modules و من ثم تنفيذ الأمر التالي npm install لتنزيل الحزم كاملة . ايضا حاولي حذف حزمة webpack من خلال الأمر التالي npm unistall webpack ومن ثم محاولة إعادة تثبيتها من جديد من خلال الأمر التالي npm i -D webpack
  19. يمكنك إضافة TIME_TO_SEC إلى الأستعلام الخاص بك بحيث تقوم هذه الدالة بتحويل قيمة الوقت إلى ثواني , بهذا الشكل "SELECT COUNT(*) FROM users u WHERE TIME_TO_SEC() <= 18000" ثم بداخل أقواس هذه الدالة نقوم بطرح الوقت الحالي مع اخر وقت تم تخزينه في الحقل last_login_date عن طريق الدالة TIMEDIFF بهذا الشكل "SELECT COUNT(*) FROM users u WHERE TIME_TO_SEC(TIMEDIFF(NOW(), u.last_login_date)) <= 18000" لاحظ الوقت الحالي نعبر عنه بِ NOW()
  20. يبدو أن الكود ناقص , فقد قمت بفحص الكود و لكن لم أجد أي مشكلة , الأن هل يوجد بكود صفحة الدخول كود يعمل على التحقق من أنه هناك جلسة أو لا ؟ يعني إذا كان يوجد جلسة يقم بتوجيه الي الصفحة المرادة و إذا لم توجد جلسه يخرجه إلى صفحة الدخول . ايضا هل Supermarket هي صفحة الداش بورد ؟
  21. تأكد اسم المستخدم , لأنك تعتمد على اسم المستخدم في تكوين الجلسات ؟ هل تأكدت منه ؟ لأنه إذا كان اسم المستخدم مسجل فأنه سوف يرجع البيانات و من ثم يقوم بتسجيل جلسة و إذا كانت خاطئة لا يقوم بتسجيلها.
  22. يمكنك فعل ذلك من خلال استخدام inner join بهذه الطريقة $con = mysqli_connect("localhost", "root", "123123", "database"); mysqli_query($con, "SELECT n.*, u.* FROM notification n inner join user u on n.user_id=u.id"); فلاحظ أننا قمنا بوضع مفتاح يعبر عن كل جدول فحرف n يعبر عن جدول notification و حرف u يعبر عن جدول user ثم قمنا بجلب كل من الحقول من كلا الجدولين باستخدام * ثم قمنا ربط الجدولين باستخدام inner join كما في المثال السابق . ايضا يمكنك ربط أكثر من جدول بهذه الطريقة من خلال استخدام inner join كذلك mysqli_query($con, "SELECT n.*, u.*, c.title FROM notification n inner join user u on n.user_id=u.id inner join chat c on c.user_id=u.id"); هل يمكنك إرفاق الكود الخاص بك لنساعدك في ربط الجداول ؟
  23. نأسف لأننا قمنا بالرد بعد مدة من الوقت و لكن لأن الكود كبير و و عملية فحص الكود أخذت وقت كبير ايضا , لذلك في هذا الكود لديك while ($row = $result->fetch_assoc()) { $logintype = $row['logintype']; $name = $row['name']; $userid = $row['id']; $shopname= $row['shopname']; if ($logintype != 1) { ?> <script type="text/javascript"> window.location = "../index.php"; </script> <?php } } قم بإضافة تعريف للجلسة بهذا الشكل $_SESSION['userName'] = $name; فبذلك يصبح الكود كاملاً while ($row = $result->fetch_assoc()) { $logintype = $row['logintype']; $name = $row['name']; $userid = $row['id']; $shopname= $row['shopname']; $_SSION['userName'] = $name; if ($logintype != 1) { ?> <script type="text/javascript"> window.location = "../index.php"; </script> <?php } } حاول رجاء تنفيذ الكود ثم أخبرني بالنتيجة.
  24. صحيح , الملف مكتوب باستخدام مكتبة جيكويري, لذلك تم وضعه بعد سطر استدعاء مكتبة جيكويري و معنى كلمة init.js ربما هي اختصار لكلمة initialize أي ملف البداية و لكن هذا لا يهم يمكن تسمية الملف بأي اسم تريده . ووظيفة الملف هو التعامل مع أحداث النقر على الأزرار و حدث الرجوع لإعلى إذا كان سكرول الصفحة أسفل و الكثير من الأحداث ويتم قراءة الملف بعد تحميل الصفحة حتى تكون العنصر قد حُملت بشكلٍ كامل . لم أفهم ما تقصد أنه كان يستخدم ك command line و لكن الأن ظهرت عدة تقنيات مثل Webpack بحيث توفر عملية تجميع ملفات css أو js و استدعاء الملف في حالة استخدامه فقط. , هل ربما تقصد هذه التقنية ؟
  25. يمكنك تنفيذ الأمر التالي flutter analyze لمشاهدة جميع الأخطاء التي تظهر , ولكن هناك أخطاء لا يمكن إكتشافها إلا بعد تجربة التطبيق من قبل المستخدمين و على عدة أجهزة , لذلك نلجأ لمثل خدمة crashlytics
×
×
  • أضف...