اعذروني لأسم الدرس ولكنني أتكلم بجد
أولا مرحبا بكم مجددا
موضوعي اليوم صغير جدا جدا جدا جدا magic_quotes , addslashes() , stripslashes() دوال بطبعها ليست خطره : وأقصد هنا أن هذه الدوال تستعمل لتأمين المدخلات وقد تستعمل بعض الأحيان كسلاح له وجهين دفاعي وهجومي
ونقول ما علينا .. من منكم يعرف ملف php.ini
هذا الملف للأسف هو القنبله التي يتجنب الكثيرين النظر فيه أقول لكم قبل ما تبدأ برمجتك أعرف هذا الملف أولا لأنه مهم جدا جدا
داخل هذا الملف
لأنها تضيف الشرطة المائله لجميع المتغيرات
فأنها تضيف شرطات مائله () الى جميع المتغيرات GET/POST/COOKIE لذلك لا يوجد داعى لاستخدام addslashes() اذا كان هذا الخيار مفعلا لذلك فعند اجراء الاستعلامات لاننا بهذا سنعقد المسأله , ولتوضيح ما ارمي اليه , فاذا كان هذا الخيار مفعلا ستصبح كلمه I'M = I\'M وايضا اذا استخدمنا داله addslashes() فى حاله كان الخيار غير مفعل ستصبح كلمه I'M = I\'M لاحظنا الان ان الاثنين يقومون بنفس العمل فما بالك اذا قمنا بأستخدام الداله addslashes() وكان خيار
الموضوع بتصريف "منقول ومعدل" بالتوفيق للجميع الكاتب php-Tiger
موضوعي اليوم صغير جدا جدا جدا جدا magic_quotes , addslashes() , stripslashes() دوال بطبعها ليست خطره : وأقصد هنا أن هذه الدوال تستعمل لتأمين المدخلات وقد تستعمل بعض الأحيان كسلاح له وجهين دفاعي وهجومي
ونقول ما علينا .. من منكم يعرف ملف php.ini
هذا الملف للأسف هو القنبله التي يتجنب الكثيرين النظر فيه أقول لكم قبل ما تبدأ برمجتك أعرف هذا الملف أولا لأنه مهم جدا جدا
داخل هذا الملف
magic_quotes_gpc =ON
فيا ويلنا لو أستعملنا الدوال السابقةلأنها تضيف الشرطة المائله لجميع المتغيرات
فأنها تضيف شرطات مائله () الى جميع المتغيرات GET/POST/COOKIE لذلك لا يوجد داعى لاستخدام addslashes() اذا كان هذا الخيار مفعلا لذلك فعند اجراء الاستعلامات لاننا بهذا سنعقد المسأله , ولتوضيح ما ارمي اليه , فاذا كان هذا الخيار مفعلا ستصبح كلمه I'M = I\'M وايضا اذا استخدمنا داله addslashes() فى حاله كان الخيار غير مفعل ستصبح كلمه I'M = I\'M لاحظنا الان ان الاثنين يقومون بنفس العمل فما بالك اذا قمنا بأستخدام الداله addslashes() وكان خيار
magic_quotes_gpc =ONستصبح كلمه I'M = I\\'M
ارأيتم التعقيد ؟ ماذا لو اردنا استخراج هذا الناتج من قاعده البيانات واخراجه للمستخدم الناتج التلقائي سيكون
I\'M
وهو غير مطابق للمدخلات بأى حال من الاحوال ولذلك وجب علينا استخدام داله stripslashes() وسيكون النتيجه
I'M
ولكن لماذا نستخدم هذا الكم من الدوال مادام فى امكاننا ان نستخدم داله واحده فقط وهى addslashes() ؟؟؟
تذكرو دائما ان المبرمج المحترف هو من يصل للنتيجه بأقل عدد من الاسطر البرمجيه
لذلك اننى انصح بغلق الـــ magic_quotes_gpc
واستخدام داله addslashes() فقط عند ادخال بيانات لقاعده بيانات فقط
يمكنك غلق الــ magic_quotes_gpc وجعله = OFF عن طريق اضافه الكود التالى لملف .htaccess
<IfModule mod_php4.c>
php_flag magic_quotes_gpc off
</IfModule>
الموضوع بتصريف "منقول ومعدل" بالتوفيق للجميع الكاتب php-Tiger