Суперглобальные переменные — это специально определенные переменные-массивы в PHP, которые упрощают получение информации о запросе или его контексте. Они называются superglobal, потому что они всегда доступны, независимо от области видимости, то есть вы можете получить к ним доступ из любой функции, класса или файла, не делая ничего особенного. Суперглобальными переменными являются: $GLOBALS
$_SERVER
$_GET
$_POST
$_FILES
$_COOKIE
$_SESSION
$_REQUEST
$_ENV
И хотя вы можете узнать больше о каждом из них, прочитав документацию по PHP , я хотел бы показать вам те из них, которые, по вашему мнению, вы, вероятно, используете чаще всего.
$ _GET и $ _POST
$_GET
$_POST
Параметры, отправленные в URL, доступны через $_GET
Например, этот URL:
http://example.com/profile.php?uid=12345
… Отправит параметр uid
profile.php
profile.php
$_GET["uid"]
Если у вас есть отправка формы, отправленная с использованием method="get"
$_GET as well
Формы, отправленные с использованием method="post"
опубликованные данные доступны в вашем скрипте с помощью $_POST
Вот пример веб-формы, которая отправляет имя пользователя и пароль в сценарий входа в систему:
<form action="login.php" method="post">
Username: <input type="text" name="uname"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Login">
</form>
Значение uname
pass
$_POST["uname"]
$_POST["pass"]
login.php
$_REQUEST
$_POST
$_GET
Это предлагается для удобства, но, как правило, я советую людям избегать этого. Это создает некоторые из тех же угроз безопасности, которые были зарегистрированы зарегистрированными глобалами несколько лет назад, если вы не будете осторожны. (Если вы не знаете, что я имею в виду под зарегистрированными глобальными переменными, считайте себя счастливчиком. Просто забудьте о $_REQUEST
$ _SESSION
Протокол HTTP, механизм, с помощью которого браузеры запрашивают страницы и получают их, изначально разрабатывался таким образом, чтобы каждый запрос был независим от всех остальных запросов к серверу. Тем не менее, сегодня мы не так используем интернет. Теперь люди ожидают, что каждая страница, которую они посещают на сайте, будет «помнить», что произошло ранее, будь то вход в систему или добавление новой видеоигры в их онлайн-корзину. Эта логическая связь между страницами называется сеансом .
Чтобы включить сеансы, функция session_start()
Когда сеанс активен, вы можете сохранять и извлекать данные, используя $_SESSION
Вот пример …
page1.php
$_SESSION
page2.php
<?php
session_start();
$_SESSION["videogame"] = "Battletoads";
?>
<a href="page2.php">Go to page 2</a>
Когда пользователь щелкает ссылку на page2.php
session_start()
$_SESSION["videogame"]
<?php
session_start();
echo $_SESSION["videogame"];
$ _SERVER
В суперглобальном массиве $_SERVER
Вот некоторые из наиболее полезных значений $_SERVER
-
$_SERVER["PHP_SELF"]
-
$_SERVER["REQUEST_METHOD"]
GET
POST
-
$_SERVER["REQUEST_TIME"]
метка времени Unix -
$_SERVER["HTTP_REFERER"]
Список всех доступных ключей можно найти в онлайн-документации. Имейте в виду, что не каждый из них в списке гарантированно находится в $_SERVER
это зависит от конфигурации вашего сервера и запроса, отправленного пользователем.
Резюме
Как я уже сказал, это лишь некоторые из суперглобальных элементов, доступных в PHP, которые, я думаю, вы будете использовать чаще всего. $_GET
$_POST
$_SESSION
$_SERVER
Понимание этих принципов и обучение их эффективному использованию, без сомнения, помогут вам создавать отличные интерактивные веб-сайты, использующие PHP с относительной легкостью.
Изображение через Тома Вана / Shutterstock