|
|
|
| Пишу как в учебнике:
<?
$_COOKIE['counter']++;
setcookie("counter",$counter);
echo 'Вы посетили эту страницу '.$_COOKIE['counter'].' раз';
?>
|
Выдается сообщение о том, что counter - undefined variable, и соответственно stcookie тоже из-за этого не работает.
Как сделать, чтобы counter воспринимался программой, и изменялся с каждой перезагрузкой стриницы? | |
|
|
|
|
|
|
|
для: Nana
(24.05.2006 в 20:16)
| | Авторы учебнка надеялись, что у всех включены глобальные переменные. У вас они, видимо, отключены. В таком случае нужно обратиться к суперглобальному массиву $_COOKIE:
<?php
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
echo("Вы посетили эту страницу ".$_COOKIE['counter']." раз");
?>
|
| |
|
|
|
|
|
|
|
для: Саня
(24.05.2006 в 20:22)
| | Я как раз сейчас это сделала (даже в своем посте поменяла код), но разницы никакой, только сообщение undefined index появилось - про все тот же counter. | |
|
|
|
|
|
|
|
для: Nana
(24.05.2006 в 20:26)
| | Вы забыли исправить строчку setcookie("counter",$counter);. | |
|
|
|
|
|
|
|
для: Саня
(24.05.2006 в 20:33)
| | Спасибо! Я уже исправила)), но результат тот же!
вот что выдает:
Notice: Undefined index: counter in C:\my\www\cookie_test.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at C:\my\www\cookie_test.php:2) in C:\my\www\cookie_test.php on line 3
Вы посетили эту страницу 1 раз | |
|
|
|
|
|
|
|
для: Саня
(24.05.2006 в 20:33)
| | Может быть все дело в Notice? Пишет предупреждение в браузер, и из-за этого Cannot modify header information? | |
|
|
|
|
|
|
|
для: Nana
(24.05.2006 в 20:40)
| | Вы не должны ничего выводить на экран до использования куки(даже пробела) | |
|
|
|
|
|
|
|
для: CrazyAngel
(24.05.2006 в 20:49)
| | Если это необходимо то вначале пишите
| |
|
|
|
|
|
|
|
для: Nana
(24.05.2006 в 20:40)
| | Все получилось! Я была права. Нужно было избавиться от Notice))
Вот верный код:
<?php
if(!isset($_COOKIE['counter'])) $_COOKIE['counter']=0;
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
echo("Вы посетили эту страницу ".$_COOKIE['counter']." раз");
?>
|
Спасибо за помощь!) | |
|
|
|
|
|
|
|
для: Nana
(24.05.2006 в 20:40)
| |
<?php
if ( !isset($_COOKIE['counter']) ) {
setcookie("counter", 1);
echo("Вы посетили эту страницу 1 раз");
} else {
$_COOKIE['counter']++;
setcookie("counter", $_COOKIE['counter']);
echo("Вы посетили эту страницу ".$_COOKIE['counter']." раз");
}
?>
|
Вот этот скрипт точно работает. А дело в том, что при первой установке куки функцией setcookie() переменная counter с массиве $_COOKIE не появится сразу. Она появится при следующем вызове скрипта. Ну и в дополнение ко всему текст ошибки, который вывелся в браузер помешал отправить куку, так как куки должны отправляться до вывода в браузер какой-либо информации. | |
|
|
|
|
|
|
|
для: Саня
(24.05.2006 в 20:54)
| | Спасибо большое, все стало ясно! | |
|
|
|