Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rusldv
8 лет назад

PHP - Урок 5. Переменные сервера и глобальные перемепнные

Переменные сервера



И так сегодня мы приступаем к изучению соответственно программирования. Вводные темы по серверам мы прошили:

Я буду писать уроки так как учил их я. Потому что честно говоря. Многие учебники по PHP это либо копипаст с сайта php - либо пустая трата времени на размышления автора.
Мы хотим изучить все быстро. Тем более PHP делали как раз с этой целью.

У нас есть денвер, там папка c названием www. Вот туда мы сегодня и будем кластьть наши файлы. По настройкам серверов apache и nginx для реальных сайтов я сделаю отдельный урок. Сегодня же нам нужно по пробывать как это работает.
В первую очередь мы можем создать файл test.php и написать в нем <?php phpinfo(); ?>

Во первых мы убедимся что PHP обрабатывает наши скрипты, а во-вторых увидим настройки сервера и php.ini!

Если вы создали папку сайта только что, то денвер нужно перезапустить - кликнуть на рабочем столе restart denver.
Затем открываем браузер и набираем название созданной нами папки для сайта - в нашем примере thesite.loc

Наш сервер опять отобразил нам файл, который мы недавно написали - test.php. Хотя в реальных сайтах сервер не должен его отображать. Ну то есть он не должен показывать файлы. Это издержки безопасности. Они как раз таки важны для нашего php-шного случая.
Если вы поняли мои предыдущие уроки, то уже догадались. Клик по test.php - это тоже самое, что запрос файла http://thesite.ru/test.php.

И так посмотрим что нам вернул сервер:

Это результат работы функции phpinfo();

Как она что сделала я раcскажу в следующем уроке.
А пока как и обещал рассмотрим переменные среды. Это фактически основа основ.
Почему так спросите вы? Дело в том что программа всегда получает данные - делает с ними что-то и возвращает. Правда иногда эти данные являются пустыми (void) - тут главное без философии. Вскоре рассмотрим контекст, память и функции))

Чаще всего свои программы я начинаю писать со строки отображающей переменные сервера:

<?php
 print_r($_SERVER);

Ну тег PRE здесь для форматирования. Если не умничать - он добавит где нужно перевод строки. И вывод получится более читабельным.
Функция print_r - распечатывает массив. (Есть еще похожая функиция var_dump - работает по такому же принципу, но еще добавляет в свой вывод типы переменных).
Эти функции используются для отладки. И изучения данных.

Можете считать что в переменной $_SERVER хранятся данные, которые передаются скрипту в первую очередь. Например это может быть ссылка на никнейм профиля.

Допустим http://thesite.ru/rusldv или например https://twitter.com/rusldv или https://golos.io/@rusldv - теперь вы знаете где их искать -
в глобальном массиве переменных сервера $_SERVER, а именно в $_SERVER['REQUEST_URI']

это нам пригодится когда мы изучим файл .htaccess который настраивает сервер апач.

А пока еще пара глобальных массивов

$_GET и $_POST


Это то тоже массивы, которые содержат данные - они содержат данные переданные из самой html-страницы, а что бы их передать используется HTML-тег <FORM> например так

<?php print $_GET['message']; ?>
<form action="">
<input type="text" name="message" />
<input type="submit" />
</form>

Если мы добавим данный код в файл PHP то он создаст переменную message и передаст ее GET-запросом в тот же php-файл. После чего наш текст введенный в поле input сервер загрузит в переменную $_GET['message'], а PHP - интерпретатор с помощью функции print (то же самое что и echo) выведет ее значение перед отправкой серверу.

В данном примере мы передали значение через GET запрос (поэтому и переменная называется GET). Есть аналогичный запрос POST. Он может передавать больше данных - GET в данный момент почему-то разработчики браузеров причислили к отображаемым в браузере данным и например майкрософт обрезает в некоторых своих браузерах данные этого запроса до выдуманного ими пределе. Странное поведение я не понимаю их))
Скорее всего это связано именно с названиями - GET - что, то запрашивает, и соответственно он сообщает данные об объекте запроса. А POST - сохраняет. Поэтому он должен передавать более крупные данные. На самих буферах TCP это правда никак не сказывается :)

Итак. В начале наших любых скриптов мы должны воспоминать о переменных $_SERVER, $_GET и $_POST (далее еще сюда присоединится $_FILES) - это те самые данные, которые пользователь нашей программы-сайта вводит для ее запуска.


Итак, для сегодняшнего урока я думаю это самый раз. Просто попробуйте запустить примеры которые я привел выше. Если будут вопросы - обязательно пишите в комментарии. Или в чат. В следующем уроке будет разбор условиев и циклов :)
68
616.906 GOLOS
На Golos с November 2016
Комментарии (3)
Сортировать по:
Сначала старые