Почему мои данные SESSION не обновляются после размещения на той же странице? - PullRequest
2 голосов
/ 08 марта 2011

Я пытаюсь выяснить, почему это происходит. У меня будет пользователь @ login.php и я введу его учетные данные, как показано на панели (1) ниже.

Затем, после успешного сопоставления их учетных данных с данными, хранящимися в базе данных, я назначу переменную $ _SESSION ['username'], и страница будет отправлена ​​сама себе (action = ""), и я оповестю Пользователь, что переменная сеанса была установлена.

В идеале, мне бы не хотелось предупреждать пользователя о том, что переменная сеанса была установлена, и просто автоматически начать использовать эту переменную $ _SESSION ['username'] сразу после того, как они нажмут на кнопку входа (и будут успешно проверены).

Как мне этого добиться? Я попытался возиться с заголовками, поставив что-то вроде

<? if (isset($_SESSION['username'])) {
header("Location: index.php");
exit();
?>

Но я продолжаю получать сообщение об уже отправленных заголовках, потому что некоторые выходные данные (например, мои файлы CSS, JS) предшествуют логике проверки формы на странице login.php.

problem

1 Ответ

2 голосов
/ 08 марта 2011

Порядок операций.

Поместите ваш сеанс создания и проверки на валидность в самом верху страницы, чтобы остальная часть страницы могла выносить суждения, опровергая существование $_SESSION['username']

(Скорее всего, вы пытаетесь проверить их внутри области содержимого, чтобы ваше сообщение "yay" или "ney" появилось в нужном разделе документа. Довольно, да, но вся верхняя половинастраницы не может видеть, что это [потенциально] допустимый сеанс.)

...