| |
|
|
| | Для идентификации посетителя я использую функцию
setcookie ("music", "man40", time() + 100000);
|
А можно ли прежде прозондировать, включены ли у него cookie? И если не включены, то дать ему сообщение типа:
"Включите cookie".
Как бы это сделать? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 16:47)
| | | Есть два варианта:
1) Можно в полнолуние пойти на старое неосвящённое кладбище, набрать волшебной пыли и поймать летучую мышь. Написать письмо тому у кого хотите проверить куки, посыпать бумагу волшебной пылью, запечатать конверт, напугать летучую мышь и использовать её экскременты в качестве сургуча. Отослать конверт юзеру. В зависимости от ответа выдать в браузер строку "Включите cookie" или не выдавать.
2) Установить куки. прочитать куки. если читаются значит включены. | |
| |
|
|
| |
|
|
| |
для: Valick
(07.10.2007 в 17:14)
| | | Первый вариант интереснее. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 19:08)
| | | А можно ли установить одному клиенту два cookie?
Это не противоречит каким-либо правилам или техническим регламентам? | |
| |
|
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 19:23)
| | | > А можно ли установить одному клиенту два cookie?
Можно. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 19:23)
| | | А в торой эффективнее))
Пробную партию писем по первому варианту я отослал, но ответа пока нет...
В каком смысле два cookie? Да хоть двадцаць два. Раньше теоритически существовали какие-то ограничения по общему "весу" cookie, а щас помоему их нет. Грубо говоря я не попадпл в ситуацию когда браузер мне говорит "Ваша бочка куков переполнена, удалите ненужные куки". | |
| |
|
|
| |
|
|
| |
для: Valick
(07.10.2007 в 19:40)
| | | >Да хоть двадцаць два.
Если говорить об одном документе, то не более 20. | |
| |
|
|
| |
|
|
| |
для: sim5
(07.10.2007 в 19:58)
| | | Если говорить об одном документе, то не более 20
Ну совершенно недавно я где-то читал, что сняли это ограничение.... или мне это прислиось, точно сказать не могу)) | |
| |
|
|
| |
|
|
| |
для: Valick
(07.10.2007 в 20:06)
| | | Не читал, поищем, может и правда, а я не знаю. | |
| |
|
|
| |
|
|
| |
для: Valick
(07.10.2007 в 19:40)
| | | ...а браузер начинает чистить самые старые при этом | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 19:23)
| | | Чтобы лучше понять эти куки, сделал вот такой тестик:
<?php
$flag = false ;
echo "<br>Исходное состояние флага $flag ";
setcookie ("music", "test", time() +1);
$flag = (isset($_COOKIE['music']) && $_COOKIE['music']=="test");
echo "<br>Флаг от куки test $flag ";
$flag = false ;
setcookie ("music", "man40", time() + 25);
$flag = (isset($_COOKIE['music']) && $_COOKIE['music']=="man40");
echo "<br>Флаг от куки man40 $flag ";
?>
|
В итоге получаю сообщение:
Исходное состояние флага
Warning: Cannot modify header information - headers already sent by (output started at /home/data/www/music.ru/anketa/999.php:2) in /home/data/www/music.ru/anketa/999.php on line 6
Флаг от куки test
Warning: Cannot modify header information - headers already sent by (output started at /home/data/www/music.ru/anketa/999.php:2) in /home/data/www/music.ru/anketa/999.php on line 12
Флаг от куки man40
Строки 6 и 12 - setcookie
Непонятно... | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 22:19)
| | | Перед отправкой заголовков (куки вы устанавливаете также через заголовок), не должно быть никакого вывода в браузер, это уже столько раз упоминалось. | |
| |
|
|
| |
|
|
| |
для: sim5
(07.10.2007 в 22:34)
| | | Плохо быть бестолковым - прошу меня простить!
Теперь я код переписал так:
<?php
setcookie ("music", "test", time() +1); // Строка 3
$flag1 = false ;
$flag1 = (isset($_COOKIE['music']) && $_COOKIE['music']=="test"); // Строка 5
setcookie ("music", "man40", time() + 25); // Строка 7
$flag2 = false ;
$flag2 = (isset($_COOKIE['music']) && $_COOKIE['music']=="man40");
echo "<br>Флаг от куки test $flag1 "; // Строка 11
echo "<br>Флаг от куки man40 $flag2 ";
?>
|
Получаю такое сообщение:
Warning: Cannot modify header information - headers already sent by (output started at /home/data/www/music.ru/anketa/999.php:2) in /home/data/www/music.ru/anketa/999.php on line 3
Warning: Cannot modify header information - headers already sent by (output started at /home/data/www/music.ru/anketa/999.php:2) in /home/data/www/music.ru/anketa/999.php on line 7
Флаг от куки test
Флаг от куки man40
В чем теперь-то конфликт? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 23:02)
| | | Сторока 5, а по коду видно всего 4! У вас даже перед <?php не должно быть пробелов!!! | |
| |
|
|
| |
|
|
| |
для: sim5
(07.10.2007 в 23:07)
| | | Не получается у меня ничего...
Я приложил файл - может, взгляните?
Ошибки теперь не сообщаются, но и гуки не работают! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 23:23)
| | | Нет, кто либо другой поможет, а у нас 5:30 утра, и я ухожу бай :) | |
| |
|
|
| |
|
|
| |
для: sim5
(07.10.2007 в 23:25)
| | | Приятных снов! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 23:31)
| | | Владимир, поищите по данному форуму ключевые слова "headers already sent" - и будет вам "-1" проблема. Честное слово, тема изъедена до костей!
(Извините, sim5, что нажал на "Ответить" под вами - не успел сообразит, кому я отвечаю)) | |
| |
|
|
| |
|
|
| |
для: bronenos
(08.10.2007 в 00:14)
| | | *** поищите по данному форуму ключевые слова "headers already sent" ***
Поискал. Вот с каким результатом:
"К сожалению, по Вашему запросу ничего не найдено."
Скажу Вам откровенно - пока ночь и нас никто не слышит - затрахался я с этими гуки! Уже хочется пиз... чем-нибудь по монитору! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(08.10.2007 в 00:24)
| | | 1. монитор ничего не даст. надо по харду
2. тогда искать в СООБЩЕНИЯХ и ключевые слова "modify header" | |
| |
|
|
| |
|
|
| |
для: bronenos
(08.10.2007 в 00:46)
| | | Ночь загадок... | |
| |
|
|
| |
|
|
| |
для: Владимир55
(08.10.2007 в 01:10)
| | | Позор на наши седые головы!!!
Установив куку, её значение будет доступно только при следующем посещении страницы.
И вот ещё: если вы инклюжите файл, в файл перед заголовками, то подключаемый файл не должен содержать пробелов и переводов строк не только пред <?php, но и после ?> !!!
про куки посмотрите здесь http://softtime.ru/bookphp/gl8_2.php | |
| |
|
|
| |
|
|
| |
для: Valick
(08.10.2007 в 08:07)
| | | Спасибо Вам за добрый совет! | |
| |
|
|
| |
|
|
| |
для: Владимир55
(07.10.2007 в 23:23)
| | | Нельзя одновременно ставить и проверять кукисы в одном скрипте. Потому что куки будут доступны только после перезагрузки страницы. Функция setcookie() посылает заголовок Set-Cookie браузеру, а не заполняет массив $_COOKIE. Этот массив заполняется только когда от браузера прийдёт заголовок Cookie с нужными данными. | |
| |
|
|
| |
|
|
| |
для: Саня
(08.10.2007 в 08:05)
| | | Спасибо!
Сам бы я до этого никогда не додумался!
Ну, или лет через сто... | |
| |
|
|