MySQL_Real_escape_string يقوم بتخزين البيانات في قاعدة البيانات جنبًا
-
26-09-2019 - |
سؤال
عندما أستخدم mysql_real_escape_string على سلاسلاتي غير المقيدة ، يتم تخزين البيانات الموجودة في قاعدة البيانات باستخدام lackslashes التي لا ينبغي أن تحدث.
لدي Magic_Quotes_GPC غير متأكد من سبب حدوث ذلك. اي فكرة ؟
هل هناك أي إعداد في قاعدة بيانات MySQL التي يجب تعديلها.
أنا لا أستخدم AddSlashes في أي مكان في الكود. لغة PHP.
الرجاء المساعدة.
المحلول
هناك العديد من المتغيرات من Magic_quotes وكلها غازية للغاية ولا يمكن تجاوزها. أعتقد أنه من غير المحتمل أن يتم القيام بهذا الهروب الإضافي بواسطة DBMs.
هل راجعت كيف تبدو البيانات قبل تطبيق mysql_real_escape_string () - أود أن أراهن أنه هرب بالفعل بطريقة ما.
جيم
نصائح أخرى
الجواب بسيط. لا يوجد إعداد في قاعدة بيانات MySQL التي يجب تعديلها. إنه الرمز/الإعدادات الخاصة بك.
إما أن لديك magic_quotes_gpc
على ذلك ويجب التحقق منه ، أو بعض الكود الخاص بك يقوم بقطع آخر.
stripslashes () هو عندما يكون التوجيه php magic_quotes_gpc قيد التشغيل (إنه بشكل افتراضي) ، وأنت لا تقوم بإدخال هذه البيانات في مكان (مثل قاعدة البيانات) يتطلب الهروب. على سبيل المثال ، إذا كنت ببساطة إخراج البيانات مباشرة من نموذج HTML.
<?php
$str = "Is your name O\'reilly?";
// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>
اسمحوا لنا أن نعرف عندما تستخدم stripslashes ، ماذا تتحول مدخلاتك. هل تحصل على التنسيق المطلوب. هذا هو التحقق مما إذا كان هناك شيء ما يحدث في مدخلاتك القادمة.
نظرًا لأنك قد أخبرت أنه بدون تطبيق MySQL_Real_escape_String ، يتم تخزين بياناتك دون أي Blackslashes ... وبعد تطبيقها تحصل على Blackslash ... أشعر شخصيًا بالتحقق من الرمز الخاص بك سواء كنت تتقدم بإضافة Levslashes بعض المكان.
بعض الأسئلة...
- هل يحدث هذا فقط في هذه الوظيفة الحالية.
- تحقق من magic_quotes_gpc الخاص بك أو إيقاف تشغيله.
- هل يمكنك نشر جزء من هذه الوظيفة التي تسبب هذه المشكلة.