PHP avtotekshiruvchi
Barchaga hayrli kun. Bugun ertalab turib shu blogga maqola qo`shish haqida o`ylab qoldim lekin mavzu ko`pligi sababli qaysi birini qo`yishni bilmayotgan edim.
Yuqoridagi funksiya POST dagi elementlarni tekshiradi.
is_set($arr) — $arr bu tekshirish uchun kerakli maydonlar massivi. Funksiya maydonlar mavjudligiga tekshiradi va xatolikga qarab true yoki false qiymat qaytaradi.
funckisya pastidagi kod postdagi ma`lumotning turiga qarab uni filtrlaydi. Ushbu kodni head.php gami yoki skriptingizni har bir qismi uchun inklud qilinadigan qismiga qo`shib qo`ysangiz bo`ldi. Shunda kiritilayotgan ma`lumotlarni filtrlash kerak bo`lmaydi. Funskiyani esa hohlagan joyingizda ishlatavering. U hato qiymat qaytarmasa ma`lumotlar ustidan bemalol har hil amallar bajarsangiz bo`ladi. Hususan shu fikrlaringizni kutib qolaman :)
PHP da avtotekshiruvchi
— saytga kiritilayotgan har qanday ma`lumotni tekshiradi. Ya`ni $_POST va $_GET orqali kiritilgan ma`lumotlarni. Nimaga kerak? Har doim oddiy kod yozaverib charchab ketganlar uchun qandaydir ma`noda yangilik. Formadan kiritilgan ma`lumotlarni qayta ishlab, ularni mavjudligiga tekshirish oson, qachonki ular kam bo`lsa. Agar POST orqali 10 ta ma`lumot kiritilsa ularni barchasini mavjudligiga tekshirish uchun !empty() dan juda ko`p bor foydalanishga to`g`ri keladi. Mana kod:<?php
function is_set($arr) {
foreach($arr as $value) {
if(empty($_POST[$value])) {
$err++
}
}
if($err>0) {
return false;
} else {
return true;
}
}
if( !empty($_POST) ) {
foreach($_POST as $key=>$value) {
if(is_numeric($value)) {
$_POST[$key] = abs(intval($value));
} else {
$_POST[$key] = mysql_real_escape_string($value);
}
}
$maydon = array('login','parol','mail');
if(is_set($maydon) == true) {
//bu yerda ma`lumotlar bilan ishlash
}
}
Yuqoridagi funksiya POST dagi elementlarni tekshiradi.
is_set($arr) — $arr bu tekshirish uchun kerakli maydonlar massivi. Funksiya maydonlar mavjudligiga tekshiradi va xatolikga qarab true yoki false qiymat qaytaradi.
funckisya pastidagi kod postdagi ma`lumotning turiga qarab uni filtrlaydi. Ushbu kodni head.php gami yoki skriptingizni har bir qismi uchun inklud qilinadigan qismiga qo`shib qo`ysangiz bo`ldi. Shunda kiritilayotgan ma`lumotlarni filtrlash kerak bo`lmaydi. Funskiyani esa hohlagan joyingizda ishlatavering. U hato qiymat qaytarmasa ma`lumotlar ustidan bemalol har hil amallar bajarsangiz bo`ladi. Hususan shu fikrlaringizni kutib qolaman :)
Keyin man shu qatorga tushunmadim
o'zi kelayotgan qiymat son bo'lsa, nimaga yana uni abs(intval($value)) qilinyapti.
qoyil shunaqa qilsa ham bo`ladi :). O`zi boshida return $err; qilmoqchi edim agar xatolik bo`lsa. Shunda nechta xato borligini bilish mumkin edi. Keyin bu fikrimdan qaytdim lekin kodni to`g`irlash esimdan chiqibdi :). E`tiborila uchun rahman