Пропадают переменные сессии при редикте на ту же страницу index.php
Всем привет. Пропадают переменные сессии при редикте на ту же страницу index.php
Есть файл index.php, в нем есть: session_start(); и вызов php файла (черещ форму <form>), в php файле создается наша переменная и сразу редикт на index.php Теперь наша переменная должна быть доступна в index.php, но ее нет, последнее что писало: Notice: Undefined index: login in /public_html/index.php on line 3 С индексом 100% все норм, сто раз была ошибка индекса ранее, решается она просто, тут не должно быть проблемы. Хотя хз, эти рукожопые перекроили сессии, что там всё по-новому работает. Редикт такой: exit("<meta http-equiv='refresh' content='0; url= /index.php'>"); |
Тут без хрустального шара не обойтись, а свой я разбил.
Может на сам код попробуем посмотреть? PS. редирект шикарный. |
Я по сути описал код, его чуть чуть, сами накидать можете. Есть index.php, есть вызов php через форму, есть редикт, всё.
|
Цитата:
Я правильно понял? |
wadim2,
попробуй редирект сделать иначе: header('Location: /index.php'); |
Цитата:
|
Header устарел? Ссылка на пруфы есть?
С meta тэгом редирект будет работать только в рамках браузера. У вас после редиректа на index.php создается новый php "инстанс". В index.php есть вызов session_start()? |
win10, Open Server Panel, Nginx v1.23, php (скорее всего fpm) v8.1.9
index.php: <?php session_start(); if (!empty($_SESSION['super-secret-token'])) { echo 'token has been found'; exit; } ?><form method="post" action="/form.php"><input type="submit"/></form> form.php: <?php session_start(); $_SESSION['super-secret-token'] = time(); header('Location: /index.php', true, 302); echo 'ok'; У меня все работает как и должно, никаких ошибок. Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 01:33. |