$_REQUEST


ULASHISH

PHP $_REQUEST

$_REQUEST superglobal yuborilgan shakllar, URL so‘rov stringlari va HTTP cookie-fayllaridan ma’lumotlarni o‘z ichiga oladi.

Boshqacha qilib aytganda, $_REQUEST superglobal bu $_GET, $_POST va $_COOKIE supergloballaridan ma’lumotlarni o‘z ichiga olgan massivdir.

PHP supergloballari o‘rnatilgan o‘zgaruvchilar bo‘lib, ularga har doim barcha sohalarda kirish mumkin!

Siz ma’lumotlarga $_REQUEST kalit so‘zi va undan keyin shakl maydoni nomi, so‘rov parametri yoki cookie fayli orqali kirasiz.

Eslatma: Chunki $_REQUEST turli manbalardan (GET, POST va COOKIE) ma’lumotlarni birlashtira oladi, agar ehtiyotkorlik bilan foydalanilmasa, xavfsizlik zaifliklarini keltirib chiqarishi mumkin. Shunday qilib, $_REQUEST-dan foydalanish qulay bo‘lsa-da, iloji bo‘lsa, aniqroq $_GET, $_POST va $_COOKIE supergloballaridan foydalanish tavsiya etiladi.

POST so‘rovida $_REQUEST dan foydalanish

Bu yerda biz POST so‘rovi orqali yuborilgan ma’lumotlarga kirish uchun $_REQUEST superglobal-dan foydalanamiz.

POST so‘rovi odatda HTML shaklidan yuborilgan ma’lumotlardir.

HTML formasida method bo‘lishi kerak atribut "post" ga o‘rnatiladi va ism atributlari bilan kiritish maydonlarini o‘z ichiga oladi. Ism atribut PHP skriptidagi ma’lumotlarga kirish uchun kalit sifatida ishlatiladi.

Bu yerda HTML formasi qanday ko‘rinishi mumkinligiga misol:

HTML fayl:

<html>
<body>

<form method="post" action="demo_request.php">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

</body>
</html>

Foydalanuvchi yuborish tugmasini bosganida, forma ma’lumotlari PHP faylida ko‘rsatilgan action atributi <form> teg.

PHP faylida biz kiritish maydonining qiymatini yig‘ish uchun $_REQUEST o‘zgaruvchisidan foydalanishimiz mumkin.

PHP fayli:

$name = htmlspecialchars($_REQUEST['fname']);
echo $name;
Eslatma: XSS hujumlari kabi xavfsizlik zaifliklarining oldini olish uchun uni ishlatishdan oldin har doim $_REQUEST kabi supergloballardan to‘plangan barcha ma’lumotlarni tasdiqlang va tozalang. Yuqoridagi htmlspecialchars() funksiyasi buni amalga oshirishning bir usuli hisoblanadi. PHP filtri funksiyalari yordamida yanada mustahkam filtrlash mumkin.

Quyidagi misolda biz HTML formasi va PHP kodini bir xil PHP fayliga joylashtirdik:

Misol

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  Name: <input type="text" name="fname">
  <input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $name = htmlspecialchars($_REQUEST['fname']);
  if (empty($name)) {
    echo "Name is empty";
  } else {
    echo $name;
}
?>

</body>
</html>
O‘zingiz sinab ko‘ring »


GET so‘rovida $_REQUEST dan foydalanish

GET so‘rovi yuqoridagi misolda bo‘lgani kabi shakllar bo‘lishi mumkin method atributi <form> element "olish" ga o‘rnatiladi.

GET so‘rovlari URL so‘rov stringidan olingan ma’lumotlar ham bo‘lishi mumkin (URL manziliga qo‘shilgan ma’lumotlar).

URL so‘rov stringi bilan HTML havolasi qanday ko‘rinishi mumkinligiga misol:

URL so‘rov parametrlari bilan HTML havolasi:

<html>
<body>

<a href="demo_phpfile.php?subject=PHP&web=W3schools.com">Test $GET</a>

</body>
</html>

Foydalanuvchi havolani bosganida, so‘rov stringi ma’lumotlari demo_phpfile.php manziliga yuboriladi.

PHP faylida so‘rov stringining qiymatini yig‘ish uchun $_REQUEST o‘zgaruvchisidan foydalanishimiz mumkin.

Misol

PHP fayli demo_phpfile.php:

<html>
<body>

<?php
$subject = htmlspecialchars($_GET['subject']);
$web = htmlspecialchars($_GET['web']);
echo "Study $subject at $web.";
?>

</body>
</html>
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!