Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: cookies - код 'посещение страниц'
 
 автор: dim   (30.08.2005 в 22:50)   письмо автору
 
 

Скриптик из учебника
<?
$counter++;
setcookie("counter",$counter);
echo("Вы посетили эту страницу $counter раз");
?>
Возникает ошибка нопределенной переменной.
Если определить ее $counter=0, то код теряет динамичность. Подскажите, как исправить ошибку.

   
 
 автор: cheops   (31.08.2005 в 00:53)   письмо автору
 
   для: dim   (30.08.2005 в 22:50)
 

Notice не является ошибкой, а является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

   
 
 автор: dim   (31.08.2005 в 16:50)   письмо автору
 
   для: cheops   (31.08.2005 в 00:53)
 

cheops, знаете код все равно не работает.
Ошибка (точнее, notice) исчезла, правда код не стал динамичным - сколько раз я ни захожу на страницу, возвращаюсь на нее, загружаю заново - в новом окне, в этом же - браузер мне УПОРНО печатает мою ПОСЕЩАЕМОСТЬ 1 РАЗ!!!

   
 
 автор: cheops   (31.08.2005 в 19:14)   письмо автору
 
   для: dim   (31.08.2005 в 16:50)
 

Проверьте в конфигурационном файле php.ini не отключена ли у вас директива register_globals - именно она отвечает за прямую передачу значений из cookie, сессий, методов GET и POST непосредственно в переменные сервера.
register_globals = off

Если это так, её можно включить
register_globals = on

Подробнее об данной директиве можно почитать в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=13, но лучше сразу использовать суперглобальные массивы, т.е.
<?
  
if(isset($_COOKIE['counter'])) $counter $_COOKIE['counter'];
  
$counter++;
  
setcookie("counter",$counter);
  echo(
"Вы посетили эту страницу $counter раз");
?>

   
 
 автор: dim   (06.09.2005 в 13:25)   письмо автору
 
   для: cheops   (31.08.2005 в 19:14)
 

Не срабатывает, только хуже(скрипт один к одному, реакция же браузера):


Notice: Undefined variable: counter in w:\home\test1.ru\www\cookies.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at w:\home\test1.ru\www\cookies.php:3) in "url" on line 4
Вы посетили эту страницу 1 раз


...и, кроме того, посещаемость опять мертвая - 1 раз!..

   
 
 автор: cheops   (06.09.2005 в 13:31)   письмо автору
 
   для: dim   (06.09.2005 в 13:25)
 

Ошибка возникает из-за notice, который является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования