Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблемы с присвоением значения из сессии

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kotyara1979
Отправлено: 20 Октября, 2012 - 04:49:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




Добрый день, уважаемые форумчане.
Сильно не пинайте, вопрос скорее всего чайниковский. Но, к сожалению, в материалах нигде не нашел. Может искал плохо.

Суть, собственно.
Есть передача формы через post.
Есть обработка $_POST, присвоение переменной в сессии результата, редирект для очистки $_POST.
Есть присвоение переменной значения из сессии.
Есть освобождение сессионной переменной с целью экономии памяти.

Проблема. Не работает, если убивается сессионная переменная, а без unset работает все как надо.

Ну и собственно код.

test.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. if ($_POST['v1'])
  4. {
  5.         include "test1.php";
  6. }
  7.  
  8. if ($_SESSION['rez'])
  9. {
  10.         $rez=$_SESSION['rez'];
  11.         unset($_SESSION['rez']);              // Собственно проблема в этой строке, если закомментить ее, то все работает.
  12. }
  13.  
  14. else
  15. {$rez=1;}
  16.  
  17. ?>
  18. <html>
  19. <head>
  20. </head>
  21. <body>
  22. <?php
  23.  
  24. print $rez;
  25.  
  26. ?>
  27. <hr />
  28. <form action="test.php" method="post">
  29.         <input type="text" name="v1" value="<?php print $rez;?>" />
  30.         <input type="submit" value="отправить" />
  31. </form>
  32.  
  33. </body>
  34. </html>


test1.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $rez = $_POST['v1']+1;
  3. $_SESSION['rez'] = $rez;
  4. header("location: test.php");
  5. ?>


Собственно вопрос почему так? Ведь значение уже передано, не все ли равно что источник очищен. Или же здесь как по ссылке работа идет?

Добавление.
Если блок if ($_SESSION['rez']) поставить до блока if ($_POST['v1']), то все начинает работать как надо.

Но вопрос сохраняется, почему так, что влияет?

(Отредактировано автором: 20 Октября, 2012 - 06:24:34)



-----
Сделать можно все. Главное одеть каску.
 
 Top
dubasua
Отправлено: 20 Октября, 2012 - 11:17:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012  


Помог: 7 раз(а)




Что то не пойму зачем тебе ваще сессия нужна? Форма передана, создаеш сессионную переменную и дальше ее удаляеш.
Получается ты убиваеш $_SESSION[rez] сразу после ее рождения, ясен красен у тебя ее не будет на следующей странице.

(Отредактировано автором: 20 Октября, 2012 - 11:30:46)

 
 Top
kotyara1979
Отправлено: 20 Октября, 2012 - 12:19:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012  


Помог: 7 раз(а)




dubasua пишет:
Что то не пойму зачем тебе ваще сессия нужна? Форма передана, создаеш сессионную переменную и дальше ее удаляеш.
Получается ты убиваеш $_SESSION[rez] сразу после ее рождения, ясен красен у тебя ее не будет на следующей странице.


4 строку во включаемом файле видишь?
Затем и сессия нужна, что бы сохранить результат при переходе на другую страницу.


-----
Сделать можно все. Главное одеть каску.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB