سؤال

كنت أحاول تطهير المدخلات إلى تسجيل الدخول إلى PHP باستخدام AddSlashes و MySQL_Real_escape_string. استخدام addslashes يعمل ، ولكن mysql_real_escape_string سوف لن.

إليك مثال على ما يسمح لي بتسجيل الدخول بشكل صحيح:

$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);

وهذا لن:

$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);

أيضا ، بعض الحقول الأخرى الخاصة بي تحتوي على علقات الافتراضات. لم يتم إرجاع أي شيء عند استخدام AddSlashes ، نظرًا لأن الإدخال الموجود في DB لم يفلت. كنت أتساءل عما إذا كنت أستخدم mysql_real_escape_string يمكنني إصلاح هذا ، لكنني لا أعرف كيف.

هل كانت مفيدة؟

المحلول

استخدم دائمًا mysql_real_escape_string بدلاً من الإضافة. تأكد من توصيلك بقاعدة البيانات قبل تشغيله خلاف ذلك سوف خطأ.

نصائح أخرى

mysql_real_escape_string () لا يهرب ٪ و _. هذه هي البطاقات البرية في MySQL إذا كان مع ذلك مع منحة ، أو المنح ، أو الإلغاء.

والشيء الأكثر أهمية هو عدم الثقة في مدخلات المستخدم.

لذلك ، استخدم HTMLSpecialChars و Strip_tags لتحسين الأمان.

في بعض الأحيان قد يكتب المستخدم ', ، هذا الرمز ولكن SQL يعامل كوسيلة مختلفة ويسمح له بعدم السماح بإدخال الجداول ، لا يمكننا تقييد المستخدم حتى نستخدم سلسلة الهروب الحقيقية MySQL لتجنب هذا النوع من الأخطاء

ملاحظة: إذا قمت بتطبيق هذا ، فيجب الاتصال بقاعدة البيانات الأخرى ، فلن تعمل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top