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 :: а $_SESSION не изменяется [2]

 PHP.SU

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


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

> Без описания
IgVlGr
Отправлено: 11 Апреля, 2011 - 22:29:04
Post Id


Новичок


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


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




demot пишет:
IgVlGr пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $_SESSION['z']=md5(uniqid(mt_rand() . microtime()));
  3. echo $_SESSION['z'];
  4. ?>

В этом случае меняется, а в приведенном мною примере при нажатии "обновить" появиться сообщение "не удается обновить страницу без повторной отправки данных..." и т.п. и значения остануться прежними.

Оно появится только в том случае, если отправлялась форма перед этим. А если открыть данную страницу прямым линком и обновлять, то ничего кроме изменения сессии происходить не будет, но сессия все же будет меняться Подмигивание

Совершенно верно, и я о том же.
(Добавление)
OrmaJever пишет:
Присвоение сессии должно ити в конце
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3.  
  4. ?>
  5. <form action="" method="post">
  6. <input type="text" name="ff" value=""><br>
  7. <input type="hidden" name="as" value="<?=$s?>"><br>
  8. <button>OK</button>
  9. </form>
  10. <?
  11.  
  12. if(isset($_POST['ff']) and $_POST['as']==$_SESSION['z'])
  13. {
  14.  echo 'ok.<br>';
  15.  $_SESSION['z']="";
  16. else
  17. {
  18.      echo 'no';
  19. }
  20. $_SESSION['z']=$s;
  21. ?>

Это смотря что автору нужно!
 
 Top
OrmaJever Модератор
Отправлено: 11 Апреля, 2011 - 22:51:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




demot пишет:
что хочет таким хитрым способом проверять не подменялась ли сессия во время отправки формы.

Нет такой способ блокирует повторную отправку post. Вот зделайте у себя форму и внизу выведите значение, затем введите даные и обнавляйте страницу и увидите что даные будут выводится всегда, а если поставить такую систему то они выведутся только 1 раз до обновления страницы


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
demot
Отправлено: 11 Апреля, 2011 - 22:56:03
Post Id


Частый гость


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


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




А, понял, умно Улыбка
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB