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

Создание крупного проекта на Java с нуля

Посмотри, как с нуля создаётся сложный проект на Java

Получить видеоуроки

Редирект

Опубликовано: 2017-08-01
Автоматическое перенаправление пользователя браузера с одной страницы сайта на другую этого же сайта, или другого, заданную программистом.
Также, редиректом можно воспользоваться для перебрасывания посетителей со старого имени домена на новый со сменой 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 хостинг ХостиЯ