Перенаправление (redirect) на другую страницу
Наряду с чтением HTTP-заголовков имеется возможность формировать свои собственные заголовки. Одним из наиболее используемых заголовков является "Location", который осуществляет перенаправление браузера на указанную страницу.
Для создания заголовка используется функция header. В частности, для создания заголовка, который перенаправит браузер на заданный адрес, используется вызов header("Location: URL").
Например, требуется создать страницу с тремя кнопками, каждая из которых осуществит перенаправление на один из примеров из предыдущей статей — phpbuttons, phplistbox или phptextarea. Для этого используется три различных формы, каждая из которых содержит единственную кнопку отправки. В атрибуте VALUE каждой кнопки содержится имя скрипта, на который следует осуществить перенаправление. При этом для всех трех форм используется один и тот же скрипт-обработчик. Это продемонстрировано на примере.
<HTML> <HEAD> <TITLE>Перенаправление пользователь</TITLE> </HEAD> <BODY> <H1>Перенаправление пользователя</H1> Выберите скрипт для загрузки <FORM NAME="form1" ACTION="phpredirect.php" METHOD="POST"> <INPUT TYPE="SUBMIT" NAME="Button" VALUE="phpbuttons"> </FORM> <FORM NAME="form2" ACTI0N="phpredirect.php" METHOD="POST"> <INPUT TYPE="SUBMIT" NAME="Button" VALUE="phplistbox"> </FORM> <FORM NAME="form3" ACTI0N="phpredirect.php" METH0D="POST"> <INPUT TYPE="SUBMIT" NAME="Button" VALUE="phptextarea"> </FORM> </BODY> </HTML>
Если пользователь щелкнет по одной из трех кнопок на форме, имя выбранного скрипта будет передано обработчику, который представлен в примере.
<?php $redirect = "Location: " . $_REQUEST['Button'] . ".html"; echo header($redirect); ?>
Для выполнения перенаправления скрипт используется функция header. Например, если пользователь нажал на вторую кнопку, будет загружена страница phplistbox html.
Перенаправление, в частности, эффективно для создания областей перехода на кнопках-изображениях. При этом сначала проверяются координаты точки, по которой был произведен щелчок, а потом пользователь перенаправляется на соответствующую страницу:
<?php if ($_REQUEST["imap_x"]>50 && $_REQUEST["imap_x"]<70) { if ($_REQUEST["imap__y"]>30 && $_REQUEST["imap_y"]<90) { $redirect = "Location: samplecode.ru"; header ($redirect); } } ?>
Автор: Стивен Хольцнер. Переводчик: С. Банников