проблема с куками
значение устанавливаеться, но когда дальше в функции я пытаюсь его изменть
$dist="rdt";
setcookie("dist",$dist)
то в ответ получаю Warning Cannot add header information - headers already sent by (output started at /1111.php9) in /1111.php on line 22
Вобщем мне нужно после выполнения функции изменить значение кука...
[ Это Сообщение было отредактировано Felix в 2002-08-23 1851 ]
[ Это Сообщение было отредактировано Felix в 2002-08-23 1909 ]
On 2002-08-23 1810, Felix wrote
я пишу setcookie("dist","orb");
значение устанавливаеться, но когда дальше в функции я пытаюсь его изменть
$dist="rdt";
setcookie("dist",$dist)
то в ответ получаю Warning Cannot add header information - headers already sent by (output started at /1111.php9) in /1111.php on line 22
Вобщем мне нужно после выполнения функции изменить значение кука...
[ Это Сообщение было отредактировано Felix в 2002-08-23 1851 ]
[ Это Сообщение было отредактировано Felix в 2002-08-23 1909 ]
Аналогичная проблема
http//phpclub.net/talk/showthread.php?s=&postid=106107#post106107
Надеюсь на скорое решение...
// http//www.sp1r1tual.com
Но мне нужно чтобы кука устанавливалась после нажатия на сабмит, притом что форму обрабатывает этот же файл, и я проверяю нажата ли кнопка.....
По нажатию сабмит ? Одну минутке. А PHP тут причем ? Это уже клиент-сайд. На стороне клиента куки можно установить с помощь JavaScript.
Если по нажатиб субмита происходит загрузка другой страницы, то почему бы не вставить установку кукиса туда ?
On 2002-08-28 1525, mike wrote
Кука может быть установлена только до того, как начато формирование HTML Документа. Так как кукисы устанавливаются в HTTP заголовке, которые передается перед HTML документом. см. RFC2068 (если не изменяет память).
По нажатию сабмит ? Одну минутке. А PHP тут причем ? Это уже клиент-сайд. На стороне клиента куки можно установить с помощь JavaScript.
Если по нажатиб субмита происходит загрузка другой страницы, то почему бы не вставить установку кукиса туда ?
PHP при том что форма обрабатываеться, я понимаю что куку можно установить жавой, но можна и пхп.... а форму обрабатывает этот же файл...
короче это надо для проверки голосовал чел или нет.... то есть проверяеться наличие куки если нету то первый раз ему выдаеться форма, он кголосует, потом ставиться кука и в след раз он уже не может голосовать...
On 2002-08-28 1557, Ampersand wrote
Так выдавай юзеру по нажатию на сабмит страничку типа "Спасибо за участие", а с ней и куку .
у меня все один файл обрабатывает....
Насколько я понимаю, если по нажатию Submit форма передается, пусть и на этот же файл, то страничка все равно перерисовывается? Вот тут и ставь куку.
On 2002-08-28 1438, Felix wrote
С этим я разобрался..... куку нужно устанавливать до выдачи текста юзеру
Но мне нужно чтобы кука устанавливалась после нажатия на сабмит, притом что форму обрабатывает этот же файл, и я проверяю нажата ли кнопка.....
Действительно, если тебе нужно только такое голосование тогда куку следует послать с генерингом след страницы после нажатия на сабмит.
Ну и что, если страница не лоаднеться ... уж тут ничего не сделаешь...
Но обычно голосования устраивают коды
мы имеем загегестрированного у нас юзера, поэтому ПХП просто запоминает, что этот юзер уже проголосовал...
On 2002-08-29 1510, Felix wrote
Все это хорошо и в идеале, а если все проще и нету списка зарегиных пользователей.....
Нуууу, тогда придёться тебе жить с тем, что есть
кучу примеров просмотрела, это должно выглядеть след.образом:
<переменная> = cookie("<имя кукиса>");
но, не берется она и все.
значенте кукиса устанавливается и выдается в поток, а когда хочу выдать эту переменную... пусто.
Я пишу на Perl
Буду оч признательна всем кто откликнется.
$cookie = $ENV{"HTTP_COOKIE"};
On 2002-08-30 1613, Ampersand wrote
На Перле кукис можно получить из заголовка запроса
$cookie = $ENV{"HTTP_COOKIE"};
спасибо,
это я знаю, но мне нужно только одно значение (value), а если так, то он выдает весь кукис, и name и path. Просто все обычно обходятся без переменной сетевого окружения. Иначе ее потом нужно как-то разбивать наверное.
On 2002-08-28 1525, mike wrote
Кука может быть установлена только до того, как начато формирование HTML Документа. Так как кукисы устанавливаются в HTTP заголовке, которые передается перед HTML документом. см. RFC2068 (если не изменяет память).
...
Тут можно провернуть финт ушами..
Вы скорее всего когда либо работали с куками и знаете, что устанавить их можно только до вывода на экран какого-либо текста. Поэтому и надо писать команду session_start() в самом начале программы. Хотя, можно применить буферизацию вывода установив output_buffering в on. Тогда вы сможете стартовать сессии в любом месте программы, ставить куки и писать где угодно информацию в заголовок страницы (с помощью функции Header()). Это все указывается в .htaccess
// http//www.sp1r1tual.com
On 2002-08-30 1623, Anonymous wrote
спасибо,
это я знаю, но мне нужно только одно значение (value), а если так, то он выдает весь кукис, и name и path. Просто все обычно обходятся без переменной сетевого окружения. Иначе ее потом нужно как-то разбивать наверное.
именно разбивать и вытягивать то что нужно.... я не особо силен а перл, но в пхп можно читать значение куки как значение переменной с таким же именем...
да и в .htaccess лезть необязательно, в php
есть функция для етого: ob_start()
нужно только вызвать ее в начале (до того как хеадер был отоснан).
А вообщето вся эта затея попахивает неправельной огранизацей структуры кода.
значит придется с шаблонами возится
use CGI::Cookie;
my %cookies = fetch CGI::Cookie;
my $uname = $cookies{'USER_NAME'}->value;
On 2002-08-28 1550, Felix wrote
[quote]
On 2002-08-28 1525, mike wrote
Кука может быть установлена только до того, как начато формирование HTML Документа. Так как кукисы устанавливаются в HTTP заголовке, которые передается перед HTML документом. см. RFC2068 (если не изменяет память).
По нажатию сабмит ? Одну минутке. А PHP тут причем ? Это уже клиент-сайд. На стороне клиента куки можно установить с помощь JavaScript.
Если по нажатиб субмита происходит загрузка другой страницы, то почему бы не вставить установку кукиса туда ?
PHP при том что форма обрабатываеться, я понимаю что куку можно установить жавой, но можна и пхп.... а форму обрабатывает этот же файл...
короче это надо для проверки голосовал чел или нет.... то есть проверяеться наличие куки если нету то первый раз ему выдаеться форма, он кголосует, потом ставиться кука и в след раз он уже не может голосовать...
[/quote]
Помоему все очень просто
сначала проверяешь есть ли кука если её нет
то проверяешь пришли ли данные из формы если нет то пользователь не голосовал.
помоему все просто