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

بلال زيادة

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

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

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

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

    30

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

  1. san هي شبكات منطقة التخزين و nas هي التخزين المتصل بالشبكة ، و دعينا نحدد ما هم تعد SAN (شبكات منطقة التخزين) و NAS (التخزين المتصل بالشبكة) كلاهما من حلول تخزين الشبكة وتبدو متشابهة للوهلة الأولى في كثير من الحالات يمكن استخدامها أيضًا في بيئات مماثلة كلاهما يستخدم عادة RAID وكلاهما يوفر عددًا من ميزات إدارة التخزين والحماية في حل قائم على السحابة يتم دعم كل من SAN و NAS ، مما يسمح للمستخدمين باختيار البنية الأكثر منطقية بالنسبة لهم. SAN مقابل NAS: الاتصال والبروتوكولات عند كل من SAN و NAS في واحد بيئة البنية التحتية مدعومة ، يتمتع المستخدمون بالمرونة للاستفادة من كليهما عند الحاجة. عادةً ما تستخدم SANs ملف قناة الألياف اتصال ، في حين تستخدم حلول NAS عادة واحدة شبكة TCP / IP، مثل إيثرنت. لكن الفرق الحقيقي يكمن في الطريقة التي يتم بها تناول البيانات. يوفر SAN الوصول إلى كتل البيانات التي تشكل الملفات ، بينما توفر NAS الوصول إلى البيانات كملفات كاملة. سيقوم مهندسو التخزين باختيارهم بناءً على نوع البيانات التي يتم تخزينها وأي بنية توفر أعلى مستوى من الأداء.
  2. مرحباً صابر ، عليك تحديد أولاً ما هي اللغة التي تريد تعلمها مثل ionic , dart , cordova, java , swift أو أي لغة يمكنك من خلالها إنشاء تطبيق موبايل ، و من ثم يجب عليك البدأ في تعلم اساسيات هذه اللغة و من ثم محاولة تطبيق دروس قد تجدها في كثير من المراجع و يمكنك ايضا الالتحاق بالدورات لتزيد من مهاراتك. بالتوفيق
  3. يجب التأكد من أن ملف google-services.json بنفس الأسم بحيث لا يكون مثلاً google-services (1).json ثم يجب عليك التأكد من إضافة المكتبة التالي في ملف pubspec.ymal firebase_core: ^1.20.0 ثم في ملف build.gradle يجب وضع السطر التالي classpath 'com.google.gms:google-services:4.3.13' في أوبجكت dependencies ثم في مسار android\app\build.gradle يجب وضه السطر التالي apply plugin: 'com.google.gms.google-services' أسفل apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
  4. حاول جلب المكتبة التالية firebase_core: ^1.20.0 و اخبرني بالنتيجة لو سمحت ؟
  5. حاول استخدام cmd بحيث تقوم بالدخول إلى مجلد android في مجلد المشروع E:\car_wash\android ثم يمكنك تنفيذ الأمر التالي gradlew signReport ستظهر لك جميع SHA.
  6. نعم قم بإرسال الكود لو سمحت.
  7. حاول وضع الويدجت الخاص بأيقونة العين داخل ويدجت Expanded أو Flexible ، كمثال على ذلك Row( children:[ Expanded( child: // Any Widget Here ) ] ) أو باستخدام Flexible Row( children:[ Flexible( child: // Any Widget Here ) ] )
  8. في دالة BottomNavigationBarItem يمكنك وضع لون الخلفية للون الأحمر بهذا الشكل BottomNavigationBarItem( backgroundColor: Colors.red, icon: Icon(Icons.add_chart_sharp), label: "one", ), بخصوص المشكلة الثانية و هي عدم الأنتقال إلى الصفحات عند الضغط على الأيقونات أسفل ، لأنه لم تقوم بوضع صفحات للتنقل عليها فيمكنك إنشاء List بهذا الشكل final pages = [ const Page1(), const Page2(), const Page3(), const Page4(), ]; ووضع في body هذه القائمة بهذا الشكل body: pages[pageIndex], و الصفحات ممكن أن تكون class Page1 extends StatelessWidget { const Page1({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 1", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } class Page2 extends StatelessWidget { const Page2({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 2", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } class Page3 extends StatelessWidget { const Page3({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 3", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } class Page4 extends StatelessWidget { const Page4({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 4", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } فيكون كامل الكود import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return const MaterialApp( debugShowCheckedModeBanner: false, title: 'Welcome to Flutter', home: NewTest()); } } class NewTest extends StatefulWidget { const NewTest({Key? key}) : super(key: key); @override State<NewTest> createState() => _NewTestState(); } class _NewTestState extends State<NewTest> { @override Widget build(BuildContext context) { int _selectedIndex = 0; final pages = [ const Page1(), const Page2(), const Page3(), const Page4(), const Page4(), ]; void _onItemTapped(int index) { setState(() { _selectedIndex = index; }); } return Scaffold( appBar: AppBar(), drawer: const Drawer(), body: pages.elementAt(_selectedIndex), bottomNavigationBar: BottomNavigationBar( items: const [ BottomNavigationBarItem( backgroundColor: Colors.red, icon: Icon(Icons.add_chart_sharp), label: "one", ), BottomNavigationBarItem( backgroundColor: Colors.red, icon: Icon(Icons.add_chart_sharp), label: "two", ), BottomNavigationBarItem( icon: Icon(Icons.add_chart_sharp), label: "three", ), BottomNavigationBarItem( icon: Icon(Icons.add_chart_sharp), label: "foure", ), BottomNavigationBarItem( icon: Icon(Icons.add_chart_sharp), label: "five", ) ], // styles unselectedItemColor: Colors.black, selectedItemColor: Colors.blue, showUnselectedLabels: true, showSelectedLabels: true, // onTap doesn't working onTap: _onItemTapped, currentIndex: _selectedIndex, ), ); } } class Page1 extends StatelessWidget { const Page1({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 1", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } class Page2 extends StatelessWidget { const Page2({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 2", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } class Page3 extends StatelessWidget { const Page3({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 3", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } } class Page4 extends StatelessWidget { const Page4({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container( color: const Color(0xffC4DFCB), child: Center( child: Text( "Page Number 4", style: TextStyle( color: Colors.green[900], fontSize: 45, fontWeight: FontWeight.w500, ), ), ), ); } }
  9. هل يمكنك إرفاق كامل كود الصفحة لو سمحت ؟
  10. سيتم الرد عليك لا تقلق
  11. هناك رسائل دعم فني كثيرة لذلك يحتاج الدعم الفني إلى مزيداً من الوقت للرد على هذه الرسائل ، يمكنك إعادة الكتابة لهم و سوف يردون عليك بأسرع وقت ممكن .
  12. يبدو أنك تقوم بجلب بيانات من api ما أو ما شابه ، و قد يكون هذا api معطل أو ممنوع الوصول إليه ، تأكد من صحة الرابط ، أو يمكنك إرفاق الكود الذي تتوقع بإنه مسبب المشكلة.
  13. ايضاً بنفس الحالة يمكنك استخدام الشرط بحيث عندما يكون الاسم في الاستعلام كما تريد تقوم بجلب id الخاص به بهذا الشكل <?php /////////// هنا if($row['item_name'] == 'بطانية البالغين'){ echo $row['id']; } /////////// هنا ?>
  14. لاحظ يمكنك تنفيذ الشرط داخل حلقة التكرار while بهذا الشكل <?php $i = 0; while ($row = mysqli_fetch_assoc($sel_sub)) { $i++ ?> <tr> <td> <?php echo $i ?> </td> <?php /////////// هنا if($i == 11){ echo $row['item_name']; } /////////// هنا ?> <td> <?php echo $row['item_name'] ?> </td> </tr> <?php } ?> </table> <?php echo '<pre>'; echo 'رقم البند بطانية للبالغين هو' ; echo '</pre>'; ?>
  15. يمكنك من خلال index حلقة التكرار فعل هذا الأمر بحيث لو كان لديك الاستعلام سوف تقوم بعمل حلقة تكرار عليه لتقوم بجلب النتائج مثل <?php for($i=0; $i < count($sel_sub); $i++) { if($i == 11){ // هنا تقوم بجلب القيمة الخاصة بالنتيجة رقم 11 } }
  16. هل قمت بالتأكد من إزالة الدالة ()dd أو يمكنك إزالة الكاش ( الملفات المؤقتة ) من المشروع من خلال الأمر التالي php artisan optimize:clear ثم محاولة تشغيل و نداء مسار التوجيه مرة أخرى .
  17. لاحظ أنه المسار الذي تريد التعامل معه هو مسار من نوع POST و ليس من مسار GET لذلك يجب تحديد نوع الطلب المرسل بِ POST مثل <form action="{{ route(هنا مسار التوجيه) }}" method="POST"></form> لاحظ أن الخاصية method="POST" فيها نقوم بتحديد نوع الطلب الذي نرسله ليتم التعرف على المسار.
  18. إن تقصدي HTTP methods هي الفروقات بينهم GET : لطلب البيانات من الخادم عادةً ما يتم إرسال البارميتر في عنوان URL تظهر البيانات المرسلة فى url تبقى طلبات GET في سجل المتصفح تُستخدم طلبات GET فقط لطلب البيانات (وليس التعديل) طلبات GET لها قيود الطول(لها طول معين) يمكن وضع إشارة مرجعية على طلبات GET يمكن تخزين طلبات GET مؤقتًا(داخل الcache) post لنشر البيانات على الخادم عادةً يتم إرسال البيانات في ال body لا تظهر البيانات المرسلة فى ال url لا يتم تخزين طلبات POST أبدًا(لا يتم وضعها داخل الcash) لا تبقى طلبات POST في محفوظات المتصفح لا يمكن وضع إشارة مرجعية على طلبات POST طلبات POST ليس لها قيود على طول البيانات
  19. إن السطر: imagettftext($image, 25, 0, 25, 110, $color, 'Roboto-Regular.ttf', 'PHP:hypertext processor'); معناه أنني اريد كتابة النص "PHP:hypertext processor" على الصورة بحجم خط 25 باللون color و الإحداثيات x و y، و نوع الخط سيكون font.ttf. و هذا هو وصف الدالة في التوثيق الرسمي: imagettftext( GdImage $image, float $size, float $angle, int $x, int $y, int $color, string $font_filename, string $text, array $options = [] ): array|false font_filename يُشير إلى مسار ملف الخط الذي تريد أن تكتب به على الصورة. هل لديك بجانب السكربت ملف خط بالاسم Roboto-Regular.ttf أم لا؟ يجب أن يتواجد ملف خط حتى تعمل الدالة، يُمكنك تحميل ملف خط من خلال موقع google fonts و استخراج ملف الخط الذي تريد استخدامه و وضع مساره ضمن استدعاء الدالة، يُمكنك مثلاً استخدام ملف الخط التالي: Roboto-Regular.ttf و وضعه بجانب السكربت ثم تمرير الاسم للدالة بالشكل: imagettftext($image, 25, 0, 25, 110, $color, 'Roboto-Regular.ttf', 'PHP:hypertext processor');
  20. أعتقد لو تعاملت بين الموقعين باستخدام api سيكون أفضل بكثير ، بحيث الموقع الأول يقوم بإرسال ما يريده للموقع الثاني من خلال API و الموقع الثاني يقوم بالتعامل مع البيانات المرجعة من api و عرضها كما يريد، هذا برأيي أفضل شيء لمنع استخدام بيانات الموقع الأول إلا في الموقع الثاني
  21. بيكون أنتا مستخدم أيقونة مدفوعة لهيك بيظهر مربع بدلاً منها .
  22. يجب إزالة العنصر التالي <i class="fa-light fa-globe"></i> و كتابة العنصر بشكل صحيح <i class="fa fa-globe"></i>
  23. هل يمكنك إرفاق ملفات مشروعك ؟
  24. ما هو الإصدار الذي تستخدمه حالياً ؟
×
×
  • أضف...