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

Adnane Kadri

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

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

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

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

    52

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

  1. من بين ميزات الدورات التي ذكرتها أنها لا تشترط منك أي خبرة مسبقة أو أي مكتسبات قبلية. وستتخرج كمطور تطبيقات جافاسكربت أو مطور ويب شامل باستخدام لغة PHP. فإن كان السؤال ان كنت ستحتاج كشرط فلا، ولكن ان كان السؤال هل من الافضل ذلك، فنعم بالطبع. لأن الاستزادة من العلم والاطلاع على المفهوم الأوسع ستعطيك نظرة أشمل على المجال وعلى كيفية التعامل معه. اعرف أكثر عن دورة تطوير التطبيقات باستخدام جافاسكربت من خلال هذا الرابط وعن دورة تطوير التطبيقات باستخدام لغة PHP من خلال هذا الرابط.
  2. دورة تطوير تطبيقات الويب باستخدام لغة PHP هي تشكيلة من تقريب ال 60 ساعة فيديوهات تعليمية تعتمد على التطبيق العملي بجانب التعلم النظري. تخصص أيضا مسارا كاملا للعمل بلارافيل كأشهر اطار عمل للغة PHP. تحتوي على المسارات: أساسيات لغة PHP أساسيات إطار العمل Laravel مسار تدريبي لبناء شبكة اجتماعية تشبه انستغرام مسار تدريبي لبناء واجهة تطبيقات برمجية Restful API تطوير موقع للإعلانات المبوبة تطوير نظام لإدارة المحتوى بناء متجر الكتروني لبيع الكتب بناء تطبيق لتقييم الأماكن على الخرائط بناء تطبيق مشاركة فيديوهات تطوير قوالب وردبرس تطوير متاجر ووكومرس وبين كل هذا وهذا يتم المرور على كامل النقاط التي أشرت اليها وأكثر. اعرف اكثر عن الدورة من هنا
  3. وجدت فكرة مشابهة لهاته الفكرة عملية جدا وتخدم غرضا لدينا في أحد المشاريع البرمجية مؤخرا أين احتجنا استعمال هاته الصيغة لإرسال البيانات لا لتخزينها. لأن عيب هاته الطريقة أنها تأخذ مساحة تخزين كبيرة جدا من قاعدة البيانات مقارنة بحفظها في خوادم تخزين سحابية او اقراص تخزين عادية بصيغها الأصلية ك raw binary حيث أن فرق صيغة base64 على raw binary هو حوالي ال 33%، وهو فرق كبير جدا. سيعني هذا بطئا في الاستعلام حولها، وسينعكس هذا سلبا بالطبع على آداء الموقع. يمكنك الاستعانة بصيغة base64 لارسال وتبادل البيانات لا أكثر، فإن كان هنالك سبب ما يدفعك الى عدم استعمال data forms فيمكنك تشفير هاته الصور أو الملفات وإرسالها إلى الخادم وترك عملية إلغاء تشفيرها للخادم.
  4. الطريقة لا تخص ReactNative على وجه الخصوص. يسمى الملف الحاوي للمتغير وحدة نمطية module. ويمكنك تصدير اي متغير في جافاسكربت في بيئة Node من وحدة نمطية عن طريق استعمال الكلمة المفتاحية export على نحو export const exampleVariable=true ثم استيرادها باستعمال import مرفقة باسم المتغير موجود داخل معقوفتين على نحو import {example} from 'test.js' لاحظ انه من المهم استعمال المعقوفتين لأنها تهتص بنوع من التصدير يسمى التصدير المعنون named export. أما في حالة الحاجة إلى استيراد متغير واحد من ملف الوحدة النمطية المستهدفة يمكنك الحاق الكلمة export بالكلمة default ليكون الاستيراد بدون معقوفتين.
  5. أظنك تحاول استعمال التابع prepare على متغير تفترض أنه من صنف PDO لتحضير استعلام قواعد بيانات. تحدث مثل هاته المشكلة عندما لا يتم تهيئة كائن عن الصنف pdo بشكل صحيح، اذ تعتبر PHP المتغير المسند سلسلة نصية او قيمة بوليانية أحيانا في حالة فشل الاتصال. تأكد من حقن سطر مشابه للتالي: $pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass); في مكان قبل استعمال اي توابع عنه. ايضا لتشخيص المشكلة بشكل دقيق يرجى إرفاق الشيفرة كاملة.
  6. لتغيير نص يمكنك استعمال textContent، اما في الحاجة إلى حقن محتوى HTML يمكنك استعمال الطريقة التي أشرت إليها. قم بإنشاء عنصر واعطه الخصائص اللازمة واحقنه إلى الوثيقة عن طريق appendChild
  7. أظنك تشير بشكل ما إلى ثغرة XSS او Cross site scripting، ويتم استغلالها من خلال innerHTML حين يتم حقن سكريبت أو صور أو وثائق جافاسكربت ضمن الوثيقة تستعمل بشكل أو بآخر لاستغلال بيانات المستخدمين. هذا بجانب كون هذا التابع بطيئ نوعا ما مقارنة بمكافئاته من التوابع. علاوة على أنه قد يكسر هيكل الوثيقة. كبديل أكثر أمانا وأحسن آداءا للتلاعب بعناصر الوثيقة يوجد createElement، appendChild و removeChild وغيرها.
  8. هل يتم الاعتماد على اطار عمل للواجهة الامامية بشكل كامل؟ مثل Vue أو React وهل تظهر أي اخطاء بالـ console؟
  9. لا توجد أي مشكلة في الحقيقة، الرسالة "X packages you're using are looking for funding" تشير الى أنك تقوم باستعمال كذا حزمة تحتاج الى الدعم أو منح هبات donations مقابل الخدمات التي تعرضها بشكل مجاني. أو حتى أن بعض الحزم تستخدم هاته الميزة لدعوة المستخدمين الى الاستفادة من جزئيات أو ميزات اضافية بمقابل مادي. غالبا ما تظهر هاته الرسالة بعد نجاح تثبيت حزمة أو تحديثات اعتماديات composer في مشروع ما. لاحظ أنه يتم الاشارة الى تنفيذ الامر composer fund، وعندما يتم تنفيذه ستظهر قائمة بالحزم المثبتة مرفق بها روابط دعم بيبال أو دعم غيتهب أو مواقعها الرسمية. يمكنك اختبار الأمر وتجربة الوصول الى أحدها.
  10. توفر google maps مجموعة من واجهات التطبيق البرمجية والمكتبات للتعامل مع خرائط قوقل. بداية سيجب عليك استدعاء الملف المصدري للمكتبة: <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_KEY&callback=myMap"></script> قومي باستبدال YOUR_KEY بمفتاح الواجهة الذي تم تقديمه لك. ثم تعريف ال callback المعنية: function initMap() { } نقوم بتعريف مختلف خواص كائن التهيئة: var mapOptions = { zoom: 8, center: new google.maps.LatLng(44, -110), mapTypeId: 'satellite' }; وأخيرا تهيئة الكائن باستعمال هاته الخواص: var map = new google.maps.Map(document.getElementById('map'), mapOptions); يمكنك الوصول الى باقي الخواص من هنا.
  11. يمكن العمل بها على الويب أيضا، استعمالها لا يُحتكر في تطبيقات الموبايل. يمكن استعمال الكثير من اللغات في مجال الويب على غرار جافاسكربت، PHP أو C# مثلا. ولكن طريقة تصيير الصفحات وعرضها والتلاعب بمحتواها يختلف عن طريقة جافاسكربت التي تضمن تفاعلية بشكل حي ودعم واسع من قبل متصفحات الويب. يوجد مثلا CoffeScript التي تستعمل نفس طريقة جافاسكربت في ذلك.
  12. أظن أن هذا بسبب تخصصيتها في الويب بدرجة أولى وبسبب تاريخها بدرجة ثانية، فجافاسكربت صممت أول مرة كلغة برمجة نصية لمتصفحات Netscape وهي أولى متصفحات الويب، ومن ثم تم اعتمادها من قبل Microsoft وهيمنتها على المجال بدعم متصفحات Internet Explorer لها في بداية الألفية الجديدة. اطلاق النسخة السادسة من ECMAScript في 2015 أيضا زادها هيمنة.
  13. هذا لأن التابع appendChild يفترض أن يمرر عبره كمعامل أول مرجع العقدة التي نحاول حقنها في الوثيقة وليس سلسلة نصية. لا يجب عليك وضع overly بين علامتي تنصيص: // show my favorite products const favorites = document.querySelector(".favorite-products") favorites.addEventListener('click', ()=>{ // create a popup overly = document.createElement('div') overly.setAttribute("class", "popup-overly") let body = document.getElementsByTagName('body') document.body.appendChild(overly) }) ،body أيضا لا يبدوا هنالك أي حاجة من تعريف المتغير :يمكنك التخلص من هذا السطر: let body = document.getElementsByTagName('body') Document.body
  14. يمكنك المرور على كل محرف من هاته السلسلة النصية وطباعة كل على حدة. نستعمل في ذلك التابع length لتحديد عدد حلقات for التي نمر بها على المتغير: #include <iostream> using namespace std; int main() { string q = "12345"; for (int i = 0; i < q.length(); i++) { cout << q.at(i) << " " ; } } والتابع at لتحديد المحرف الموافق لفهرس كل تكرارة من الحلقة. النتيجة: 1 2 3 4 5
  15. تختص الخاصية flex-wrap بعملية كسر السطر في حالة تجاوز العناصر المحور الافقي. بمعنى أنها الخاصية التي تحدد ما ان كانت العناصر داخل الحاوي المرن ستبقى ضمن سطر واحد أو أنها ستلتف الى عدة أسطر. في الحالة التي لدينا لاحظ أننا نضبطها على القيمة wrap: #feature { .. flex-wrap: wrap; .. } وبالتالي ولجبر وضعها على سطر واحد نسند القيمة nowrap: #feature { .. flex-wrap: nowrap; .. } يفترض أن يحل ذلك المشكل لديك.
  16. ما الذي تريده بالضبط؟ هل تريد جعل كامل البطاقات في سطر واحد؟
  17. ما المشكلة الجديدة التي واجهتها تحديدا؟
  18. بالطبع لا تنسى استئناف الجلسة بحقن السطر التالي في اعلى الملف المستهدف session_start();
  19. يحدث هذا لأنك تسند القيمة space-between الى الخاصية justify-content الخاصة بالصندوق المرن حاوي البطاقات. سيحافظ هذا على توزيع العناصر ضمن المستوى الافقي، لن تلاحظ هذا في حال ما كان عدد البطاقات الاجمالي هو 4 مثلا. للتخلص من هاته المشكلة أسند القيمة center لهاته الخاصية فيكون: #feature { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; } أيضا للحفاظ على توزيع المسافات بين البطاقات قد تحتاج اسناد قيمة مناسبة للخاصية gap كـ: #feature { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 20px; } قم ايضا بضبط عرض مناسب للبطاقات fe-box، اقترح بدل ضبط عرض ثابت كـ: #feature .fe-box { width: 180px; استعمال عرض نسبي كـ: #feature .fe-box { width: 30%; تصنيف:CSS Flexbox - موسوعة حسوب الخاصية justify-content - موسوعة حسوب
  20. جرب الاحتفاظ بالصفحة التي طلبها المستخدم في الجلسة. فان كانت صفحة تعديل مستخدم تشترط أن يكون المستخدم مسجلا للدخول فسيجب عليك حقن اسم او مسار هاته الصفحة ضمن متغير ما في الجلسة مثلا قبل اعادة التوجيه الى صفحة تسجيل الدخول من عليها: if(/* شرط عدم توثيق المستخدم */){ $_SESSION['requested_page'] = $_SERVER['REQUEST_URI']; // توجيه لصفحة تسجيل الدخول } من اعادة التوجيه اليها ومحوها من صفحة تسجيل الدخول بعد نجاح التسجيل: if(/* نجاح تسجيل الدخول */){ header('Location :' . $SESSION['requested_page']); }
  21. يحدث هذا لأن تقوم بالتوجيه بالفعل الى ذات الصفحة. فالفهرس REQUEST_URI يحمل قيمة URI الخاص بالصفحة الحالية، فإذا كان المسار الكامل لصفحة تسجيل الدخول هو كـ: https://www.domain.com/auth/login.php فسيحتوي $ _SERVER ['REQUEST_URI'] على: /auth/login.php فان تم تنفيذه في صفحة login.php بالفعل فتحصل في الغالب على السلوك الذي شهدته. ان كنت تستعمل روابط نسبية قم مباشرة بحقن اسم الملف المستهدف: header("Location: index.php") وسيتم التوجيه بشكل عادي.
  22. ستضل تسمع مثل هاته الأشياء حتى بعد قطع شوط طويل في مجال العمل الفعلي. لا يزال الطلب كبيرا على PHP و Laravel خصوصا مع التطورات التي تحدث عليهما في السنين الأخيرة. ولا يزال الكثيرون يتوجهون الى العمل بهما. يمكنك تصفح المشاريع المفتوحة على موقع مستقل أو موقع بعيد وأخذ فكرة عن الموضوع. أما عن المفاضلة بين PHP و NodeJS فالأمر غير ممكن الى حد بعيد، وكل منهما له سياقه وانواع تطبيقاته التي يبدع فيها عن الآخر. ركز على تطوير معارفك وخبرتك في المجال الذي بدأت فيه بالفعل، فكل ما زادت معرفتك وخبرتك بالشيء كلما كنت قادرا على زيادة انتاجيتك بإنشاء تطبيقات احترافية تستوفي معايير جودة البرمجيات، ولن تلتفت لها إلا بالممارسة الكثيرة للشيء الذي تتقنه بالفعل، فأنت ستجد نفسك منقادا الى التحسين من شيفرتك في كل مرة. هذا الأمر الذي سيقودك الى النظر في معايير أخرى غير اللغة أو اطار العمل الذي تستعمله. هذا بجانب أن قدرتك على التعلم والتبديل بين تقنية وأخرى ستتحسن وتتطور هي الأخرى، أين سيكون من السهل الانتقال الى stack أخرى حسب حاجة المشروع أو رؤية صاحب العمل. لأنه ولحد ما، تبقى الأدوات وأطر العمل واللغات شيئا عارضيا مقابل هاته الأشياء التي تحدد جودة العمل ومدى احترافيته.
  23. ما الذي تود تجربته بالضبط؟ أكاديمية حسوب توفر مجموعة من الضمانات بجانب امكانية التنسيق مع فريق الدعم لطلب استرجاع المبلغ المدفوع في الدورة لسبب من الأسباب. من بين هاته الضمانات أن الأكاديمية ستضمن لك استرداد استثمارك خلال ستة أشهر من الدورة، بمعنى إن لم تحصل على وظيفة أو عمل حر خلال 6 أشهر من موعد اجتيازك للامتحان يغطي قيمة الدورة التي دفعتها، فسيعاد لك ما دفعت. يمكنك الوصول الى مميزات ومقتطفات عن الدورات عن طريق صفحات الهبوط الخاصة بكل دورة من الصفحة الرئيسية. أيضا، قم بمراسلة مركز المساعدة لربما يمكن منحك مهلة تجريبية.
  24. لتوسيط العنصر ضمن المحور الأفقي x يمكنك ضبط الهوامش الجانبية بشكل تلقائي. .slider-container{ margin: auto; } سيعطي هذا ذات المقاربة. تأكد ايضا من ان هذا العنصر لا يأخذ كامل عرض الحاوية التي هي موضوع فيها، وإلا فكيف سيمتلك هوامشا جانبية. الخاصية margin في CSS
×
×
  • أضف...