ВСЕ СТАТЬИ
Блог начинающего программиста
Кнопка войти через Яндекс
Регистрация
Программирование на JavaScript для начинающих 2.0

Самый востребованный язык программирования

Какой язык программирования должен знать абсолютно любой программист?

Узнай прямо сейчас!

Редирект

Опубликовано:
Автоматическое перенаправление пользователя браузера с одной страницы сайта на другую этого же сайта, или другого, заданную программистом.
Также, редиректом можно воспользоваться для перебрасывания посетителей со старого имени домена на новый со сменой URL-адреса в адресной строке веб-браузера.
Такой редирект на PHP можно выполнить с помощью функции header().
Эта функция добавляет заголовок к документу, пересылаемому браузеру. Ее необходимо вызывать до первой команды вывода сценария.
Сценарий, или скрипт - программа, которая запускается пользователем на сервере, обрабатывающая данные и генерирующая HTML-страницу.

Оператор вывода:

  • команда echo,
  • текст вне <?php ... и ?>,
  • текстом, также, считаются пробелы и переводы строк,
  • предупреждение, сгенерированное PHP и выведененное в браузер.

Если не выполнено это условие использования header(), то выскочит подобное сообщение:

Warning: Cannot modify header information - headers already sent by (output started at щей.рф\article.php?id=22:29) in article.php?id=22 on line 44

Сообщается о том, что на строке 29 сценария article.php?id=22 произошел вывод. В строке 44 функцияheader() вызывает ошибку.

Задача:

1. Создайте 2 текстовых поля с метками "Число 1" и "Число 2".
2. На отдельной странице сделайте обработку этой формы, вычислив сумму двух чисел.
3. Затем сделайте редирект обратно на страницу с формой и там выведите эту сумму. 
Решение:

Файл с формой для вычисления dex.php


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Редирект</title>
    </head>
    <body>
        <form action="scrip.php" method="post">
            <p>
                Ввести число 1: <input type="text" name="int1">
                Ввести число 2: <input type="text" name="int2">
                Сумма двух чисел:
                <?php
                    echo $_GET['x'];
                ?>  
            </p>
            <br>
            <p>
                <input type="submit">
            </p>
        </form>                 
    </body>
</html>

Файл обработчик вычисления scrip.php. Одна из функций для редиректа - header с добавлением заголовка Location.


<?php 
    $int1 = $_POST['int1'];
    $int2 = $_POST['int2'];
    $x = ($int1 + $int2);
    header ("Location: dex.php?x=$x");
?>

Проверить работу скрипта можно в новом окне.

Редирект с помощью заголовка Location с абсолютным адресом


Функция header() отправляет заголовки браузеру или клиенту. В эту функцию передается заголовок ответа сервера с именем Location и его значение адреса, отделенное от имени двоеточием. (Например, header ("Location: http://example.com");). Заголовок Location указывает браузеру клиента, что требуется немедленно перейти по указанному адресу (в нашем случае http://example.com), не дожидаясь тела документа, которое следует после заголовков.
Поэтому после такого заголовка не должно быть записей скрипта, кроме функции exit; Она служит для прекращения выполнения кода на текущей странице.Так как дальнейшее выполнение кода сервером не имеет смысла - клиент уже перенаправился на другую страницу (осуществился редирект).
После Location указывается абсолютный путь, а не относительный.

Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

Пока комментарий нет

Оставить свой комментарий:

Кнопка войти через Яндекс Зарегистрироваться
Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ