Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Форма, сессия и header()
 
 автор: Лена   (29.10.2009 в 14:17)   письмо автору
 
 

Если после принятия данных формы мы делаем редирект на другую страницу, например, на страницу результата, сессия почему-то теряется. Можно сделать и без редиректа, просто интересно стало, почему так происходит.

Вот пример:

<?php
if(isset($_POST['Enter'])){
//здесь что-то делаем с поступившими данными
header("Location: index.php?page=74");
}
?>

  Ответить  
 
 автор: tvv123456   (29.10.2009 в 14:19)   письмо автору
 
   для: Лена   (29.10.2009 в 14:17)
 

Скорей всего сессия не была создана, или удаляеться где-то в скрипте

  Ответить  
 
 автор: Лена   (30.10.2009 в 12:59)   письмо автору
 
   для: 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'];
?>


Сессии нет. Почему?

  Ответить  
 
 автор: tvv123456   (30.10.2009 в 21:08)   письмо автору
 
   для: Лена   (30.10.2009 в 12:59)
 

Проверте вот здесь $_POST['name']; приходит то что нужно или быть может все-таки пустота?
без переадресации напишите echo $_POST['name'];
и проверить существование лучше наверно при помощи if(isset())

  Ответить  
 
 автор: Trianon   (31.10.2009 в 00:34)   письмо автору
 
   для: Лена   (30.10.2009 в 12:59)
 

header("Location: asd.php");
}


Вслед за этими строками сессия не гасится?

Сессия точно передается через куки, или есть вероятность , что нужно в Location SID передать?

  Ответить  
 
 автор: Лена   (31.10.2009 в 01:02)   письмо автору
 
   для: Trianon   (31.10.2009 в 00:34)
 

Такое безобразие опять только в ИЕ.

>Вслед за этими строками сессия не гасится?
а как я могу проверить, гасится она или нет? через print я проверить не могу, меня же на другую страницу редиректом перебрасывает.

>или есть вероятность , что нужно в Location SID передать?
вероятность есть, но header("Location: asd.php?" . SID); никакого эффекта не дал.

  Ответить  
 
 автор: Trianon   (31.10.2009 в 01:06)   письмо автору
 
   для: Лена   (31.10.2009 в 01:02)
 

>>Вслед за этими строками сессия не гасится?
>а как я могу проверить, гасится она или нет? через print я проверить не могу, меня же на другую страницу редиректом перебрасывает.

я к тому, что если написать
<?php
session_start
();
if(isset(
$_POST['Save'])){
//обработка $_POST, проверка ошибок
$_SESSION['name'] = $_POST['name'];
header("Location: asd.php");

$_SESSION['name'] = '';


то удивляться не приходится.

  Ответить  
 
 автор: Лена   (31.10.2009 в 21:11)   письмо автору
 
   для: Trianon   (31.10.2009 в 01:06)
 

Но у меня же такого нет.
Все, что у меня, я во втором посте код привела.

  Ответить  
 
 автор: serjinio   (31.10.2009 в 05:09)   письмо автору
 
   для: Лена   (31.10.2009 в 01:02)
 

Проверьте включены ли у вас в браузере куки.

  Ответить  
 
 автор: Лена   (31.10.2009 в 21:14)   письмо автору
 
   для: serjinio   (31.10.2009 в 05:09)
 

Проверяла.
Сервис->Свойства обозревателя->Конфиденциальность.
Здесь ставлю "принимать все файлы cookie
ИЕ у меня восьмой.

  Ответить  
 
 автор: Slo_Nik   (31.10.2009 в 21:33)   письмо автору
 
   для: Лена   (31.10.2009 в 21:14)
 

а в ранних версиях IE и других браузерах работает ?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования