есть ссылка: 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?
Потому что сессию проверять надо прежде, чем выполнять редирект:
<?php
session_start();
$key = $_GET['key'];
$_SESSION['key'] = $key;
if ($_SESSION['key'] == "") {
header("location: http://cr.com/error/");
}
?>
Проблема заключалась в том, что не передавались сессии на другую страницу!
Сессии, как оказалось, не передаются, если в редиректе указан абсолютный адрес:
header("location: http://cr.com/error/");
Поменял на:
header("location: /error/");
и все, сессии передаются, все работает как надо :)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день! Использую в проекте расширение anggiaj/ESelect2 для множественного выбора значений, и при отправке формы отправляемые данные дублируютсяТочнее,...
Пытаюсь подключить мерчант на свой сайтResult url выдает ошибку 405