النتائج 1 إلى 7 من 7

الموضوع: isset - $_GET .. سؤال

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    208

    isset - $_GET .. سؤال



    السلام عليكم

    لماذا تستخدم isset في العبارات الشرطية مع ان الاستغناء عنها ممكن

    مثلاً :
    كود:
    If (isset($func))
    و
    كود:
    If ($func)
    كلها تقوم بنفس العمل فما الفائدة ؟

    وايضاً لماذا بعض الدوال تلحق بـ $_GET ؟

    هل هناك فائدة امنية ام ماذا ؟

    تحياتي





    __________________
    digitooth.com
    حدّد هدفك .. وسر خلفه .. وأبشر بالنجاح


  2. #2
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    وعليكم السلام ورحمة الله وبركاته

    بالنسبة للجزء الأول من السؤال
    فهو سؤال جيد وكثير فعلاً لا يعرفون الفرق بين استخدام الإثنين

    كود:
    $func = "text";
    If (isset($func))
    كود:
    $func = 1;
    If (isset($func))
    كود:
    $func = false;
    If (isset($func))
    في كل الحالات السابقة سوف ترجع الدالة ()isset قيمة true

    كود:
    $func = "text";
    If ($func)
    كود:
    $func = 1;
    If ($func)
    كود:
    $func = false;
    If ($func)
    في الحالتين الأولى والثانية ترجع الدالة القيمة true
    أما الحالة الثالثة ترجع القيمة false

    أرجو أن أكون قد أوضحت الفرق


    أما الجزء الثاني
    عن استخدام GET_$
    فهو لازم لاستقبال المتغيرات المرسلة عن طريق النماذج بطريقة GET أو المرسلة في رابط الملف

    تحياتي






    __________________
    مدونتي

  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    208


    شكراً لك ..

    لكن بالنسبة لـ get

    سويت برمجية بحيث يستقبل القيمة المطلوبة في العنوان

    http://www.digitooth.com/web/1.php?p=digitooth.com
    وما احتجت لـ get لنفس المتغير داخل الملف .. حطيت المتغير مثل ماهو وشغال عال العال !





    __________________
    digitooth.com
    حدّد هدفك .. وسر خلفه .. وأبشر بالنجاح

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    نعم هو شغال عال العال
    لكن مش شرط يشتغل في كل الأحوال وعلى كل السيرفرات
    بالاضافة الى كونها ثغرة برمجية

    فالطريقة الصحيحة هي استقبال المتغير عن طريق المصفوفة GET_$





    __________________
    مدونتي

  5. #5
    عضو فعال
    تاريخ التسجيل
    Feb 2002
    المشاركات
    1,247


    أخي ديجي .. هو ممكن يشتغل معك حتى لو لم تستخدم $_GET
    بس عشان يتضح لك الفرق معك من فائدة استخدامها خذ المثال هذا لمتغير اسمه var$ مثلا .. ونريد طباعته فسنكتب

    كود PHP:
    echo $var
    افرض أنك أرسلت قيمة var$ من خلال فورم معين وكانت طريقة الارسال هي $_POST .. فعندما تقول له يطبع قيمة المتغير بالشكل السابق سيطبعه ... سواء أكان المتغير مرسلا بطريقة بوست أو قيت .. لكن لو قام الزائر بتمرير قيمة للمتغير var$ عن طريق عنوان المتصفح .. فسيتم أيضا طباعتها حتى لو كان فيها ضرر على أمن الموقع
    لذلك نستخدم الطريقة التالية
    كود PHP:
    echo $_POST['var']; 
    لنخبر البرنامج بأن يتجاهل أي متغير يحمل نفس الاسم من GET ويطبعه إذا كان قادما فقط بطريقة POST

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





    __________________
    ومامن كاتب إلا سيفنى ****** ويبقي الدهر ماكتبت يداه
    فلا تكتب بكفك غير شيء ****** يسرك يوم القيامة أن تراه

  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    208


    جزاكم الله الف الف خير
    فعلاً فيها خطر امني كبير بصراحة توني استوعبه يوم جربت !





    __________________
    digitooth.com
    حدّد هدفك .. وسر خلفه .. وأبشر بالنجاح

  7. #7
    ينتظر رسالة التوكيد
    تاريخ التسجيل
    Jan 2002
    المشاركات
    892


    اقتباس المشاركة الأصلية كتبت بواسطة ديجي توث
    السلام عليكم

    لماذا تستخدم isset في العبارات الشرطية مع ان الاستغناء عنها ممكن

    مثلاً :
    كود:
    If (isset($func))
    و
    كود:
    If ($func)
    كلها تقوم بنفس العمل فما الفائدة ؟

    وايضاً لماذا بعض الدوال تلحق بـ $_GET ؟

    هل هناك فائدة امنية ام ماذا ؟

    تحياتي
    الدلة isset() وظيفتها التأكد أن المتغير موجود أم لا بغض النظر عن قيمته

    أما الطريقة التي وضعت بدون الدالة isset() لو تم ارسالة قيمة false لن تعمل جملة if اما لو كانت isset() موجودة ستعمل

    لان الهدف من الدالة isset() هو كأنك تسأل هل المتغير موجود حالياً ام لا وايضا اذا كان المتغير NULL سترجع الدالة قيمة false

    لكن مجرد وضع
    كود PHP:
    if ($func
    معنى ذلك اذا كنت تريد أن يعمل الكود ترسل القيمة true اما اذا كنت لا تريد ان يعمل ترسل القيمة false

    والكلام السابق اذا كانت $func نوعها Boolean

    اما اذا كان المتغير ليس Boolean لا فائدة من جملة if لانه بالنهاية سيعمل الكود دائما

    وهو مختلف تماماً عن المقصد من وضع الدالة isset()

    أرجو ان اكون أوضحت الفرق بين الأمرين










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض