| |
|
|
| | Пишу как в учебнике:
<?
$_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)
| | | Спасибо большое, все стало ясно! | |
| |
|
|