Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2023, 22:54
Интересующийся
Отправить личное сообщение для wadim2 Посмотреть профиль Найти все сообщения от wadim2
 
Регистрация: 01.09.2020
Сообщений: 19

Пропадают переменные сессии при редикте на ту же страницу 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'>");
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2023, 00:16
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Тут без хрустального шара не обойтись, а свой я разбил.
Может на сам код попробуем посмотреть?

PS. редирект шикарный.
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2023, 11:05
Интересующийся
Отправить личное сообщение для wadim2 Посмотреть профиль Найти все сообщения от wadim2
 
Регистрация: 01.09.2020
Сообщений: 19

Я по сути описал код, его чуть чуть, сами накидать можете. Есть index.php, есть вызов php через форму, есть редикт, всё.
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2023, 12:15
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от wadim2
Я по сути описал код, его чуть чуть, сами накидать можете.
Ну, то есть мне нужно накидать ваш код с ошибками, чтобы он не работал и сказать вам где я умышленно допустил ошибку.
Я правильно понял?
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2023, 13:33
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

wadim2,
попробуй редирект сделать иначе:

header('Location: /index.php');
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2023, 17:20
Интересующийся
Отправить личное сообщение для wadim2 Посмотреть профиль Найти все сообщения от wadim2
 
Регистрация: 01.09.2020
Сообщений: 19

Сообщение от Nexus Посмотреть сообщение
Ну, то есть мне нужно накидать ваш код с ошибками, чтобы он не работал и сказать вам где я умышленно допустил ошибку.
Я правильно понял?
У меня большой опыт, с кодом все ок. Раньше этот код работал. Тут дело в новом апаче, новом php, из-за них не работает. У меня был header(), по новым правилам header() устарел и нужно писать как я написал код в теме. Я думаю у Вас будет работать, так как старый сервер. Попробуйте на новом сервере, к примеру на хостинге beget.com, работать не будет. То есть, когда у Вас обновят хостинг, то Вы столкнётесь с той же проблемой, что и я.
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2023, 17:49
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Header устарел? Ссылка на пруфы есть?

С meta тэгом редирект будет работать только в рамках браузера.

У вас после редиректа на index.php создается новый php "инстанс". В index.php есть вызов session_start()?
Ответить с цитированием
  #8 (permalink)  
Старый 26.12.2023, 18:10
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

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';


У меня все работает как и должно, никаких ошибок.

Сообщение от wadim2
по новым правилам header() устарел
Это где вы такую чушь прочитали?

Цитата:
Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated
Если у вас эта ошибка, то это не значит, что функция header помечена как устаревшая. Это именно передача третьим параметром null'а помечена устаревшим "поведением".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача такова : нужно при клике на ссылку открыть страницу с новой вкладке, оставаясь asustekk Javascript под браузер 4 25.05.2012 14:04
установить переменную сессии через ajax при загрузке страницы optik77 AJAX и COMET 3 02.06.2011 17:36
Как сделать так чтобы при нажатии на лого, он возвращал на главную страницу. Severance Flash 2 01.04.2011 16:25
авторедирект при заходе на главную страницу igrok Сайт Javascript.ru 1 28.03.2011 12:11
автологин при заходе на сайт (страницу) Константин Internet Explorer 5 20.08.2009 08:11