Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Cookie


Автор: starmaster 1.7.2004, 14:17
Посетитель пишет своё имя в <input type="text" name="nick">. Как послать ему куку с его именем, чтобы в следующий раз как он зайдёт, его имя уже будет написано в поле?

Автор: scriptcoder 1.7.2004, 15:05
setcookie ("nick", $nick);

=================

<input type="text" name="nick" value=<? echo $_COOKIE['nick']; ?>>

Автор: starmaster 1.7.2004, 15:20
Не получается... куки то приходит, но броузер выдаёт ошибку: >Notice: Undefined index: nick in z:\home\localhost\www\testing.php...
Фот файл, который посылает куку:
Код

<?
$add=setcookie("name",$nick,time() + 600);
if ($add==true)
{
echo "Suceed!";
}
?>

А вот который должен выводить значение:
Код

<form method="post" action="test.php">
<input type="text" name="nick" value="<? echo $_COOKIE['nick']; ?>">
<input type="submit" value="Check!">
</form>

sad.gif

Автор: MuToGeN 1.7.2004, 16:09
Цитата
Notice: Undefined index: nick in z:\home\localhost\www\testing.php
Это не ошибка, а фигня. Между понятиями error и notice большая разница.
Попробуй поставить куку, а потом print_r($_COOKIE)

Какая версия PHP?

Автор: yUAC 1.7.2004, 19:31
Код
<form method="post" action="test.php">
<input type="text" name="nick" value="<? if(!empty($_COOKIE['nick'])) echo $_COOKIE['nick']; ?>">
<input type="submit" value="Check!">
</form>

Автор: IZ@TOP 2.7.2004, 16:23
1) функция setcookie всегда возвращает true. Независимо от того, была ли она установлена или нет.
2) Чтобы прочесть записанные данные нужное перегрузить страницу. Иначе $_COOKIE будет равен null.
Добавлено @ 16:24
yUAC
А комментами мы не богаты?

Автор: MuToGeN 3.7.2004, 10:25
Кстати...
в самом начале скрипта пропиши error_reporting(E_ALL);
Ж.пой чую, что перед установкой кук ты уже начал выводить контент.

Цитата
2) Чтобы прочесть записанные данные нужное перегрузить страницу. Иначе $_COOKIE будет равен null.
Я для удобства раньше делал

setcookie($name,$value);
$_COOKIE[$name]=$value;

Автор: yUAC 3.7.2004, 12:32
Цитата
Я для удобства раньше делал
...

[offtopic]Вот что интересно, сразу в нескольких форумах видел похожее, причем за последние несколько дней...[/offtopic]

Цитата
А комментами мы не богаты?

Богаты, вот только за некоторые комменты обычно мне предупреждения выставляют ;)

Автор: starmaster 4.7.2004, 09:49
Ладно получилось, просто я хотел поставить куки, если поле $nick не пустое, то есть:

Код

if (!empty($nick)) {
setcookie("fg",$nick,time() + 3750000);
}


А он выдаёт ту же ошибку, что и с хедерами у меня: Headers already sent by output started... непомню полностью как ошибка звучала...

Цитата
Какая версия PHP?


4.3.0 Нормальная?

Автор: yUAC 4.7.2004, 12:10
Нужно либо:

писать ob_start(); в начале скрипта
либо ставить куки до ЛЮБОГО вывода на экран

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)