Cookie

Vadik(R)

Well-known member
12.12.2007
469
0
#1
Люди, вот здесь прочитал статью о том, как работать с cookie в php. Только одно не понятно: там говорится, что нельзя выдавать текст перед установкой куков, так как будет путаница с заголовками. Но как ни странно, у меня работает все нормально и текст выдается перед куками, и куки ставяться после вывода текста. Так вот хотел спросить от чего это зависит: от сервера или от браузера. Просто если от сервера, то я смогу сократить php-файл, потому-что мне не придеться в if'ах писать двадцать раз один и тот же код. А если зависит от браузера, то тогда лучше создам функцию.
 
E
#2
Про какие ифы речь?
Куки уходят в заголовке (header), заголовок должен уходить перед контентом, вся примудрость.
 

Vadik(R)

Well-known member
12.12.2007
469
0
#3
Код:
123
<?php
echo "456";
if (!$_COOKIE["counter"]) {
setcookie("counter", "1");
echo "0";
?>
какой-то текст
куки поставлены сейчас
<?php
} else {
setcookie("counter", $_COOKIE["counter"]+1);
echo $_COOKIE["counter"];
?>
какой-то текст
куки уже были поставлены раньше
<?php
}
?>
Объясняю, что к чему. 123 я пишу простым способом, 456 с помощью echo, потом ставлю куки, и они ставяться нормально и никакой ошибки не возникает. Вот я и спрашиваю, почему ошибку не возникает: потому что у меня IE 7.0 или потому что Apache 2 и php 5?
А про иф дело в том, что у меня "какой-то текст" на самом деле очен длинный и часто повторяющийся, поэтому я хочу страницу написать так:
Код:
какой-то текст, одинаковые мета-теги
<?php
if (!$_COOKIE["counter"]) {
setcookie("counter", "1");
echo "0";
?>
куки поставлены сейчас
<?php
} else {
setcookie("counter", $_COOKIE["counter"]+1);
echo $_COOKIE["counter"];
?>
куки уже были поставлены раньше
<?php
}
?>
И беспокоюсь за то, что бы у все людей все отображалось нормально.
 
E
#4
потому что у меня IE 7.0 или потому что Apache 2 и php 5?
А что говорят в документации?
у меня "какой-то текст" на самом деле очен длинный
Да какая разница какой текст, делайте как указано и проблем не будет.
Вы же даже сабжевую статью не прочитали, там же не ошибка а варнинг, а варнинги можно и отключить, что скажется только на варнинге, а не на результате.