PHP $_REQUEST
Суперглобальная переменная $_REQUEST содержит данные из отправленных форм, строк запроса URL и HTTP-куки.
Другими словами, суперглобальная переменная $_REQUEST — это массив, содержащий данные из суперглобальных переменных
$_GET,
$_POST и
$_COOKIE.
Суперглобальные переменные PHP — это встроенные переменные, которые всегда доступны во всех областях видимости!
Вы получаете доступ к данным с помощью ключевого слова $_REQUEST, за которым следует имя поля формы, параметра запроса или куки.
Примечание: Поскольку $_REQUEST может объединять данные из разных источников (GET, POST и COOKIE), это может создавать уязвимости безопасности, если не обращаться с ними осторожно. Поэтому, хотя использование $_REQUEST может быть удобным, рекомендуется использовать более специфичные суперглобальные переменные
$_GET,
$_POST и
$_COOKIE когда это возможно.
Использование $_REQUEST с POST-запросом
Здесь мы будем использовать суперглобальную переменную $_REQUEST для доступа к данным, отправленным через POST-запрос.
POST-запросы обычно представляют собой данные, отправленные из HTML-формы.
HTML-форма должна иметь атрибут method, установленный в "post", и содержать поля ввода с атрибутами name. Атрибут name используется как ключ для доступа к данным в PHP-скрипте.
Вот пример того, как может выглядеть HTML-форма:
HTML файл:
<html>
<body>
<form method="post" action="demo_request.php">
Имя: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>
Когда пользователь нажимает кнопку отправки, данные формы отправляются в PHP-файл, указанный в атрибуте action тега <form>.
В PHP-файле мы можем использовать переменную $_REQUEST для получения значения поля ввода.
PHP файл:
$name = htmlspecialchars($_REQUEST['fname']);
echo $name;
Примечание: Всегда проверяйте и очищайте все данные, собранные из суперглобальных переменных, таких как $_REQUEST, перед их использованием, чтобы предотвратить уязвимости безопасности, такие как XSS-атаки. Функция
htmlspecialchars(), использованная выше, — это один из способов сделать это. Более надежную фильтрацию можно выполнить с помощью функций фильтрации PHP.
В приведенном ниже примере мы поместили HTML-форму и PHP-код в один PHP-файл:
Пример
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Имя: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_REQUEST['fname']);
if (empty($name)) {
echo "Имя не указано";
} else {
echo $name;
}
}
?>
</body>
</html>
Попробуйте сами »
Использование $_REQUEST с GET-запросом
GET-запрос может быть отправкой формы, как в примере выше, когда атрибут method элемента <form> установлен в "get".
GET-запросы также могут быть данными из строки запроса URL (информация, добавленная в URL-адрес).
Вот пример того, как может выглядеть HTML-ссылка со строкой запроса URL:
HTML-ссылка с параметрами строки запроса:
<html>
<body>
<a href="demo_phpfile.php?subject=PHP&web=Schoolsw3.com">Тест $GET</a>
</body>
</html>
Когда пользователь нажимает на ссылку, данные строки запроса отправляются в demo_phpfile.php.
В PHP-файле мы можем использовать переменную $_REQUEST для получения значения строки запроса.
Пример
PHP файл demo_phpfile.php:
<html>
<body>
<?php
$subject = htmlspecialchars($_REQUEST['subject']);
$web = htmlspecialchars($_REQUEST['web']);
echo "Изучайте $subject на $web.";
?>
</body>
</html>
Попробуйте сами »