السلام عليكم ورحمة الله وبركاته
كيف الشباب ..
أعجبني في كتاب لمؤلفه محمد شيخو معمو "صمم أقوى المواقع الديناميكية باستخدام php"
طريقة ترشيحه للبيانات الصادرة إلى قاعدة البيانات وبالطبع يمكن تفادي عدة مشاكل لبرنامجك وقد تخلق ثغرات خطيرة مثل ثغرات SQL Injection فأولا سوف أقوم بكتابة الدالة ثم طريقة استعمالها فمثلا ..
لو قلنا أنه عندك نموذج تسجيل دخول ويقوم بوظيفة الاختيار من قاعدة البيانات على حسب البيانات التي تم إدخالها في حقول النموذج .. (واضح ؟)
فو افترضنا أن لدينا هذا النموذج :
كود PHP:
<form method=POST action=$_SERVER[PHP_SELF]>
<input type=text name=user>
<input type=text name=pass>
<input type=submit name=submit vlaue="دخول">
فعندما نقوم بالاستعلام عن هذه البيانات من قاعدة البيانات نقوم بما يلي :
كود PHP:
function escape_data ($data) {
global $conn; // Need the connection.
if (ini_get('magic_quotes_gpc')) {
$data = stripslashes($data);
}
return mysql_real_escape_string($data, $conn);
}
$name = escape_data($_POST[name]);
$pass = escape_data($_POST[pass]);
$sql = mysql_query("
SELECT * FROM users WHERE
user_name = $name
user_pass = $pass
");
فبهذا يمكمك استعمال الاستعلام دون خوف على البيانات المدخلة بإذن الله ..
وذلك بفضل استعمال الدالة mysql_real_escape_string();
ملاحظة :
المتغير $conn استبدله بمتغير الاتصال بقاعدة البيانات في الكونفق أو غيره
تحياتي ..