• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Cookie

  • Автор темы Vadik(R)
  • Дата начала
V

Vadik(R)

Люди, прочитал статью о том, как работать с cookie в php. Только одно не понятно: там говорится, что нельзя выдавать текст перед установкой куков, так как будет путаница с заголовками. Но как ни странно, у меня работает все нормально и текст выдается перед куками, и куки ставяться после вывода текста. Так вот хотел спросить от чего это зависит: от сервера или от браузера. Просто если от сервера, то я смогу сократить php-файл, потому-что мне не придеться в if'ах писать двадцать раз один и тот же код. А если зависит от браузера, то тогда лучше создам функцию.
 
E

etc

Про какие ифы речь?
Куки уходят в заголовке (header), заголовок должен уходить перед контентом, вся примудрость.
 
V

Vadik(R)

Код:
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

etc

потому что у меня IE 7.0 или потому что Apache 2 и php 5?
А что говорят в документации?
у меня "какой-то текст" на самом деле очен длинный
Да какая разница какой текст, делайте как указано и проблем не будет.
Вы же даже сабжевую статью не прочитали, там же не ошибка а варнинг, а варнинги можно и отключить, что скажется только на варнинге, а не на результате.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!