PHP filtrlari - tekshirish va tozalash

P

Ushbu maqolada siz sarlavha, Filtrlar va Qayta qo'ng'iroq funktsiyalari bo'yicha ba'zi foydali PHP mavzularini o'rganasiz. Keling, filtrlardan boshlaylik.

PHP filtrlari

PHP filtrlari kiritilgan ma'lumotlarni tozalash va tekshirish uchun ishlatiladi.

Sanitarizatsiya: Kiritilgan maʼlumotlardan noqonuniy belgilarni olib tashlash uchun.

Tasdiqlash: Kirish ma'lumotlari to'g'ri shaklda yoki yo'qligini aniqlash jarayoni.

PHP filtrlari so'rovni yuborishdan oldin ma'lumotlarni tozalash va tekshirishni ta'minlaydi.

Sanitizatsiya va tasdiqlash nima uchun muhim?

Sizning veb-sahifangizda foydalanuvchi o'z manzilini yozishi mumkin bo'lgan kiritish maydoni bor deylik. Xakerlar so'rov orqali serverga o'tadigan va xakerga tizimni buzishga imkon beradigan kirish maydoniga istalgan skriptni yuborishi mumkin, Sanitizatsiya hech qanday skriptning server tomonida ishlashiga ruxsat bermaydi.

Boshqa tomondan, sizda foydalanuvchidan elektron pochta va parolni talab qiladigan login veb-sahifangiz bor deylik. Tasdiqlash elektron pochta maydoni haqiqiy format elektron pochta va parol maydoni bilan to'ldirilganligini tekshiradi, minimal va maksimal uzunlik buzilmagan.

PHP filtri kengaytmasi

PHP filtri kengaytmasi ma'lumotlarni tekshirishni tez va oson qilish uchun mo'ljallangan. PHP filtri kengaytmasi kiritilgan ma'lumotlarni osongina tekshirishga yordam beradigan ko'plab funktsiyalarni o'z ichiga oladi.

filter_list PHP funksiyasi filtr kengaytmasidagi barcha funksiyalarni qaytaradi.

 <?php
  foreach (filter_list() as $id =>$filter) {
    echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>

Ma'lumotlarni filtrlash zarur bo'lgan manbalar qanday?

Quyidagi manbalar ma'lumotlarni tashqaridan kiritishi mumkin va filtrlashni talab qiladi.

  • Shaklda maydonlarni kiriting
  • Cookies
  • Veb-xizmatlarning ma'lumotlari
  • Server o'zgaruvchilari
  • Ma'lumotlar bazasi so'rovlari natijalari

PHP da Filter_var funksiyasi

Bu funksiya oʻzgaruvchida saqlangan maʼlumotlarni ham sanitarizatsiya qiladi, ham filtrlaydi. U ikkita parametrni qabul qiladi. Birinchi parametr filtrni qo'llamoqchi bo'lgan o'zgaruvchidir. Ikkinchi parametr - o'zgaruvchiga qo'llaniladigan filtr turi. Endi biz PHP-da mavjud bo'lgan ba'zi muhim filtr turlarini o'rganamiz.

PHPda qatorni qanday tozalash kerak?

FILTER_SANITIZE_STRING filtri qatordan barcha HTML teglarini olib tashlaydi. Veb tajovuzkorlar HTML tegining atributlari sifatida skriptlarni yuborishlari mumkin. Shuning uchun, HTML teglari qatorga ruxsat berish uchun zararli hisoblanadi. Quyidagi misolga qarang.

<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>

PHP da butun sonni qanday tekshirish mumkin?

FILTER_VALIDATE_INT raqam butun son yoki yo'qligini tekshiradi. Ikkinchi parametr filer_var funksiyasining filtrini, birinchi parametr esa raqamni saqlaydi. Quyidagi misolni ko'rib chiqing.

<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

Eslatma: FILTER_VALIDATE_INT bilan filter_var funksiyasi 0 ni butun bo‘lmagan son sifatida ko‘rib chiqadi. Shunday qilib, agar siz butun sonlarga 0 ni kiritishingiz kerak bo'lsa, yuqoridagi misolning if shartini 0 ga ruxsat berish uchun o'zgartirishingiz mumkin.

PHP da IP manzillarni qanday tekshirish mumkin?

FILTER_VALIDATE_IP filtr to'g'ri IP manzilni tekshiradi. Birinchi parametr IP-manzil, ikkinchi parametr filter_var funksiyasidagi filtr nomidir.

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip is a valid IP address");
} else {
  echo("$ip is not a valid IP address");
}
?>

PHP da elektron pochtani qanday tozalash va tekshirish mumkin?

filter_var ushbu funktsiyaga ikkinchi parametr sifatida uzatilgan elektron pochtani tekshirish va tozalashni amalga oshiradi. Elektron pochtani tozalash uchun foydalaning FILTER_SANITIZE_EMAIL avval filer_var funksiyasi bilan, keyin esa elektron pochtani tekshirish uchun foydalaning FILTER_VALIDATE_EMAIL filtr. Quyidagi misolga qarang.

<?php
$email = "john.doe@example.com";

// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>

PHP da URLni qanday tozalash kerak?

URLni birinchi parametr sifatida file_var funksiyasiga o'tkazing va FILTER_VALIDATE_URL ikkinchi parametr sifatida. U URL manzilidan barcha noqonuniy belgilarni olib tashlaydi. Filtrlash juda foydali.

<?php
$url = "https://www.w3schools.com";

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
  echo("$url is a valid URL");
} else {
  echo("$url is not a valid URL");
}
?>

Istisno nima va PHPda qanday qilib istisno qilish mumkin?

Istisno - bu skriptni bajarish paytida qandaydir xatolik yuz berganligini bildiruvchi ob'ekt. PHP funktsiyalari va sinflari istisnolarni keltirib chiqaradi va foydalanuvchi tomonidan aniqlangan funktsiyalar ham istisnolarni tashlashi mumkin.

Istisnolar oxirida noto'g'ri natijalar bermasdan funktsiyani to'xtatishning samarali usulidir.

The otish kalit so'z istisnolarni yuboradi. Tutib ko'ring blok kod bloki tomonidan chiqarilgan istisnolarni ushlaydi. Agar istisnolar qo'lga kiritilmasa, u qo'lga olinmagan istisno halokatli xatoni beradi.

urinish blok bajarishga ruxsat beruvchi kod blokidan iborat. Catch blok faqat try bloki istisno qilganda bajariladi. Siz istisno ob'ekti yordamida catch blokida istisno haqida ma'lumot olishingiz mumkin. Quyidagi misolga qarang, unda 0 ga bo'linish istisnolar tashlanadi va catch blokida olinadi.

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide.";
}
?>

Filtrlar haqida to'liq ma'lumot olish uchun siz murojaat qilishingiz mumkin Bu yerga.

Fikr qo'shish

Repetitor tarmog'i

PHP tilini A dan Z gacha o'rganing