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

لوحة المتصدرين

  1. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      5

    • المساهمات

      6975


  2. Sam Ahw

    Sam Ahw

    الأعضاء


    • نقاط

      2

    • المساهمات

      1388


  3. بلال زيادة

    بلال زيادة

    الأعضاء


    • نقاط

      1

    • المساهمات

      4376


  4. صالح قريشه

    صالح قريشه

    الأعضاء


    • نقاط

      1

    • المساهمات

      305


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 06/02/22 في كل الموقع

  1. السلام عليكم من فترة وانا كنت اعمل على السى شارب وكنت بجلب منها بيانات باداة الويب براوزر يعنى مثلا بجلب جروبات الفيس بوك او فيدويهات قناة تشغيل وبضعهم داخل ليست بوكس كمثل هذه الاضافة https://www.youtube.com/watch?v=4FfnYPCLpus ويمكن ظللت سنوات عشان اعرف هل فعلا الجافا اسكريبت بتعمل هذا أم لا ولو بتعمل فهل هناك شرح لهذا أم لا ؟ ولم أجد اى اجابة إلا لما سمعت بموقعكم
    1 نقطة
  2. لعلى من ابرز ايجابيات اطار electron هو تعامل التطبيق مع النت سؤالي ماهي الوحده او كيف يمكنني ارسال واستقبال بيانات بين تطبيقين عن طريق النت او حتى على شبكه محليه
    1 نقطة
  3. إن المنطق وراء ربط عدة مستخدمين مع بعضهم يكمن في أن لهم جميعاً قاعدة بيانات واحدة، ويوجد بيانات فيها مشتركة (على الأقل قابلة للقراءة منهم جميعاً). أي حتى يصبح تطبيقك قابل لتبادل البيانات مع غير مستخدمين، سيتوجب عليك الحصول على قاعدة بيانات على الانترنت ومخدم لها عنوان انترنت مشترك يتصل به جميع المستخدمين. يوجد الكثير من قواعد البيانات، ولنفرض أن لديك قاعدة من نوع MySQL لتطبيقك على استضافة. ما تحتاج عمله في تطبيقك هو تنصيب الوحدة الموافقة لقاعدة البيانات تلك، ثم إجراء العمليات: تهيئة الاتصال مع قاعدة البيانات تنفيذ الاستعلامات من قبل المستخدمين تنصيب الحزمة الخاصة ب mysql npm install mysql ثم تضمين الوحدة، و تهيئة الاتصال و عمل استعلام var mysql = require('mysql'); // إضافة معلومات المستخدم للاتصال على قاعدة البيانات var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : null, // password database : 'my-database-name' }); // الاتصال connection.connect(function(err) { // حدوث خطأ if(err){ console.log(err.code); console.log(err.fatal); } }); // تعريف الالة التي تجلب الاستعلام function get_10_Rows(callback){ // استعلام افتراضي $query = 'SELECT * FROM `Tasks` LIMIT 10'; connection.query($query, function(err, rows, fields) { if(err){ console.log("An error ocurred performing the query."); // حصول خطأ console.log(err); return; } console.log("Query succesfully executed", rows); // نجاح الاستعلام }); // اغلاق الاتصال connection.end(function(){ }); } ناتج الاستعلام يعود من خلال المتغير rows. <script> // عند النقر على زر معين document.getElementById('action-btn').addEventListener('click', function(){ // استدعاء دالة جلب أول 10 مهام // rows فيها النتيجة get_10_Rows(function(rows){ var html = ''; rows.forEach(function(row){ html += '<tr>'; html += '<td>'; html += row.id; html += '</td>'; html += '<td>'; html += row.name; html += '</td>'; html += '</tr>'; console.log(row); }); // حقن النتيجة في الجدول document.querySelector('#table > tbody').innerHTML = html; }); },false); </script> كانت هذه طريقة التواصل مع قاعدة بيانات مباشرة، يمكنك عمل خادم ويب مثل EXPRESS والاتصال معه عبر API ليعمل عبر الشبكة المحلية، يتوجب الاتصال على IP الحاسوب المحلي الذي فيه مخدم قواعد البيانات mysql , وضعه مكان host في جزء تهيئة الاتصال مع تحديد منفذ 3306. var connection = mysql.createConnection({ host : ' 192.168.1.2', IP port : '3306', MySQL port
    1 نقطة
  4. عندما أقوم بطباعة الـ item_id في صفحة ال index يعطيني قيم صحيحة لكل المنتجات؛ واذا قمت بتخزين هذه القيم فى متغير وارسلتها لصفحة اخري للمعالجة تعطيني قيمة واحدة فقط(أول قيمة ) HTML <i class="fas fa-heart"></i> <input type="hidden" class="item" value="<?php echo $value['item_id']; ?>"> <input type="hidden" class="user" value="<?php echo $value['user_id']; ?>"> <input type="hidden" id="favouriteInput" value="1"> اذا طبعت قيمة الـ item_id تأتي بأرقام مختلفة هى أرقام الـ items <?php echo $value['item_id']; ?> واذا ارسلتها لصفحة اخري عن طريق كود اجاكس هكذااجاكس $(document).ready(function(){ //ajax call favourites in Homepage $(".fa-heart").on("click", function(){ var Favourite=$('#favouriteInput').attr('value'); var Item=$('.item').attr('value'); var User=$('.user').attr('value'); $.ajax({ url:"favourite.php", data:{favourite:Favourite,item:Item,user:User}, success: function(data){ } }); }); =========================== <?php if (isset($_GET['favourite']) && $_GET['item'] && $_GET['user'] ) { $favourite=$_GET['favourite']; $item =$_GET['item']; $user =$_GET['user']; echo $item =$_GET['item']; تكون النتيجة رقم واحد فقط (الـ item_id) الخاض باول منتج }
    1 نقطة
  5. عند الضغط عللى الزر حفظ سوف ينفذ هذا التابع ويحفظ المعلومات داخله في قاعدة البيانات أريد أن يحفظ جزء من المعلومات مثل الإسم والرقم والتاريخ في صفحة أخرى بطريقة الحفظ في التخزين المحلي عند كل إضافة كيف أفعل ذلك ؟ const _singpRoom=()=>{ (async()=>{ const { Numberofroom, NameOfroom, date, QrCodevalue}=formData; const QrCode=QrCodevalue; const body={ Numberofroom, NameOfroom, date, QrCode } try{ const response= axios.post(CREATEROOM_URL,body); console.log(body); setFormData({ NameOfroom:'', Numberofroom:'', date:'', QrCode:'' }); const List ={ id: new Date(), NameOfroom:NameOfroom, Numberofroom: Numberofroom, date: date } const updateList =[...Lists,List]; setList(updateList); props.navigation.navigate('ListRoom'); }catch(e){ } })(); }
    1 نقطة
  6. السلام عليكم كنت عايز اربط الملفات html وCSSو JavaScript وعرض النتيجة النهائية في موقع ويب
    1 نقطة
  7. أجد في بعض المكتبات أنه يمكن إستدعاء أكثر من تابع بشكل متتالي، بحيث يتنهي التابع الأول من التنفيذ ويبدأ التابع الثاني بشكل مباشر بدون الحاجة إلى الإضافة إلى الكائن Object في كل مرة : $obj = new ObjectWithMethods(); $obj->doSomething()->doSomethingElse(); كيف يمكن إضافة مثل هذه الميزة إلى صنف Class في PHP؟
    1 نقطة
  8. صحيح، إن expo يقوم بتوليد هذه الملفات لاحقاً، أي طريقة بناء المشروع وهرميته مختلفة قليلاً، يمكنك إضافة الصلاحيات Permissions من خلال app.json ضمن تطبيقات EXPO و التوثيق التالي يشرح الأمر expo permissions #android expo config permissions حيث أن الطريقة هي عمل مفتاح ضمن app.json بقيمة permissions ونمرر لها مصفوفة بالصلاحيات التي نحتاجها { permissions: [ "CAMERA", "ACCESS_FINE_LOCATION" ] }
    1 نقطة
  9. يمكنك تمرير البيانات ضمن طلب GET من خلال query parameters أو POST من خلال ajax ضمن الحقل data: $.ajax({ url: "/companies", // العنوان type: "get", // نوع الطلب data: { variable: 'value', companyId: CompanyId, companyName: name, ..... }, success: function(response) { }, error: function(xhr) { } }); من جهة الخادم، يوجد عدّة طرق للوصول للبيانات من خلال الطلب request نفسه: public function ajaxRequest(Request $request) { $input = $request->all(); Log::info($input); return response()->json(['success'=>'تم استلام البيانات بنجاح']); } أما بالنسبة للعلاقات many to many، فأقترح عليك قراءة التوثيق الرسمي في لارافيل فالأمثلة كثيرة ويمكنك الاستفادة منها وتجربتها بنفسك، مثال عن جلب البيانات بهذا النوع من العلاقات: $companies = Company::whereHas('owners', function($q) use($ownerIds) { $q->whereIn('id', $ownerIds); })->get(); حيث يتم حقن قائمة بمعرّفات id لحسابات من جدول ما، مع جدول آخر بقاعدة البيانات يدعى Company ويتم المرور على السجلات والتأكد من علاقة الربط من خلال ID. ربما إن شاركت نسخة لارافل التي تستخدمها مع بنية قاعدة البيانات لديك وأجزاء من الشيفرات البرمجية لمشروعك والبيانات التي تريد الاستعلام عنها سنتمكن من إعطائك أمثلة أدق.
    1 نقطة
  10. سلام عليكم . يسعد صباحكم ، الان لو عملنا مشروع برمجي php والمشروع كبر وصار عليه زوار ووو لكن الكود ليس جودته عاليه ولا يطبق مبادئ SOLID . نقدر نستخرج البيانات من قاعدة البيانات ونصمم قاعدة جديده قويه ونعيد البرمجة للموقع بسهوله ؟؟
    1 نقطة
  11. الاهتمام ببنية المشروع وجودة الشيفرات المكونة له بما فيها مبادئ SOLID الهدف منها زيادة كفاءة قابلية الصيانة واكتشاف الأخطاء وإضافة التطويرات على النظام بسرعة ودون أخطاء، يأتي ذلك على حساب وقت التطوير الأولي للنظام، أما النظام الذي تم بناءه والتركيز على سرعة الاطلاق الأولي سيصل إلى أول نسخة بسرعة ويواجه مشاكل لاحقًا عند بدء اكتشاف المشاكل وإجراء عمليات الصيانة أو طلب التطويرات، الحل هنا كما ذكرت وهو التفكير إما بتعديل النظام والاهتمام بجودة الشيفرات، أو بناء نظام جديد مع التركيز هذه المرة على الجودة وليس سرعة التسليم، وخلال هذه العملية يجب نقل حالة وبيانات النظام القديم بما فيها البيانات في قاعدة البيانات أو أي حالة أخرى والتفكير بطريقة نقلها إلى النظام المطور الجديد، هل يمكن تطبيق ذلك؟ نعم ممكن ولا يهم التقنيات المستخدمة ضمن النظام (اللغة المستخدمة كـ PHP أو نوع قاعدة البيانات)، لكن قد تحتاج تلك البيانات إلى إعادة هيكلة لتناسب شكل النظام الجديد وعملية التهجير تلك مطلوبة في حال ضرورة إبقاء تلك البيانات، من أهم المبادئ الواجب التركيز عليها لإنتاج برمجية بجودة عالية هي مبدأ المسؤولية الواحدة SRP ومبدأ عكس التابعية DIP، الاهتمام بهذين المبدأين سيولد تلقائيًا برمجيات قابلة للقراءة وبسيطة وسهلة التطوير، ومبدأ الفتح والإغلاق OCP يساعد في بناء نظام يسهل إضافة الميزات إليه، يمكنك الاستفادة من قراءة المقالات التالية:
    1 نقطة
  12. يمكنك إنشاء وتوقيع JWT من طرف الخادم لديك لطلب JWT جديد من خادم جوجل، وبعد الحصول على JWT من خادم جوجل. أما بالنسبة لـ refresh token فيجب عليك وضع الخيار access_type وإعطائه القيمة offline ليتم الرد بـ refresh token على طلب التحقق كالتالي (مثال باستخدام node.js): const authorizationUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes, include_granted_scopes: true }); وعند انتهاء مدة صلاحية access token في الطلب، يتم إعطائك refresh token مباشرةً من قبل خادم جوجل لتستخدمه وتخزّنه في تطبيقك (مثال باستخدام مكتبة oauth2Client): oauth2Client.on('tokens', (tokens) => { if (tokens.refresh_token) { // هنا نضع الشيفرة البرمجية المسؤولة عن تخزين الرمز } }); يمكنك الاطلاع على مزيد من التفاصيل حول آلية عمل refresh token في خوادم جوجل من خلال التوثيق الرسمي لـ Google Identity قد تختلف طريقة تطبيق الآلية السابقة حسب لغات البرمجة التي تستخدمها وأين تستخدم آلية توثيق جوجل من خلال خادم الويب أم من طرف المستخدم بشكل مباشر.
    1 نقطة
  13. يفترض أن تعمل بأحد الشكلين ->whereDate('حقل التاريخ', '=', date('Y-m-d')) ->whereDate('حقل التاريخ', date('Y-m-d')) // == إن whereDate لا تنتمي للصنف collection فلن تعمل في حالتك، where تعمل وهذا المطلوب.
    1 نقطة
  14. لاحظ أن الخطأ بسبب مشكلة صلاحية، توجه إلى المسار android/app/src/main/AndroidManifest.xml ثم أضف الصلاحيات الخاصة بالكاميرا (أول سطر ضروري فقط) <!-- Required --> <uses-permission android:name="android.permission.CAMERA" /> <!-- Include this only if you are planning to use the camera roll --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- Include this only if you are planning to use the microphone for video recording --> <uses-permission android:name="android.permission.RECORD_AUDIO"/> وفي الملف android/app/build.gradle: android { ... defaultConfig { ... missingDimensionStrategy 'react-native-camera', 'general' // <--- insert this line } } والتحقق أن JDK >= 1.7 and your buildToolsVersion >= 25.0.2 jitpack added في الملف android/build.gradle ^^^^^^^^ allprojects { repositories { maven { url "https://www.jitpack.io" } maven { url "https://maven.google.com" } } } هذا حسب التوثيق، جميع الأمور مذكورة (تابع جميع أجزاء أندرويد)
    1 نقطة
  15. يحتاج ظهور التطبيق في قائمة البحث الانتظار عدة أيام حتى يظهر , و في حالة وجود تطبيقات مشابهة و بنفس الاسم وتاريخ نشرها أقدم من تطبيقك فسوف تظهر قبله ويكون لها أولوية و يكون تطبيقك في الصفحات التالية. الحل: الاهتمام بوصف التطبيق و اسمه (اكتب ميزات التطبيق وما يقدمه للمستخدم وكيف يعمل ومجال عمله) أي مثل مقالة مختصرة فيها كلمات دلالية تزيد معدل الوصول لتطبيقك عند عمل بحث، و محاولة تمييزه بكلمات دليلة تدل عليه مما تساعد في تقدمه في نتائج البحث الأولى. سوف يظهر تطبيقك مع مرور الوقت في الصفحات الأولى بعد زيادة عدد الزيارات و التحميلات عليه.
    1 نقطة
  16. تعيد تنفيذ البرنامج إلى الوحدة التي قامت بالاستدعاء، وسيستمر التنفيذ إلى التعبير الذي يلي تعبير الاستدعاء ، و إذا استدعيت عبارة return داخل الدالة فإنّها ستنهي تنفيذ الدالة على الفور وتعيد معاملها كقيمة لاستدعاء الدالة، تنهي return أيضًا تنفيذ عبارة eval()‎ أو ملف الشيفرة. إن استدعيت عبارة return من النطاق العام (global scope) فإنها تنهي عملية تنفيذ ذلك الملف. وإن كان ملف الشيفرة مضمنًا (included) أو مطلوبًا (required)، فإن التحكّم يعود إلى الملف المستدعي مرة أخرى. إضافة إلى ذلك، إن كان ملف الشيفرة الحالية مضمنًا فإن القيمة التي تأخذها return ستعاد كقيمةٍ للتعبير include. يؤدي استدعاء عبارة return في ملف الشيفرة الرئيسي إلى إنهاء تنفيذ تلك الشيفرة. إن سُمّي ملف الشيفرة الحالية بواسطة الخيارين auto_prepend_file أو auto_append_file في ملف الإعدادات php.ini، فإن تنفيذ تلك الشيفرة سيتوقف. ملاحظة: لمّا كانت عبارة return واحدةً من البنى التابعة للغة وليست دالةً، فإن الأقواس المحيطة بالمعاملات ليست مطلوبة ومن الشائع عدم استخدامها، بل يجدر القيام بذلك لأنّ الشيفرة في هذه الحالة ستؤدي عملًا أقل. ملاحظة: إن لم تتوافر أي معاملات لعبارة return، فيجب حذف الأقواس وستعاد القيمة NULL. يؤدي استدعاء عبارة return مع الأقواس ودون أي معاملات إلى إطلاق خطأ إعرابي (parse error). ملاحظة: لا يجوز إحاطة المتغير الذي ترغب في إعادته بالأقواس عندما يكون الإرجاع بالمرجعية، لأن هذا لن يعمل مطلقًا. يمكن فقط إرجاع المتغيرات بالمرجعية وليس إرجاع نتيجة العبارة. فلو استخدمت العبارة return ($a);‎ فإنك في هذه الحالة لا ترجع متغيرًا ولكن ترجع نتيجة التعبير (‎$a) (وهي بالتأكيد قيمة المتغير ‎$a). <?php function getString($name){ return $name; } echo getString("Hsoub"); ?> /// النتيجة Hsoub ففي المثال التالي ننشأ دالة تقوم باستقبال متغير واحد و هو متغير يستقبل الاسم و من ثم نقوم باستخدام return بإرجاع قيمة متغير name$ و نقوم بطباعتها.
    1 نقطة
×
×
  • أضف...