Статьи

Представляем PHP суперглобальные

Суперглобальные переменные — это специально определенные переменные-массивы в 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 

… Отправит параметр uidprofile.phpprofile.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>

Значение unamepass$_POST["uname"]$_POST["pass"]login.php

$_REQUEST$_POST$_GET Это предлагается для удобства, но, как правило, я советую людям избегать этого. Это создает некоторые из тех же угроз безопасности, которые были зарегистрированы зарегистрированными глобалами несколько лет назад, если вы не будете осторожны. (Если вы не знаете, что я имею в виду под зарегистрированными глобальными переменными, считайте себя счастливчиком. Просто забудьте о $_REQUEST

$ _SESSION

Протокол HTTP, механизм, с помощью которого браузеры запрашивают страницы и получают их, изначально разрабатывался таким образом, чтобы каждый запрос был независим от всех остальных запросов к серверу. Тем не менее, сегодня мы не так используем интернет. Теперь люди ожидают, что каждая страница, которую они посещают на сайте, будет «помнить», что произошло ранее, будь то вход в систему или добавление новой видеоигры в их онлайн-корзину. Эта логическая связь между страницами называется сеансом .

Чтобы включить сеансы, функция session_start() Когда сеанс активен, вы можете сохранять и извлекать данные, используя $_SESSION Вот пример …

page1.php$_SESSIONpage2.php

 <?php
session_start();
$_SESSION["videogame"] = "Battletoads";
?>
<a href="page2.php">Go to page 2</a>

Когда пользователь щелкает ссылку на page2.phpsession_start()$_SESSION["videogame"]

 <?php
session_start();
echo $_SESSION["videogame"];

$ _SERVER

В суперглобальном массиве $_SERVER Вот некоторые из наиболее полезных значений $_SERVER

  • $_SERVER["PHP_SELF"]
  • $_SERVER["REQUEST_METHOD"]GETPOST
  • $_SERVER["REQUEST_TIME"]метка времени Unix
  • $_SERVER["HTTP_REFERER"]

Список всех доступных ключей можно найти в онлайн-документации. Имейте в виду, что не каждый из них в списке гарантированно находится в $_SERVER это зависит от конфигурации вашего сервера и запроса, отправленного пользователем.

Резюме

Как я уже сказал, это лишь некоторые из суперглобальных элементов, доступных в PHP, которые, я думаю, вы будете использовать чаще всего. $_GET$_POST $_SESSION $_SERVER Понимание этих принципов и обучение их эффективному использованию, без сомнения, помогут вам создавать отличные интерактивные веб-сайты, использующие PHP с относительной легкостью.

Изображение через Тома Вана / Shutterstock