AL Master الــمــديــر الــعــامــ
المساهمات : 646 تاريخ التسجيل : 10/11/2010
| موضوع: تفادي استخدام stripslashes() عند كل استخراج من قاعدة البيانات الجمعة نوفمبر 12, 2010 1:09 pm | |
| م
السلام عليكم ورحمة الله تعالى وبركاته
كلنا أو أغلبنا يستخدم إما mysql_real_escape_string() أو الدالة addslashes()
لتفادي حقن الـSQL
طبعا وظيفة الدالتان هي إضافة سلاش \ قبل كل حرف قد يؤثر على الإستعلام
لكن عند الإستخراج نجد هذه السلاش موجودة في النصوص وفي كل شيئ مما يستلزم استخدام الدالة stripslashes() لإزالتها
المشكلة أنه يجب علينا استخدام هذه الدالة كل مرة نقوم به بالإستخراج من القاعدة
هنا تكمن هذه الإضافة التي قمت بوضعها بعدما شعرت بالملل من وضع الدالة الأخيرة كل مرة
هذه الإضافة سوف تمكنك من عدم استخدامها بالمرة ، أي سوف يتم إزالة السلاشات أوتوماتيكيا
فكرتها بسيطة وكذا تطبيقها
ولنرى كيف نستخدمها في المثال القادم ، لكن قبل أن تقرأ المثال يجب عليك أن تعرف
أنك إذا كنت تستخدم mysql_fetch_array أو mysql_fetch_assoc أو ما يقابلهما
فسوف تستخدمهما لكن بداخل دالة
هذا مثال على الإستخدام التي سوف تصبح عليه: رمز PHP: function fetch_assoc($ressourceQuery) { $return = mysql_fetch_assoc($ressourceQuery); return $return; }
$Query = mysql_query("select subject from news where id = '1'"); $Rows = fetch_assoc($Query);
إلى الآن لم يتغير شيء ،
لنرى معا التغيير الذي سوف نقوم به على الدالة التي قد أنشأتها قبل قليل رمز PHP: function fetch_assoc($ressourceQuery) { $return = mysql_fetch_assoc($ressourceQuery); for($i = 0;$i < count($return);++$i) { $Key = array_keys($return); $Value = array_values($return); $return[$Key[$i]] = stripslashes($Value[$i]); } return $return; }
هل رأيت كيف أصبحت الدالة ؟
لقد تم إزالة كل السلاشات وسوف يتم ذلك أوتماتيكيا عند كل استخراج من القاعدة
أتمنى أن أكون قد أفدت والمعذرة إن كان هناك أي خطأ . | |
|