$_REQUEST

در PHP، $_REQUEST یک Superglobal هست که اطلاعات دریافتی از کاربر را جمع‌آوری می‌کند.
این آرایه ترکیبی از داده‌های:

  • $_GET

  • $_POST

  • $_COOKIE

است و در همه جای برنامه قابل استفاده است.

1️⃣ دریافت داده‌ها از URL و فرم

<?php // URL: test.php?name=Ali echo "Hello, " . $_REQUEST['name']; // Hello, Ali ?>

2️⃣ استفاده از فرم HTML

<?php if(isset($_REQUEST['submit'])){ $username = $_REQUEST['username']; echo "Hello, " . htmlspecialchars($username); } ?> <form method="post" action=""> Username: <input type="text" name="username"> <input type="submit" name="submit" value="Submit"> </form>

🔹 می‌بینید که حتی اگر فرم با GET یا POST ارسال شود، $_REQUEST داده‌ها را دریافت می‌کند.

3️⃣ تفاوت با $_GET و $_POST

Superglobalنوع داده‌ها
$_GETفقط داده‌های URL (Query String)
$_POSTفقط داده‌های فرم با متد POST
$_REQUESTترکیبی از $_GET, $_POST, $_COOKIE

🔹 نکته: استفاده از $_REQUEST راحت است ولی در پروژه‌های حرفه‌ای توصیه می‌شود از $_GET و $_POST جداگانه استفاده شود تا امنیت بالا برود و خطای تداخل داده پیش نیاید.

4️⃣ امنیت با ()htmlspecialchars

همیشه داده‌های دریافت شده از کاربر را فرمت‌بندی یا پاکسازی کنید تا XSS و مشکلات امنیتی رخ ندهد.

<?php $name = htmlspecialchars($_REQUEST['name']); echo "Hello, " . $name; ?>

📌 جمع‌بندی

  • $_REQUEST → دسترسی همزمان به GET, POST و COOKIE

  • ساده و سریع، ولی در پروژه‌های بزرگ توصیه نمی‌شود (ممکنه داده‌ها اشتباه تداخل پیدا کنن)

  • برای فرم‌های کوچک یا تمرین مناسب است

  • همیشه داده‌ها را پاکسازی و validate کنید