Форум → Программирование → PHP для идиотов → Подскажите
Подскажите
-
Вот изучаю php. Дошел до кук и тут броблема.Код :
<html>
<title></title>
<body>
<?
error_reporting(E_ALL & ~E_NOTICE);
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
echo "$_COOKIE[counter]";
?>
</body>
</html>
Вроде как он должен подсчетать количество посещений на страницу, но видает error :
Warning: Cannot modify header information - headers already sent by (output started at X:\home\localhost\www\cookie.php:4) in X:\home\localhost\www\cookie.php on line 7
1(что за цыфра непойму)
Поскажите в чем проблема -
Март 7, 2010, 9:50 п.п., спустя 1 минуту 47 секунд
Код на pyha.ru нужно обрамлять в тег языка. Вот так:<html>
<title></title>
<body>
<?
error_reporting(E_ALL & ~E_NOTICE);
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
echo "$_COOKIE[counter]";
?>
</body>
</html> -
Март 7, 2010, 9:57 п.п., спустя 6 минут 10 секунд
Код :<html>
<title></title>
<body>
<?
error_reporting(E_ALL & ~E_NOTICE);
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
echo "$_COOKIE[counter]";
?>
</body>
</html>
error :
Warning: Cannot modify header information - headers already sent by (output started at X:\home\localhost\www\cookie.php:4) in X:\home\localhost\www\cookie.php on line 7
1(что за цыфра непойму)
Прошу прощения -
Март 7, 2010, 9:59 п.п., спустя 2 минуты 37 секунд
А проблема у вас в том, что работать с cookie, session и прочими headers можно лишь до того момента, как на экране напечатан первый символ. В вашем случае первый символ будет на первой строчке.
+$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
Во-первых, вторую строчку нужно выполнять первой.
Во-вторых, вторую строчку нужно выполнят только если $_COOKIE['counter'] не существует.
В-третьих, это ваще бред. Писать нужно примерно так.
<?php
error_reporting(E_ALL & ~E_NOTICE);
if (isset($_COOKIE['counter'])) setcookie("counter", 0);
$_COOKIE['counter']++;
?>
<html>
<title></title>
<body>
<?php
echo "$_COOKIE[counter]";
?>
</body>
</html>Спустя 132 сек.PS Мог где нибудь накосячить ибо с браузера писал. -
Март 7, 2010, 10:07 п.п., спустя 7 минут 57 секунд
Спасибо
И ето не я писал, ето с книги списано и протестировано.
Тогда другой вопрос :if (isset($_COOKIE['counter'])) setcookie("counter", 0);
у меня все время виводит ноль.
Если я правильно понимаю, то если куки counter есть, то присвоить ей значение нолью.
Собственно меня интересует , если я зделаю такif (isset($_COOKIE['counter'])) setcookie("counter", $_COOKIE['counter']);
то вроде как counter должно увеличивать значение на 1 при перезагрузке станице.
Мне интересует как подсчитать сколь раз я ету старницу перегрузил.
Хотя если я не прав - исправте. -
Март 7, 2010, 10:13 п.п., спустя 5 минут 26 секунд
я тут понял где накосячил, все таки автор книги прав=) код работает, я просто неправильно записал что и повлекло за собой вопрос<?php
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
?>
<html>
<title></title>
<body>
<?php
echo "$_COOKIE[counter]";
?>
</body>
</html> -
Март 7, 2010, 10:51 п.п., спустя 38 минут 23 секунды
Tocter, ну да. Тупанул я немного. Если не задано, то присваивать 0. А у автора книги хуйня какая то. Неимхо.<?php
error_reporting(E_ALL & ~E_NOTICE);
if (!isset($_COOKIE['counter'])) setcookie("counter", 0);
$_COOKIE['counter']++;
?>
<html>
<title></title>
<body>
<?php
echo "$_COOKIE[counter]";
?>
</body>
</html> -
Март 7, 2010, 10:54 п.п., спустя 2 минуты 36 секунд
Это пиздец
echo "$_COOKIE[counter]";https://smappi.org/ - платформа по созданию API на все случаи жизни -
Март 7, 2010, 10:55 п.п., спустя 1 минуту 48 секунд
adw0rd,
я если чё его код копипастом дописывал.))
Правильно так?echo $_COOKIE['counter'];
-
Март 7, 2010, 11:02 п.п., спустя 6 минут 44 секунды
SpartakuS, я про его код и говорю..
да, так лучше )https://smappi.org/ - платформа по созданию API на все случаи жизни -
Март 7, 2010, 11:06 п.п., спустя 4 минуты 22 секунды
по coding standarts Slaed CMS это было бы как-то так:echo "" . $_COOKIE['counter'] . "";
вы ржете, а я когда-то тоже так писал. В 2006-07 годах примерноСпустя 114 сек.кстати, а разве $_COOKIE['a'] = 'b' будет эквивалентно setcookie? -
Март 7, 2010, 11:13 п.п., спустя 6 минут 17 секунд
Абырвалг, дуд сегодня на дле выебывался. так вот по сравнению со слаедом dle просто Бог.Спустя 44 сек.$_COOKIE['a'] = 'b'
тоже интересно. Я всегда думал, что нет.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!