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

محمد وسيم الحبش

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

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

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

أجوبة بواسطة محمد وسيم الحبش

  1. وعليكم السلام @عبدالله النمي

    بعد تشغيل الكود الخاص بك , ظهر أن المشكلة في هذا السطر :

    // الكود الحالي الخطأ
    <img src="images/Sticker-Coffee.png" alt="ستيكر مشروب اللاتيه data-target="#carousel-featured" data-slide-to="1">
    
    
    // الكود الصحيح
    <img src="images/Sticker-Coffee.png" alt="ستيكر مشروب اللاتيه" data-target="#carousel-featured" data-slide-to="1">

    فالخطأ أنك نسيت علامةالتنصيص " بعد خاصية ال alt

    تحياتي .

    • أعجبني 1
  2. مرحباً @محمود رضا موسى

    هناك عدة طرق في الحقيقة , يمكنك بالأصل أن لا تنفذ التعليمة أساساً إذا كان هناك قيم مكررة و ذلك بعمل query للتأكد إذا كانت هذه القيم موجودة بالبداية ثم إضافتها إن لم تكن موجودة :

    SELECT * FROM Table WHERE test1 = "Some Value" AND test2 = "Some Value 2"

    فإذا كان عدد أسطر ناتج التعليمة على سبيل المثال في الأعلى (rowCount) يساوي الصفر , إذاً القيم غير مكررة و يمكنك إضافتها .

    الحل الثاني : باستخدام تعليمة ال try :

    try {
        //تعليمة الإضافة
    } catch (Exception $e) {
        // طباعة رسالة الخطأ 
    }

     

    تحياتي .

    • أعجبني 1
  3. مرحباً @عبد الواحد الحدادي

    بالحقيقة ليس هناك ضرورة لإنشاء كل هذه الأمور دوماً مع بعضها , من الممكن إنشاء ال model لوحده أو migration لوحدها  أو مع بعضهم وهكذا , فيمكنك مثلاً :

    php artisan make:model NewModel -m

    فهذه التعليمة ستنشأ model و migration فقط . 

    وبالطبع يمكنك استخدام غيرها من التعليمات حسب حاجتك , فهذه الحروف mcr تستخدم مع بعضها أو كل واحدة على حدى ,وبالنسبة لما قلته :

    بتاريخ 31 دقائق مضت قال عبد الواحد الحدادي:

    M تعني ملف التهجير migration 

    C تعني المتحكم Controller 

    R تعني مورد وهي الطرف المتمثلة في CRUD بجانب Store . 

    فهو صحيح تماماً , بالمناسبة ال CRUD تشمل ال store وهي اختصار ل Create, Read, Update , Delete

    تحياتي .

    • أعجبني 2
  4. مرحباً @Dee Alo

    معك وسيم الحبش , مهندس برمجيات من جامعة دمشق .

    تخصص هندسة البرمجيات يكون على الأغلب 5 سنين :

    السنة الأولى و الثانية  : 

    تركز على الرياضيات والتحليل العددي بشكل عام مع تعلم أساسيات البرمجة مثل (( المتغيرات , التوابع , المؤشرات , الصفوف والكائنات …. )) , وهناك مواد عن الخورازميات وكلها تحوي مشاريع و وظائف غالباً يتم تنفيذها في ال console (الشاشة السوداء )) بدون أي تصميم , أي فقط تهتم بالتنفيذ والفهم دون أهمية عرض البيانات وهناك عدة مواد متفرقة مثل الفيزياء والكهرباء والعربي والإنكليزي وأساسيات الحاسوب .

    السنة الثالثة : 

    نبدأ بها بمشاريع فعلية , مثل مشروع باستخدام ال OpenGl أو ال Unity أو ال Matlap حيث يكون الخرج هو لعبة صغيرة أو محاكاة لفكرة فيزيائية وعلى ما أذكر كان أيضاً هناك مشروع بلغة الجافا وكذلك مشروع ويب فيه Front End و Back End.

    وأيضاً نتعمق في هذه السنة بموضوع الخوارزميات و نأخذ أساسيات هندسة البرمجيات (( خطوات التخطيط لمشروع - ال use case - sequential  و غيرها … )) .

    ومن المواد الموجودة أيضاً تعلّم لغة ال Assembly وتعلم البرمجة التفرعية وأساسيات قواعد البيانات  .

    وهناك مشروع (( يسمى مشروع 1 )) في هذه السنة , تقدمين فيه فكرة وتناقشين الدكاترة بها  .

    السنة الرابعة :

    وهي سنة الاختصاص حيث تختارين أحد الأمور التالية (( شبكات - برمجيات - ذكاء صنعي )) , وسأتحدث هنا عن البرمجيات , حيث نتعمق جداً بهندسة البرمجيات و أنواع نماذج المشاريع (( Agile - الحلزوني - الشلالي الخ )) و كيفية إدارتها وإدارة المخاطر , كما نبحث في أساسيات الاقتصاد و هناك مادة مهمة في Design Patterns , أيضاً نتحدث عن ال Database والفهرسة والتعليمات المعقدة .

    وهناك مشروع (( يسمى مشروع 2 )) في هذه السنة , تقدمين فيه فكرة وتناقشين الدكاترة بها وهو أعقد من المشروع 1 بحيث يجب أن تناقشي أحد المصطلحات المهمة ضمن عالم البرمجة (( مثل Block chain أو غيرها ))  .

    هناك مادة صعبة جداً و مهمة تتحدث عن ال compiler وآلية عمله , و يكون في نهايتها مشروع ل compiler من برمجتك .

    السنة الخامسة : 

    وفيها مشروع التخرج ,وبعض المواد المهمة مثل هندسة نظم المعلومات , هندسة المعلومات و استرجاعها (( مادة جميلة نتحدث عن Google وخوارزمياته في تخزين البيانات وفهرستها )) و مواد أخرى .

    أخيراً : 

    تحتاجين قبل دخولك للفرع التأكد من فهمك لبعض مفاهيم الرياضيات (( المصفوفات , المتتاليات , التكامل , الاشتقاق …. )) , و أن يكون عندك إلمام بمبادئ الحاسوب , ولا بأس بالاطلاع على أساسيات البرمجة بلغة ال c++ أو الجافا والويب لأنها ستساعدك كثيراً .

    بالنسبة للحاسوب فأظن أن المواصفات التالي يمكن أن تساعدك :

    Hard SSD بأي مساحة كانت .

    Ram 6 أو أكثر .

    كرت الشاشة لا يهم كثيراً ولكن لا بأس أن يكون قوياً و خصوصاً عند التعامل مع البرامج الخاص بالألعاب .

    معالج Core i5 أو أكثر و حاولي أن يكون الجيل هو السابع أو أكثر .

    تحياتي .

    • أعجبني 2
  5. مرحباً @Hafsa Aly

    من شكل الكود يبدو أنه أحد ال component التي تستخدمينها ضمن الكود الخاص بك , وهي بساطة اسمها App وترجع داتا api_key , لا أدري بالضبط ما معناها  ولكن أظن أنها مستخدمة للتواصل مع أحد الأطراف أو الخدمات الخارجية والتي تحتاج هذا ال key ليتم التواصل بشكل صحيح والتعرف على تطبيقك و تحقيق المطلوب .

    أو ربما هو كود مطلوب للتعامل مع ال Back end الخاص بموقعك , ليتحقق من أن الطلبات (requests) تأتي من المكان الصحيح .

    بالمناسبة آنسة حفصة , حبذا لو تغيرين عنوان السؤال إلى شيء معبّر أكثر عن المشكلة .

    تحياتي .

    • أعجبني 1
  6. وعليكم السلام ورحمة الله وبركاته @dragon

    دورة واجهات المستخدم تبدأ معك من الصفر إلى حد الاحتراف , يمكنك عند الوصول لمعرفة ال HTML , CSS , JS بناء أول موقع الكتروني خاص فيك بالفعل بدون الحاجة لإتمام الدورة , ولكن بالطبع عند إكمال الدورة ستطبق أمثلة على الذي تعلمته بالإضافة لتعلم أدوات توفر عليك الوقت والجهد بشكل كبير ( مثل Gulp وغيرها ) , فيمكننا القول أن الضروري جداً والذي لا غنى عنه هو HTML , CSS , JS و بعض التطبيقات عليها والباقي هو تطوير لمهاراتك و لإمكانك المنافسة والدخول في سوق العمل .

    تحياتي .

    • أعجبني 1
  7. بتاريخ 5 دقائق مضت قال Marwan800:

    هذا المشكله تجعل كودي في فلاتر لا يستقبل الاستعلام بشكل الصحيح 

    هل توجد طريقة لدمجهم في مصفوفة واحده مثل السابق حتى تعمل؟

    أهلاً أخي @Marwan800

    تعديل بسيط على الكود يتحقق ذلك :

    // الكود القيدم 
    $check['result'] = 'Login Matched';
    $check['user'] = $user;
    $SuccessMSG = json_encode($check);
    echo $SuccessMSG ;
    
    //استبدله بالكود التالي
    
    $user['result'] = 'Login Matched';
    $SuccessMSG = json_encode($user);
    echo $SuccessMSG ;

     

    • أعجبني 1
  8. بتاريخ 5 دقائق مضت قال Marwan800:

    هنا تكمن المشكله طبعا الكود شغال وصار بامكاني قراءة الباسورد المشفر ولكني احتاج الى استدعاء البيانات ايضا الخاصة ب اليوزر الذي قام بتسجيل الدخول كما حدث مع اول مثال حصلت على مصفوفة كامله بالاضافة الى Login Matched انا احتاج الى تلك البيانات في التطبيق حتى استعلام على سبيل المثال عن id حسب ما موضح في كود فلاتر اعلاه.

     

    هل يعلم احد طريقة حل هذا المشكلة ؟

    السلام عليكم @Marwan800

    المشكلة بسيطة وهي أنك يجب أن تضيف المستخدم لل response :

    // الكود الناقص
    $check['result'] = 'Login Matched';
    $SuccessMSG = json_encode($check);
    echo $SuccessMSG ;
    
    
    // الكود الكامل 
    $check['result'] = 'Login Matched';
    $check['user'] = $user;
    $SuccessMSG = json_encode($check);
    echo $SuccessMSG ;

     

    تحياتي.

    • أعجبني 1
  9. بتاريخ 18 دقائق مضت قال Marwan800:

    اعلم اخي ولكن كيف ممكن استخرجها ؟الان كودي لا يعرض اي بيانات بعد التحقق من الباسورد هو فقط يتحقق 

    الصراحة لم أفهم قصدك في كلمة أستخرجها , إذا كنت فهمت ما تعنيه فال $user هو عبارة عن مصفوفة الآن , فيمكنك كتابة :

    $user['phone']

    أو أي حقل ضمن الداتابيز

    • أعجبني 1
  10. بتاريخ 8 دقائق مضت قال Marwan800:

    سابقا الكود كان بعد التحقق يجلب لي بيانات المستخدم المحدد كلها المرتبطه به مثل اسم المستخدم رقم هاتفه كلمة السر الدولة وغيرها من بيانات التي توجد في قاعدة البيانات ولكن الان مع الكود اعلاه هذا الامر لا يحدث انا لا احصل على اي بيانات فقط يتم الاتصال او التحقق بنجاح هل يوجد حل لهذه المشكله؟انا احتاج الى بياناته حيث انني اقوم بعد تسجيل دخول المستخدم باخذ بياناته وتسجيلها في SharedPreferences لذلك انا احتاج الى البيانات ايضا 

    مرحباً  @Marwan800

    بيانات المستخدم موجودة في المتحول الذي اسمه $user , وأنت تقوم به ما تشاء (( طباعة , تحويل ل JSON الخ .....)) .

    تحياتي 

    • أعجبني 1
  11. وعليكم السلام ورحمة الله وبركاته @Marwan800

    هناك عدة ملاحظات يجب تعديلها ضمن الكود الخاص بك :

    يجب عند الاستعلام عن مستخدم ضمن الداتابيز أن نستخدم اسم المستخدم أو إيميله وليس كلمة السر , لأنها ببساطة مشفرة ولا يصح الاستعلام عليها مباشرة من الداتابيز :

     $email = $obj['email'];
     $loginQuery = "select * from user where email = '$email' ";

    الآن بعد أن نفذنا هذا الاستعلام , نتأكد بالبداية أن لدينا مستخدم لديه هذا الإيميل بالفعل , فإن كان كذلك نستخدم تابع ال password_verify للتحقق من كلمة المرور المدخلة إن كانت مماثلة لما في قاعدة البيانات :

    $user = mysqli_fetch_array(mysqli_query($con,$loginQuery));
    
    // إذا وجدنا مستخدم بالإيميل المدخل من الفورم أو من أي مكان بالموقع
    if(count($user) == 1)
    {
      $password = $obj['password'];
      if (password_verify($password, $user['password'])) {
        echo 'تم التحقق من كل شيء بنجاح';
        die;
      } 
      else {
        echo 'كلمة المرور المدخلة خاطئة';
        die;
      }
    }
    else
    {
      echo "الإيميل المدخل غير موجود";
      die;
    }
    

    تحياتي .

    • أعجبني 1
  12. السلام عليكم @brahim elmadkoun

    - إذا كان قصدك عند الدخول على هذا الرابط من المتصفح تحتاج إلى أخذ Query String منه (( الأمور بعد ؟ في الرابط )) فهذا ممكن عن طريق استخدام المتحول $_GET ,بحيث يكون بداخله مصفوفة فيها كل القيم المطلوبة , فمثلاً لو دخلنا على هذا الرابط : 

    demo.com/index.php?url=http//demo.com&url2=google.com

    فبالتالي يمكن كتابة الكود التالي للوصول للعناصر : 

    // الرابط الأول
    $url1 = $_GET['url'];
    // الرابط الثاني
    $url2 = $_GET['url2'];
    // كل الروابط
    $all_urls = $_GET;
    
    echo $url1;
    echo $url2;
    print_r($all_urls);

    - أما إذا كان قصدك , تحليل نص و استخراج الروابط منه , فالحل يكون بهذا الشكل : 

    $url = 'demo.com/index.php?url=http//demo.com&url2=google.com';
    $url_components = parse_url($url); 
    parse_str($url_components['query'], $params); 
    
    print_r($params);      
    
    /*
    تكون النتيجة 
    Array
    (
        [url] => http//demo.com
        [url2] => google.com
    )
    
    */

    تحياتي

    • أعجبني 1
  13. مرحباً @Asma'a

    في الكود عدة أخطاء الصراحة , وهناك أمور مبهمة غير واضحة :

    • تم تعريف المتحول x مرتين , فهذا قد يحدث خطأً , دعينا نسمي كل متحول باسم مختلف حتى لا يصير تضارب.
    • في التابع store_text تم المرور على مصفوفة السيارات , واستدعاء التابع toLowerCase على الواصفة التي اسمها type وهي غير موجودة , فأيضاً يعطي خطأ .
    • أيضاً في التابع asc_sort تم المرور على مصفوفة السيارات والمقارنة بالنسبة للواصفة year والتي هي أيضاً غير موجودة .

    برأي أن تتريثي قليلاً , وتبتعدي عن نسخ الحلول ولصقها , بل يجب أن نستخدم الحلول فيما يناسب الكود الخاص بنا .

    تحياتي

  14. مرحباً @Mr Yobe

    في بداية الأمر إن أردت أن تهتم في مجال الويب يجب ان تعلم أن الويب ينقسم الى قسمين :

    • Front End: وهي ما يراه المستخدم أمامه عند تصفح الموقع .
    • Back End : وهي التي لا يرها المستخدم والمقصود بها لغة البرمجة مثل (php, ruby, …) وتعمل على معالجة المعلومات واستقبالها من واجهة الموقع.

    والان بعد ان توضحت لنا الأمور قليلاً الآن يأتي سؤالك ,كيف تبدأ بتعلم هذا المجال ؟

    1. يجب علينا بالبداية أن نتعلم ال HTML والتي تعطينا هيكلية أي صفحة خاصة بالإنترنت .
    2. بعد ذلك يمكننا تعلم ال CSS والتي بدورها تعطي تنسيقات الموقع و ألوانه و تضيف بعض الحركات والتأثيرات عليه.
    3. تعلّم ال JAVASCRIPT , والتي بدورها كلغة برمجة تعطي منطقية للصفحة (( إذا ضغط المستخدم يحدث هكذا , وإذا حرك الفأرة إلى هنا  يحدث هكذا )) الخ ...

    بعد تعلّم هذه الأمور الثلاثة , سيكون بإمكانك إنشاء و تصميم أي موقع أو صفحة تخطر ببالك :) .

    و عند هذه النقطة يمكنك الاختيار , إذا أردت أن تكون Back End Developer يجب أن تتعلم على الأقل واحدة من لغات البرمجة الخاصة بالويب (( Ruby ,php,python .... ) , بينما إن أردت أن تكون Front End developer يمكنك أن تتعلم أحد ال frameworks المشهورة مثل vue ,angular,react ومع الوقت يمكنك تعلّم الأدوات المساعدة لتسريع العمل و تسهيله ضمن مجموعات  مثل ال Git .

    فهذه المعلومات الأساسية التي تحتاجها للبداية بتعلم الويب ,  و أرجوك أن لا تشعر أن الموضوع معقّد أو غاية في الصعوبة , لا أبداً , فهو ممتع و كما قلت يكفيك لإنتاج أول موقع تعلم الأمور الثلاثة الأولى التي ذكرتها .

    تحياتي  

    • أعجبني 1
  15. مرحباً @Asma'a

    الكود الخاص بك بحتاج بعض التعديلات .... 

    أولاً بالنسبة للسطر الذي يقوم بعمل select على العنصر parent , فلا يجب أن نستخدم تابع ال innerHtml لأنه ببساطة بقوم بإرجاع ال Html داخل العنصر :

     Capture.PNG.ab226a412d5d3200c24c4f26c19b51d8.PNG

    لاحظي كيف أن ال x ترجع Html , فيجب لتحديد عنصر استخدام الكود التالي فقط : 

    var x= document.getElementById("parent");

    ثانياً  ommouseover يجب أن تساوي تابعاً وليس قيمة نصية , وضمن هذا التابع يمكننا القيام بأي شيء مثل الطباعة أو غيرها . 

    على هذا يكون الكود النهائي لطباعة المصفوفة ضمن ال console :

    var x = document.getElementById("parent");
        x.onmouseover = function () {
            var content = cars[0].Name + " : " + cars[0].specialty + "\n" +
                    	  cars[1].Name + " : " + cars[1].specialty + "\n" +
                    	  cars[2].Name + " : " + cars[2].specialty + "\n";
            console.log(content);
    	}

    تحياتي

    • أعجبني 1
  16. وعليكم السلام ورحمة الله وبركاته ....

    هذه الرسالة تحذيرية من جوجل كروم بأن كلمة المرور التي تستخدمها (بنظره) بسيطة و تحتاج إلى تقوية , يمكن إلغاء هذه الرسالة بتعديل كلمة المرور إلى واحدة أقوى , أو يمكن إطفاء ذلك في الإعدادات بالذهاب إلى :  settings ---- autofill ---- password

    وإطفاء هذين الخيارين : "Offer to save passwords" ,"Auto Sign-in" 

    1.PNG

    مع ذلك أنصح بعدم إطفاء هذه الميزة نظراً لأهمية أن تكون كلمة المرور قوية .

    تحياتي

    • أعجبني 1
  17. وعليكم السلام ورحمة الله وبركاته

    إذا اطلعنا على معرض الأعمال من الخارج نجد أن موقع مستقل يأخذ الصورة بشكل متوسط مهما كانت كبيرة , فلا بأس من استخدام صور أكبر من المقاس العادي .

    الآن .... إذا نظرنا لمقاس الصورة الخارجية ((الغلاف)) نجد أن مقاساتها كالتالي :

    في الكمبيوتر : 346px * 200px

    في الجوال : 246px * 200px

    فأفضل خيار يمكنك اختياره هو مقاس الكمبيوتر لهذه الصورة أو مضاعفته ليبدو بدقة أعلى : 692px * 400px .

    بالنسبة للصور الداخلية , فالمقاسات كالتالي :

    في الكمبيوتر : 718px * طول غير محدد 

    في الجوال : 332px * طول غير محدد 

    فأفضل خيار أيضاً يمكنك اختياره هو مقاس الكمبيوتر لهذه الصورة أو مضاعفته ليبدو بدقة أعلى : 1436px * طول غير محدد.

    ملاحظة مهمة :

    لا ينصح باستخدام صور طويلة ضمن العمل , لأنها ستبدو كبيرة جداً ويضطر المستخدم للنزول لرؤية كافة الصورة .

    • أعجبني 2
  18. يمكنك استخدام تابع lastInsertId باستخدام ال PDO , وهي الطريقة الأسرع ولكن يمكن استعمالها حصراً إن تمت عملية الإضافة في نفس ال request وإلا قد يعطي نتائج خاطئة  :

    $query = $pdo->prepare("INSERT INTO `tablename` SET `name`='وسيم', `age`=25");
    $query->execute();
    
    
    $query = $pdo->prepare("SELECT * FROM `tablename` WHERE id = ".$pdo->lastInsertId());
    $query->execute();
    $row = $query->fetch();

    كما يمكنك بالطبع استخدام تابع الترتيب ORDER BY للحصول على نفس النتيجة , و هذه الطريقة يمكن استخدامها في أي مكان بدون شروط (هذه الطريقة التي أفضلها) :

    $query = $pdo->prepare("SELECT * FROM `tablename` ORDER BY id DESC LIMIT 1");
    $query->execute();
    $row = $query->fetch();

     

    • أعجبني 1
  19. هناك أكثر من أمر يمكنك الاستفادة منه :

    • ترجمة مقالات أو ملفات من اللغة العربية للإنكليزية أو العكس.
    • إعطاء دروس أونلاين لتقوية اللغة الإنكليزية.
    • تسجيل كورسات وبيعها .
    • المساعدة في كتابة CV أو عقود باللغة الإنكليزية.

    وهناك الكثير ضمن قسم الترجمة واللغات في موقع مستقل , كما يمكنك متابعة قسم الطلبات غير الموجودة في موقع خمسات .

    وأخيراً لكي تطور مهاراتك على جلب الزبائن و إقناعهم بخبرتك , ولكي تعرف كيفية عمل الموقع أكثر , أنصحك بقراءة مدونة موقع مستقل و الاطلاع على الكثير من المقالات المفيدة فيها  .

    يمكنك مثلاً قراءة هذا المقال : كيف توظف مترجم محترف لأعمالك عبر موقع مستقل؟

     

     

    • أعجبني 1
×
×
  • أضف...