передать переменную с помощью $_SESSION на другую страницу

248
11 апреля 2017, 12:26

есть ссылка: http://www.cr.com/act.php?key=YWFAYWEuYWE

в файле act.php следующий код:

<?php
    $key = $_GET['key'];
    $_SESSION['key'] = $key;
    header("location: http://cr.com/error/");
?>

код страницы error:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div>
            <h4>
                <?php 
                    if($_SESSION['key'] != "")
                    {
                        echo $_SESSION['key'];
                    }
                ?>
            </h4>
        </div>
    </body>
</html>

я при клике на ссылку пытаюсь прочитать переменную key с помощью $_GET, запоминаю его в $_SESSION, перехожу на страницу error и вывожу там.

НО при клике на ссылку меня перекидывает на пустую страницу error. Думал не срабатывает $_GET

Сделал так, код файла act.php поменял на:

<?php
    $key = $_GET['key'];
    $_SESSION['key'] = $key;
    echo $_SESSION['key'];
?>

В итоге при клике на ссылку я остаюсь на странице act.php, а echo $_SESSION['key']; срабатывает нормально и выводит YWFAYWEuYWE.

Почему значение $_SESSION['key'] не выводится на странице error?

Answer 1

Потому что сессию проверять надо прежде, чем выполнять редирект:

<?php
    session_start();
    $key = $_GET['key'];
    $_SESSION['key'] = $key;
    if ($_SESSION['key'] == "") {
        header("location: http://cr.com/error/");
    }
?>
Answer 2

Проблема заключалась в том, что не передавались сессии на другую страницу!

Сессии, как оказалось, не передаются, если в редиректе указан абсолютный адрес:

header("location: http://cr.com/error/");

Поменял на:

header("location: /error/");

и все, сессии передаются, все работает как надо :)

READ ALSO
Помогите изменить парсер

Помогите изменить парсер

Есть код , который парсит текст и ссылки с определенного адреса

240
ESelect2 дублирует данные при отправке формы

ESelect2 дублирует данные при отправке формы

Добрый день! Использую в проекте расширение anggiaj/ESelect2 для множественного выбора значений, и при отправке формы отправляемые данные дублируютсяТочнее,...

243
Webmoney merchant laravel result url

Webmoney merchant laravel result url

Пытаюсь подключить мерчант на свой сайтResult url выдает ошибку 405

295