[php] كلاس sql_securty لحماية المدخلات والمخرجات
مدرج تحت قسم: أدوات
3
سبتمبر
2007
هذا الكلاس هو عبارة عن function قمت بتغيره بشكل بسيط ليصبح كلاس بسيط، وأتمني تكون بداية جيدة لي معكم.
الشرح بسيط علي كل فرع بالآنجليزي. الموقع http://www.dev-ly.com
// الكود كاملا
class sql_securty{
function check_sql($vars,$type){
// Pars 1 -> just numbric
if($type == 1){
$vars = intval($vars);
}
// Part2 -> safe from sql injection ,, and add slashe
elseif($type == 2){
if(get_magic_quotes_gpc() == 0){
$vars = addslashes(htmlspecialchars($vars));
}
}
// Parst3 -> remove any slashe
elseif($type == 3){
$vars = stripslashes($vars); } // Parst4 -> dont input HTML
elseif($type == 4){
$vars = htmlspecialchars($vars);
}
// Part5 -> remove space
elseif($type == 5){
$vars = trim($vars);
}
// Pars6 -> remove some words
elseif($type == 6){
$vars = str_replace("script","",$vars);
$vars= str_replace("body","",$vars);
$vars = str_replace("on","",$vars);
$vars= str_replace("<","&l",$vars);
$vars = str_replace(">","&",$vars);
}elseif($type == 7){
$vars = md5($vars);
}else{
$vars = $vars;
}
return $vars;
}
}
هذا كل شيء..
سلامات


شكراً لك كلاس أكثر من رائع , ولكن عندي سؤال صغير (لا أزال مبتدء ) كيف ستتحدد قيمة المتغير type ? فيما إذا كان 1 أو 2 أو ….
ممكن مثال بسيط ؟
تحياتي
فراس
لك جزيل الشكر اخي العزيز على الكلاس الجميل..
سلام
اخي Bruce
لي ملاحظة ، هذه دالة واحدة فقط لماذا وضعتها في كلاس ؟؟!!
وايضا هناك بعض المهام يجب ان نتفذ مع بعضها البعض بدون الفصل بينها ،
مثل استخدام دالة trim مع تنقية المتغيرات النصية
كذلك دالة md5 اعتقد من الخطأ وضعها هنا
لانه بالامكان كتابتها md5($text)
بدل من $sql_securty->check_sql($text, 7);
اعتقد استخدامها مباشرة اسرع للسيرفر ،
كما اسلف الاخ Pal Coder لماذا الكلاس وهي فنكشن واحدة وايضا نقطة md5
ولى ايضا ملاحظة
اذا كنت تريده كلاس فمدام دالة واحدة يبقي تخليها Constructor بنفس اسم الكلاس
وهتشتغل فى php 4,5 و عند انشاء نسخة من الكلاس هتمررله القيمة وال type زي
[php]
$num_safe= new sql_securty($vars,1);
[/php]
وجزاك الله كل خير
فراس
$num_safe= new sql_securty;
$text = $sql_securty->check_sql(’Test’, 1);
// OutPuT => 0 لان الاختيار intval
echo $text;
———————————–
الاخوة الاعزاء الغرض ليس السرعة او ماشابه فالمبرمجين يعرفون كل هذة الدوال لكن المبتدئين يريدون شي سهل الاستخدام و مضمون ولهذا قمت به
وبخصوص الكلاس وضعته هكذا فقط يعني ليدخل ضمنها مع انه فنكشن بسيط
————————————-
وان شاء الله نقوم بالتطوير للافضل