|
|
|
| Если после принятия данных формы мы делаем редирект на другую страницу, например, на страницу результата, сессия почему-то теряется. Можно сделать и без редиректа, просто интересно стало, почему так происходит.
Вот пример:
<?php
if(isset($_POST['Enter'])){
//здесь что-то делаем с поступившими данными
header("Location: index.php?page=74");
}
?>
|
| |
|
|
|
|
|
|
|
для: Лена
(29.10.2009 в 14:17)
| | Скорей всего сессия не была создана, или удаляеться где-то в скрипте | |
|
|
|
|
|
|
|
для: tvv123456
(29.10.2009 в 14:19)
| | Простейший пример.
<?php
session_start();
if(isset($_POST['Save'])){
//обработка $_POST, проверка ошибок
$_SESSION['name'] = $_POST['name'];
header("Location: asd.php");
}
if(!isset($_POST['Save'])){
echo '<form action="prov.php" method="post">
<input name="name" type="text" value=""><br />
<input name="Save" type="submit" value="Войти">
</form>';
}
?>
|
И скрипт, на который делаем редирект:
<?php
session_start();
print $_SESSION['name'];
?>
|
Сессии нет. Почему? | |
|
|
|
|
|
|
|
для: Лена
(30.10.2009 в 12:59)
| | Проверте вот здесь $_POST['name']; приходит то что нужно или быть может все-таки пустота?
без переадресации напишите echo $_POST['name'];
и проверить существование лучше наверно при помощи if(isset()) | |
|
|
|
|
|
|
|
для: Лена
(30.10.2009 в 12:59)
| | header("Location: asd.php");
}
Вслед за этими строками сессия не гасится?
Сессия точно передается через куки, или есть вероятность , что нужно в Location SID передать? | |
|
|
|
|
|
|
|
для: Trianon
(31.10.2009 в 00:34)
| | Такое безобразие опять только в ИЕ.
>Вслед за этими строками сессия не гасится?
а как я могу проверить, гасится она или нет? через print я проверить не могу, меня же на другую страницу редиректом перебрасывает.
>или есть вероятность , что нужно в Location SID передать?
вероятность есть, но header("Location: asd.php?" . SID); никакого эффекта не дал. | |
|
|
|
|
|
|
|
для: Лена
(31.10.2009 в 01:02)
| | >>Вслед за этими строками сессия не гасится?
>а как я могу проверить, гасится она или нет? через print я проверить не могу, меня же на другую страницу редиректом перебрасывает.
я к тому, что если написать
<?php
session_start();
if(isset($_POST['Save'])){
//обработка $_POST, проверка ошибок
$_SESSION['name'] = $_POST['name'];
header("Location: asd.php");
}
$_SESSION['name'] = '';
|
то удивляться не приходится. | |
|
|
|
|
|
|
|
для: Trianon
(31.10.2009 в 01:06)
| | Но у меня же такого нет.
Все, что у меня, я во втором посте код привела. | |
|
|
|
|
|
|
|
для: Лена
(31.10.2009 в 01:02)
| | Проверьте включены ли у вас в браузере куки. | |
|
|
|
|
|
|
|
для: serjinio
(31.10.2009 в 05:09)
| | Проверяла.
Сервис->Свойства обозревателя->Конфиденциальность.
Здесь ставлю "принимать все файлы cookie
ИЕ у меня восьмой. | |
|
|
|
|
|
|
|
для: Лена
(31.10.2009 в 21:14)
| | а в ранних версиях IE и других браузерах работает ? | |
|
|
|