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

بلال زيادة

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

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

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

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

    30

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

  1. تأكد من الانترنت لديك ، يخبرك الخطأ بأنه لا يستطيع تحميل المكتبات التي تكون مع لارافل
  2. هناك أكثر من طريقة و يبقى الأمر عليك أي طريقة تختار لذلك لا يمكنني ترشيح أي طريقة تريد العمل بها ، و لكن بكل الأحوال يمكنك أيضا من حذف الرسائل التي مضى عليها وقت طويل بشكل أتوماتيك
  3. يبدو أنك لم تفهم ما قصدته سأرفق لك مثلاً يوضح هذا الأمر $user_id = 1; // Connect to the database $conn = mysqli_connect("hostname", "username", "password", "database_name"); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // Prepare the update query $query = "UPDATE table_name SET message = '' WHERE user_id = $user_id"; // Execute the query $result = mysqli_query($conn, $query); // Check if the query was successful if ($result) { echo "Column message emptied successfully"; } else { echo "Error: " . $query . "<br>" . mysqli_error($conn); } // Close the connection mysqli_close($conn); لاحظ انه يتم تفريغ حقل message لليوزر بناء على id لخاص به ، أي عندما تقوم بإرسال رسالة إلى جميع الأعضاء يجب عليك تخزين هذه الرسالة في حقل message و من ثم عندما يقوم المستخدم بقراءة هذه الرسالة يمكنه تفريغ هذا الحقل message بناء على id الخاص به .
  4. يجب عليك في وقتها بان تكون بتخزين الرسالة في حقل messages مثلاُ في جميع الاعضاء وبالتالي اليوزر الذي يرى هذه الرسالة يمكنه من تفريغ قيمة الحقل messages لديه فقط
  5. هناك العديد من الإضافات على VS Code تستخدم لتنقيح الكود و إظهار تحذيرات أو الأخطاء في الكود و ربما يكون هذا شيء خاطئ لذلك إذا كان الكود يعمل فحاول إزالة أي إضافة لا تريدها في VS Code .
  6. إذا كان المكون الذي تعمل معه منفصلاً عن مثيل Vue الجديد ، فلن يتمكن من الوصول إلى نظام تفاعل Vue. هذا يعني أنك إذا أجريت تغييرات على البيانات الموجودة في المكون ، فلن تنعكس التغييرات في طريقة العرض تلقائيًا. للاستفادة من نظام تفاعل Vue ، ستحتاج إلى إنشاء مثيل Vue جديد واستخدام المكون داخل هذا المثال. من خلال إنشاء مثيل Vue جديد ، يمكنك استخدام بيانات وأساليب تفاعلية داخل المكون. على سبيل المثال ، يمكنك تخزين بيانات الرسالة في خاصية تفاعلية واستخدامها في النموذج. عند إجراء تغييرات على البيانات ، سيتم تحديث العرض تلقائيًا ليعكس هذه التغييرات. هذا يجعل بناء واجهات مستخدم ديناميكية وتفاعلية أسهل بكثير. بالإضافة إلى ذلك ، باستخدام مثيل Vue جديد ، يمكنك الاستفادة من ميزات Vue الأخرى ، مثل خطافات دورة الحياة lifecycle hooks ، والخصائص المحسوبة computed properties ، والأحداث المخصصة custom events ، والتي يمكن أن تجعل التعليمات البرمجية الخاصة بك أكثر تنظيماً وقابلية للصيانة.
  7. فيما يلي كود PHP بسيط يسمح للمستخدم بحذف رسالة مرسلة إلى جميع المستخدمين: <?php // Connect to the database $db = mysqli_connect("host", "username", "password", "database"); // Check if the user has submitted the form if (isset($_POST['delete'])) { // Get the message id from the form $id = $_POST['id']; // Delete the message from the database $sql = "DELETE FROM messages WHERE id='$id'"; mysqli_query($db, $sql); // Redirect the user back to the messages page header("Location: messages.php"); exit; } // Get the message id from the URL $id = $_GET['id']; // Retrieve the message from the database $sql = "SELECT * FROM messages WHERE id='$id'"; $result = mysqli_query($db, $sql); $message = mysqli_fetch_assoc($result); ?> <!-- Display the message and the delete form --> <h2><?php echo $message['subject']; ?></h2> <p><?php echo $message['body']; ?></p> <form action="" method="post"> <input type="hidden" name="id" value="<?php echo $id; ?>"> <input type="submit" name="delete" value="Delete"> </form> يستخدم هذا البرنامج النصي قاعدة بيانات MySQL لتخزين الرسائل. ستحتاج إلى استبدال "المضيف" و "اسم المستخدم" و "كلمة المرور" و "قاعدة البيانات" بالقيم المناسبة لإعدادك. عندما يرسل المستخدم النموذج ، يتم حذف الرسالة من قاعدة البيانات وإعادة توجيه المستخدم مرة أخرى إلى صفحة الرسائل. إذا لم يرسل المستخدم النموذج ، يقوم البرنامج النصي باسترداد الرسالة من قاعدة البيانات ويعرضها مع نموذج الحذف.
  8. تواصل مع الإدارة من الحساب الذي تستخدمه الأن و تخبرهم بمشكلتك سوف يعملون على حل مشكلتك بأسرع وقت
  9. لن تستطيع استخدامه و يجب عليك استخدام حساب آخر و وتم إيقافه يعني أنه لن تستطيع استخدامه مرة أخرى .
  10. هذا يعني أنه حسابك قد يكون خالف بعض الأنظمة الخاصة بالإكاديمية لذلك تم إيقافه
  11. نعم ، يبدو أن الرمز صحيح. إنه برنامج بسيط يتيح لك البحث عن رقم هاتف أو اسم وإضافة مستخدمين جدد. ومع ذلك ، هناك بعض الأشياء التي يمكن تحسينها: في دالة search_by_phone_number ، الشرط أثناء while len(phone_number) != 10 and not int(phone_number) سيتم تقييمه دائمًا إلى True لأن عامل التشغيل يتطلب أن يكون كلا الشرطين صحيحًا not int(phone_number) سيكون دائمًا صحيحًا كما int(phone_number) إلى ValueError إذا لم يكن phone_number عددًا صحيحًا. لا يتعامل الرمز مع الأخطاء التي قد تحدث ، مثل إذا قام المستخدم بإدخال رقم هاتف غير صحيح في دالةsearch_by_phone_number. لا يتعامل الرمز مع التكرارات ، لذا فإن إضافة مستخدم برقم هاتف أو اسم موجود بالفعل سيؤدي إلى إضافة نفس رقم الهاتف أو الاسم عدة مرات.
  12. فيما يتعلق بالرسالة التي تشير إلى تلف المقطع ، فمن المحتمل أن يكون ذلك بسبب عدم فك تشفير الفيديو أو كتابته بشكل صحيح في الملف. لإصلاح هذه المشكلة ، يمكنك محاولة استخدام مكتبة مثل flutter_video_compress أو video_player لفك تشفير الفيديو وتشغيله. import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:flutter_video_compress/flutter_video_compress.dart'; import 'package:path_provider/path_provider.dart'; import 'package:video_player/video_player.dart'; class DownloadPage extends StatefulWidget { @override _DownloadPageState createState() => _DownloadPageState(); } class _DownloadPageState extends State<DownloadPage> { TextEditingController _linkController = TextEditingController(); VideoPlayerController _videoPlayerController; bool _isLoading = false; double _progress = 0; Future<void> _downloadVideo(String link) async { setState(() { _isLoading = true; }); final directory = await getTemporaryDirectory(); final tempPath = directory.path + '/temp_video.mp4'; var response = await http.get(Uri.parse(link)); var file = File(tempPath); await file.writeAsBytes(response.bodyBytes); final videoCompress = FlutterVideoCompress(); final result = await videoCompress.compressVideo(tempPath, quality: VideoQuality.LowQuality); final videoPath = result["videoPath"]; _videoPlayerController = VideoPlayerController.file(File(videoPath)) ..initialize().then((_) { setState(() {}); }); setState(() { _isLoading = false; _progress = 0; }); showDialog( context: context, builder: (context) => AlertDialog( title: Text('Download Complete'), content: Text('Video has been saved to $videoPath'), actions: [ ElevatedButton( child: Text('OK'), onPressed: () { Navigator.of(context).pop(); }, ), ], ), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Download Video'), ), body: Padding( padding: EdgeInsets.all(16.0), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ TextField( controller: _linkController, decoration: InputDecoration( hintText: 'Enter YouTube link', ), ), SizedBox(height: 16.0), _isLoading ? Column( children: [ LinearProgressIndicator( value: _progress, ), SizedBox(height: 16.0), Text('$_progress %'), ], ) : ElevatedButton( child: Text('Download'), onPressed: () { _downloadVideo(_linkController.text); }, ), ], ), ), ); } }
  13. يمكن لأجهزة الكمبيوتر الاتصال مباشرة بأجهزة التوجيه ، ولكن هناك حالات يتم فيها الاتصال من خلال المحولات switches أولاً. يستخدم هذا السيناريو الأخير عادةً لتحسين أداء الشبكة ، عن طريق توصيل أجهزة الكمبيوتر مباشرة بالمحولات switches ، وتوصيل المحولات ببعضها البعض مباشرة لتوجيه أجهزة الكمبيوتر عبر أجهزة التوجيه.
  14. مرحباً محمد ، يعمل المودم في الطبقة المادية لنموذج OSI (Open Systems Interconnection). الطبقة المادية مسؤولة عن نقل بتات البيانات الخام عبر قناة اتصال.
  15. لجدولة مهام cron لنظام طابور Laravel ، يمكنك استخدام الأمر php لتشغيل أوامر قائمة انتظار Artisan. فيما يلي تعبيرات وظيفة cron لكل أمر: queue: work: يتم تشغيل هذا الأمر بشكل مستمر لمعالجة الوظائف الجديدة المضافة إلى قائمة الانتظار. يمكنك تشغيل هذا الأمر كل دقيقة في مهمة cron الخاصة بك للتأكد من أنه يعمل دائمًا: * * * * * php /path/to/your/project/artisan queue:work queue:restart ( إعادة التشغيل): يقوم هذا الأمر بإعادة تشغيل عامل قائمة الانتظار قيد التشغيل حاليًا. يمكنك تشغيل هذا الأمر كل ساعة للتأكد من إعادة تشغيل عامل قائمة الانتظار بانتظام: 0 * * * * php /path/to/your/project/artisan queue:restart queue:retry all: (أعد محاولة الكل): يعيد هذا الأمر محاولة جميع المهام الفاشلة في قائمة الانتظار. يمكنك تشغيل هذا الأمر كل يوم في منتصف الليل لإعادة محاولة أي مهام فاشلة: 0 0 * * * php /path/to/your/project/artisan queue:retry all ملاحظة: استبدل المسار /path/to/your/project/ بالمسار الفعلي لمشروع Laravel الخاص بك. لإضافة وظائف cron هذه ، يمكنك استخدام أداة crontab عن طريق تشغيل الأمر التالي في جهازك الطرفي: crontab -e. سيؤدي هذا إلى فتح ملف مهمة cron للتحرير ، ويمكنك إضافة التعبيرات لكل أمر واحدًا تلو الآخر ، كل في سطر جديد.
  16. فيما يلي خطوات نشر Laravel في Hostinger: قم بالتسجيل للحصول على حساب Hostinger. أنشئ استضافة PHP جديدة وحدد الخطة التي تختارها. قم بتسجيل الدخول إلى Hostinger cPanel وأنشئ قاعدة بيانات لتطبيق Laravel الخاص بك. اتصل بحسابك عبر عميل FTP وقم بتحميل ملفات Laravel على الخادم. انتقل إلى File Manager في cPanel وانتقل إلى مجلد Laravel . أعد تسمية .env.example إلى .env واملأ التفاصيل الضرورية (قاعدة بيانات ، بريد إلكتروني ، إلخ). افتح Terminal عبر cPanel وانتقل إلى مجلد Laravel . قم بتشغيل الأمر التالي لتثبيت التبعيات: "composer install" قم بتشغيل الأمر التالي لإنشاء مفتاح تطبيق: "php artisan key:generate" أخيرًا ، قم بالوصول إلى موقع الويب الخاص بك عبر المتصفح لرؤية تطبيق Laravel الخاص بك .
  17. صحيح حتى يتم مناداة الوظائف كلها . صحيح هذا يتم مناداته كل 31 من الشهر
  18. لإضافة وظيفة Laravel cron إلى الخادم الافتراضي الخاص ، اتبع الخطوات التالية: أفتح SSH في VPS الخاص بك. قم بتشغيل الأمر crontab -e. هذا يفتح ملف crontab للتحرير. أضف سطرًا جديدًا إلى الملف بالتنسيق التالي: * * * * * php /path/to/your/laravel/app/artisan schedule:run >> /dev/null 2>&1 حفظ الملف وإنهاء المحرر. اختبر وظيفة cron عن طريق تشغيل crontab -l. يجب أن يتم سرد الوظيفة الجديدة. ملاحظة: استبدل "/ path / to / your / laravel / app" بالمسار الفعلي لتطبيق Laravel على الخادم. المثال أعلاه يدير جدولة مهام Laravel كل دقيقة. يمكنك ضبط الجدول حسب الحاجة عن طريق تعديل النجوم في إدخال crontab.
  19. لن يؤثر تعيين set header كتعليق في الكود على وظيفة الكود ، حيث سيتجاهل المتصفح التعليقات. الغرض من إضافة التعليقات إلى الكود هو تقديم التفسيرات والتعليقات التوضيحية للمساعدة في صيانة وفهم الكود.
  20. البداية الصحيحة للمشروع الريادي هي الإدارة الجيدة، والإبداع في الأفكار، وتحقيق الفرصة التجارية المناسبة، وتجهيز الموارد اللازمة لتحقيق النجاح.
  21. قد يكون من المفيد كتابة التعليمات البرمجية جنبًا إلى جنب مع موجه أو مدرب ، حيث يمكن أن تساعدك على تعلم وتحسين مهاراتك بشكل أكثر فعالية. يمكن للمدرب تقديم التوجيه والملاحظات حول التعليمات البرمجية الخاصة بك ، مما يساعدك على فهم أفضل الممارسات والعثرات الشائعة التي يجب تجنبها. يمكنهم أيضًا مساعدتك على فهم الأسباب الكامنة وراء قرارات معينة ومساعدتك في استكشاف أي مشكلات قد تواجهها وإصلاحها. من ناحية أخرى ، فإن مجرد كتابة التعليمات البرمجية دون أي توجيه أو ملاحظات قد لا تكون فعالة في التعلم والتحسين. من المهم أن يكون لديك شخص يمكنه تقديم الملاحظات ومساعدتك على فهم المفاهيم والأسباب الكامنة وراء الكود. ومع ذلك ، فإنه يعتمد في النهاية على أسلوب التعلم الخاص بك وأهدافك. إذا كنت تفضل الدراسة الذاتية وكنت مرتاحًا للتعلم بمفردك ، فقد تجد أن كتابة الكود بمفردك أمر فعال بالنسبة لك. إذا كنت تفضل المزيد من الإرشادات والتعليقات ، فقد يكون العمل مع مدرب أو موجه أكثر فائدة.
  22. تُستخدم مجموعات الملفات في قاعدة البيانات لتقسيم البيانات وملفات السجل لقاعدة البيانات إلى وحدات مادية منفصلة ، والتي يمكن استخدامها لإدارة وتحسين أداء قاعدة البيانات. مجموعة الملفات الأساسية هي مجموعة الملفات الافتراضية في قاعدة البيانات ، وتحتوي على ملف البيانات الأساسي وملف سجل العمليات. مجموعات الملفات الثانوية أو المعرفة من قبل المستخدم هي مجموعات ملفات إضافية يمكن إنشاؤها داخل قاعدة بيانات ، ويتم استخدامها لتخزين ملفات بيانات إضافية. يمكن استخدام مجموعات الملفات هذه لتخزين أنواع معينة من البيانات أو لفصل البيانات لأسباب تتعلق بالأداء أو الإدارة. تُستخدم مجموعات الملفات المحسّنة للذاكرة لتخزين الجداول والفهارس المحسّنة للذاكرة ، وهي ميزة جديدة في SQL Server تسمح بوصول أسرع إلى البيانات باستخدام تقنية الذاكرة. تُستخدم مجموعات ملفات FILESTREAM لتخزين بيانات FILESTREAM ، وهي ميزة في SQL Server تسمح بتخزين البيانات الثنائية الكبيرة (مثل الصور أو مقاطع الفيديو) في نظام الملفات ، مع الحفاظ على ارتباط البيانات في قاعدة البيانات لاتساق المعاملات. باستخدام مجموعات الملفات ، يمكنك: تحسين الأداء من خلال فصل البيانات والفهارس إلى مجموعات ملفات مختلفة ، ووضعها على أجهزة مادية مختلفة. إنشاء نسخ احتياطية متعددة لمجموعات فرعية من قاعدة البيانات عن طريق نسخ مجموعات ملفات مختلفة احتياطيًا. استعادة البيانات بشكل أسرع عن طريق استعادة مجموعات ملفات معينة بدلاً من استعادة قاعدة البيانات بأكملها. التحكم في وضع ملف البيانات وملفات السجل الخاصة بك ، والتي يمكن أن تكون مفيدة للأمان والامتثال التنظيمي وسيناريوهات التعافي من الكوارث.
  23. يمكنك تعديل التعليمات البرمجية لقراءة صف تلو الآخر باستخدام حلقة للتكرار خلال صفوف ورقة العمل ، ثم استخدام ]دالة iter_rows () داخل الحلقة للوصول إلى قيم كل صف. فيما يلي مثال لكيفية تعديل الكود: DB = load_workbook("AAA.xlsx") DS = DB["ABC"] for row in range(1,DS.max_row + 1): A = DS.iter_rows(row, row, values_only=True) for item in A: list = [item[5], item[6]] print(list) في هذا المثال ، تتكرر الحلقة الخارجية عبر صفوف ورقة العمل باستخدام الدالة range () ، وتتكرر الحلقة الداخلية عبر قيم كل صف باستخدام الدالة iter_rows (). يتم استدعاء الدالة iter_rows () برقم الصف الحالي كوسيطات لمعلمات min_row و max_row ، لذلك فهي تصل فقط إلى قيم الصف الحالي.
  24. لدى Snapchat سياسات وإرشادات إعلانية صارمة يجب أن تلتزم بها جميع الإعلانات حتى تتم الموافقة عليها وتشغيلها على النظام الأساسي. على الرغم من أنك ذكرت أنك لم تنتهك أيًا من سياسات Snap وحتى أنك استخدمت نموذجًا مقدمًا من Snapchat لإعلانك ، فقد لا تزال هناك عدة أسباب لرفض إعلانك. فيما يلي بعض الأسباب المحتملة لرفض إعلانك: مشاكل الجودة: قد لا يفي إعلانك بمعايير الجودة الخاصة بـ Snapchat ، مثل جودة الفيديو الرديئة أو الصور منخفضة الدقة أو الرسائل غير الواضحة. الملاءمة: قد لا يكون إعلانك ملائمًا للجمهور الذي تستهدفه أو قد لا يكون مناسبًا للمنصة. التضليل: قد يحتوي إعلانك على معلومات خاطئة أو مضللة تنتهك سياسات Snapchat. المحتوى المحظور: قد يحتوي إعلانك على محتوى محظور ، مثل المنتجات أو الخدمات غير القانونية أو الكلام الذي يحض على الكراهية أو اللغة المسيئة. المشكلات الفنية: قد تكون هناك مشكلات فنية في إعلانك ، مثل التنسيق غير المناسب أو أنواع الملفات غير الصحيحة. من المهم ملاحظة أن سياسات وإرشادات Snapchat عرضة للتغيير ، وربما تم رفض إعلانك لسبب لم يتم تغطيته من قبل بواسطة سياساتهم. في هذه الحالة ، يجب عليك التحقق من حساب الإعلان والتأكد من أن كل شيء نشط ، وفي حالة وجود أي أسئلة أو مخاوف ، يمكنك الاتصال بفريق دعم Snapchat ، وسيكونون قادرين على تقديم المزيد من المعلومات والإرشادات حول سبب رفض إعلانك وكيفية اصلاحها. من المهم أيضًا ملاحظة أن بعض الصناعات ، مثل العزل المنزلي ، لديها قيود ولوائح أكثر من غيرها ، لذلك من الضروري التأكد من أن إعلانك يتوافق مع اللوائح والقوانين المحلية والدولية أيضًا.
  25. الاختبار يكون عن مشروع تقومين بتنفيذه بناء على ما يطلبه المدرب ، و لكن إذا كانت لديك استفسارات يمكنك التواصل مع الدعم الفني و سيعملون على إجابتك بأفضل صورة ممكنة.
×
×
  • أضف...