<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

Просмотрев курс и выполнив упражнения, Вы сможете без проблем создавать функциональные движки для самых различных сайтов.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Глобальный массив $_SERVER в PHP

Глобальный массив $_SERVER в PHP

Те, кто более-менее серьёзно изучал PHP знают, что существует один очень полезный глобальный массив в PHP, который называется $_SERVER. И вот хотелось бы в этой статье разобрать самые популярные ключи и их значения в этом массиве, так как их знание просто обязательно даже для начинающего PHP-программиста.

Прежде чем приступить к глобальному массиву $_SERVER в PHP, сразу сделаю небольшую подсказку. Есть замечательная функция, встроенная в PHP, которая называется phpinfo(). Давайте сразу приведу пример её использования:

<?php
  phpinfo();
?>

В результате выполнения этого просто скрипта Вы увидите огромную таблицу с различными настройками интерпритатора PHP, в том числе, ближе к концу будет таблица значений глобального массива $_SERVER. Там будут перечислены все ключи и все соответствующие им значения. Чем это может Вам помочь? А тем, что если Вам потребуется то или иное значение, и Вы забудете, как называется ключ, то с помощью функции phpinfo() Вы можете всегда вспомнить его название. В общем, Вы выполните этот скрипт и сразу меня поймёте.

А теперь давайте перейдём к самым популярным ключам массива $_SERVER:

  • HTTP_USER_AGENT - этот ключ позволяет узнать характеристику клиента. В большинстве случаев, это, безусловно, браузер, однако, не всегда. И опять же, если браузер, то какой, вот в этой переменной об этом можно и узнать.
  • HTTP_REFERER - содержит абсолютный путь к тому файлу (PHP-скрипт, HTML-страница), с которого перешли на данный скрипт. Грубо говоря, откуда пришёл клиент.
  • SERVER_ADDR - IP-адрес сервера.
  • REMOTE_ADDR - IP-адрес клиента.
  • DOCUMENT_ROOT - физический путь к корневой директории сайта. Это опция задаётся через конфигурационный файл сервера Apache.
  • SCRIPT_FILENAME - физический путь к вызванному скрипту.
  • QUERY_STRING - весьма полезное значение, которое позволяет получить строку с запросом, а дальше можно заниматься парсингом этой строки.
  • REQUEST_URI - ещё более полезное значение, которое содержит не только сам запрос, но и вместе с ним относительный путь к вызываемому скрипту от корня. Это очень часто используется для удаления дублирования с index.php, то есть когда у нас такой URL: "http://mysite.ru/index.php" и "http://mysite.ru/" ведут на одну страницу, а URLы разные, следовательно, дублирование, что плохо скажется на поисковой оптимизации. И вот с помощью REQUEST_URI мы можем определить: с index.php или нет был вызван скрипт. И можем сделать редирект с index.php (если он присутствовал в REQUEST_URI) на без index.php. В результате, при передаче такого запроса: "http://mysite.ru/index.php?id=5", у нас будет происходить редирект на URL: "http://mysite.ru/?id=5". То есть мы избавились от дублирования, удалив из URL этот index.php.
  • SCRIPT_NAME - относительный путь к вызываемому скрипту.

Пожалуй, это все элементы глобального массива $_SERVER в PHP, которые используются регулярно. Их надо знать и уметь использовать, когда это необходимо.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (12):

malina95 malina95 13.01.2013 17:54:51

Если ввести в поисковое поле $_SERVER то он не ищет статью про глобальный массив, напишите статью как делать поиск с такими запросами

Ответить

Admin Admin 14.01.2013 15:29:37

Также, как и со всеми, только надо очень аккуратно использовать функцию quotemeta(), которую использовать только для запросов, но саму поисковую строку не модифицировать через неё.

Ответить

masik-new masik-new 13.04.2013 12:48:15

Михаил, не могли бы Вы поподробней описать про избавление от index.php? А еще лучше готовый код выложить?

Ответить

Admin Admin 13.04.2013 12:51:04

Хорошо, напишу статью. Выйдет она примерно 24-го апреля.

Ответить

masik-new masik-new 13.04.2013 12:51:50

Спасибо. Буду ждать.

Ответить

remox remox 06.07.2013 19:03:59

$query2 = "SELECT ".TB_PREFIX."wdata.id AS map_id, ".TB_PREFIX."wdata.fieldtype AS map_fieldtype, ".TB_PREFIX."wdata.oasistype AS map_oasis, ".TB_PREFIX."wdata.x AS map_x, ".TB_PREFIX."wdata.y AS map_y, ".TB_PREFIX."wdata.occupied AS map_occupied, ".TB_PREFIX."wdata.image AS map_image, ".TB_PREFIX."odata.conqured AS oasis_conqured, info_user_oasis.username AS oasis_user, info_user_oasis.tribe AS oasis_tribe, info_alliance_oasis.tag AS oasis_alli_name, ".TB_PREFIX."vdata.wref AS ville_id, ".TB_PREFIX."vdata.owner AS ville_user, ".TB_PREFIX."vdata.name AS ville_name, ".TB_PREFIX."vdata.capital AS ville_capital, ".TB_PREFIX."vdata.pop AS ville_pop, ".TB_PREFIX."users.id AS user_id, ".TB_PREFIX."users.username AS user_username, ".TB_PREFIX."users.tribe AS user_tribe, ".TB_PREFIX."users.alliance AS user_alliance, ".TB_PREFIX."alidata.id AS aliance_id, ".TB_PREFIX."alidata.tag AS aliance_name FROM ((((((".TB_PREFIX."wdata LEFT JOIN ".TB_PREFIX."vdata ON ".TB_PREFIX."vdata.wref = ".TB_PREFIX."wdata.id ) LEFT JOIN ".TB_PREFIX."odata ON ".TB_PREFIX."odata.wref = ".TB_PREFIX."wdata.id ) LEFT JOIN ".TB_PREFIX."users AS info_user_oasis ON info_user_oasis.id = ".TB_PREFIX."odata.owner ) LEFT JOIN ".TB_PREFIX."alidata AS info_alliance_oasis ON info_alliance_oasis.id = info_user_oasis.alliance ) LEFT JOIN ".TB_PREFIX."users ON ".TB_PREFIX."users.id = ".TB_PREFIX."vdata.owner ) LEFT JOIN ".TB_PREFIX."alidata ON ".TB_PREFIX."alidata.id = ".TB_PREFIX."users.alliance ) where ".TB_PREFIX."wdata.id IN ($maparray) ORDER BY FIND_IN_SET(".TB_PREFIX."wdata.id,'$maparray2')"; нашел вот такой запрос и голова закружилась)) подскажите пожалуйста, что сдесь к чему - имею ввиду join - где о нем хорошо, понятно написано? и почему там написано AS сначала? (с основами SQL знаком, несложнblе запросbl составлять умею) спасибо!

Ответить

Admin Admin 07.07.2013 08:58:22

http://myrusakov.ru/sql-join.html А as - это объявление переменной: слева её значение, а справа её имя.

Ответить

Adrenalin Adrenalin 14.09.2013 00:40:33

как с помощью php подгрузить контент ЧЕРЕЗ НЕКОТОРОЕ ВРЕМЯ? Мне нужно спрятать баннер от поисковиков!

Ответить

Admin Admin 14.09.2013 18:10:18

Задержку можно сделать только на javascript. Либо делать автообновления, а время смотреть по сессии или кукам.

Ответить

emulexx emulexx 06.11.2013 13:22:51

Здравствуйте, Михаил! Подскажите пожалуйста как узнать текущий адрес страницы. Читал что можно через REQUEST_URI, только ничего не получается. Пишу админку к сайту, и мне нужно в зависимости от адреса страницы выводить блок с формой добавления материала (он разный для каждого раздела). Форма у меня выводится, если хотя бы один материал добавлен в раздел (непосредственно через phpMyAdmin). Если материала нет, то не выводится, а надо бы. Спасибо заранее!

Ответить

Admin Admin 06.11.2013 13:56:37

В $_SERVER["REQUEST_URI"] действительно содержатся адрес страницы на сайте, причём вместе с GET-запросом к этой странице, если он есть.

Ответить

Yunior Yunior 29.08.2014 11:58:18

Здравствуйте Михаил, хотел бы узнать по подробнее на счет ключа массива $_SERVER['QUERY_STRING'];. Не могли бы вы поподробнее расписать как ею пользоваться

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.