Изучаем PHP 7. №24. HTTP заголовки. Функция Header. Простой редирект.

HTTP заголовки. Функция Header.
HTTP заголовки довольно обширная тема, поэтому советую ознакомиться этой темой тут и тут. Чтобы посмотреть заголовки конкретного сайта, можно воспользоваться вот этим сервисом.
Но мы сегодня будем рассматривать работу функции header(), которая используется для отправки HTTP заголовков. В частности рассмотрим пример редиректа — автоматического перенаправления пользователя на другую страницу.

Функцию header() можно вызвать только в том случае, если пользователю еще не передавались данные. Это значит, что перед ней не должно быть никакого html кода и пустого пространства.
Сама функция довольно проста, вот пример редиректа, где нам по сути нужно указать адрес страницы, для перенаправления:

<?php header("Location: http://slusar.su/"); exit(); ?>

Но у вас может возникнуть ошибка:

Warning: Cannot modify header information — headers already sent by (output started at C:\OpenServer\domains\myphp.loc\index.php:1) in C:\OpenServer\domains\myphp.loc\index.php on line 1

Это значит, что в текстовом документе в самом начале стоит невидимый символ, убрать его можно сменив кодировку документа на UTF-8 без BOM. Делать это удобнее всего в Notepad++.

exit — остановит выполнение любого кода. Это для того, чтобы убедиться, что после перехода не выполниться ничего лишнего.

Давайте создадим маленький пример использования этой функции. Например, вы можете автоматически перенаправлять пользователя на определенную страницу после регистрации или нажатия на какую-то кнопку. Или на страницу ошибки, если у пользователя нет прав для просмотра какого-то материала.
Но для общей наглядности я приведу простейший пример. Для этого создадим дополнительно две страницы:
first.php

<meta charset="utf-8">
<h1>Первый</h1>
<a href="/">Назад</a>

second.php

<meta charset="utf-8">
<h1>Второй</h1>
<a href="/">Назад</a>

index.php

<?php
if($_GET['test'] == 1) header("Location: first.php");
if($_GET['test'] == 2) header("Location: second.php");
?>

<a href="/?test=1">Первый</a> | <a href="/?test=2">Второй</a>

Советую также ознакомиться:
-http://nl3.php.net/manual/ru/function.header.php
-http://php5.kiev.ua/php7/function.header.html

—————
Мир электронной коммерции растет с каждым днем все больше и больше. И, если у вас есть товар, то найдется и покупатель. Но для того, чтобы что-то продать в интернете, нужно обратиться к тому, для кого разработка интернет магазинов повседневный труд.

Введи свой e-mail:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *