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

Форум PHP

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

 

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

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

тема: Проблемы с Cookies
 
 автор: Tyoma   (06.11.2006 в 18:50)   письмо автору
 
 

Есть скрипт (test.php):

<?php
setcookie
("field",$_POST["field"]);
display_index();
function 
display_index() { ?>
<html>
<body>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="_next_page" value="default">
<p align=center><b>Field:</b><input name=field type=text title="To:" value="<?php echo $_COOKIE["field"]; ?>"></p>
<p align=center><input name=submit type=submit value=submit></p>
</form>
</body>
</html>
<?php }?>


Проблема вот в чем: я сохраняю данные в cookies (перезаписываю те, которые уже там были) и сразу же их вывожу. Так вот выводятся у меня те данные, которые были до этого, а не те, которые я записал.

Кто что посоветует?

   
 
 автор: DEM   (06.11.2006 в 19:00)   письмо автору
 
   для: Tyoma   (06.11.2006 в 18:50)
 

Надо обновить страницу... РНР - это не JavaScript и что бы увидеть результат, ему надо обновить страницу

   
 
 автор: Tyoma   (06.11.2006 в 20:09)   письмо автору
 
   для: DEM   (06.11.2006 в 19:00)
 

Так страница и обновляется каждый раз.
У меня в кукисы сохраняются данные с предыдущей страницы, и они же и должны отобразиться. Грубо говоря, код

<?php
setcookie
("field",$_POST["field"]);
echo 
$_POST["field"];
echo 
$_COOKIE["field"];
?>

Должен выдать два одних и тех же значения, а именно значение в $_POST["field"], а у меня выводится еще и старое значение из $_COOKIE["field"], которое было до использования setcookie("field",$_POST["field"]). Т.е. кукисы не "затираются" сразу, а при вызове скрипта в следующий раз.
Так вот вопрос вот в чем, как "затереть" (задать новые значения) кукисы не при следующем вызове, а в этом?

Надеюсь я понятно объяснил, а то даже я могу запутаться в вышесказанном ))

   
 
 автор: ddhvvn   (06.11.2006 в 20:21)   письмо автору
 
   для: Tyoma   (06.11.2006 в 20:09)
 

я вот, как раз, запутался немного :)))
а зачем Вам вообще это надо? Может есть другой способ решения Вашей задачи?

   
 
 автор: Tyoma   (06.11.2006 в 20:36)   письмо автору
 
   для: ddhvvn   (06.11.2006 в 20:21)
 

Надеюсь что есть...
Вот то что мне надо:
Есть форма. Ее поля нужно заполнить значениями из кукисов (если они там есть). Если форму заполнили с ошибками (пропустили обязательные поля или ввели неправильные емайл и т.п.) - то эта форма перезагружается, но уже выводит пользователю сообщение о том, что при заполнении формы были совершены ошибки. Ну и естесственно я не хочу потерять данные из тех полей, которые были уже заполнены, поэтому я заполняю их из кукисов (можно заполнять их значениями из $_POST[], но тогда поля не будут заполнены значениями когда форма отображается в первый раз).

Пробовал вот этот код, но он тоже некорректно работает:

<?php
setcookie
("field",$_POST["field"]);    
display_index();
function 
display_index() { ?>
<html>
<body>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="_next_page" value="default">
<p align=center><b>Field </b><input name=field type=text title="To:" value="<?=((!empty($_POST["field"])) ? $_POST["field"] : $HTTP_COOKIE_VARS["field"])?>"></p>
<p align=center><input name=submit type=submit value=submit></p>
</form>
</body>
</html>
<?php }?>

   
Rambler's Top100
вверх

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