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

Форум PHP

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

 

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

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

тема: cookies
 
 автор: ladan   (15.12.2011 в 00:41)   письмо автору
 
 

Вставляю код в страницу сайта, взятый с softtime

<?
$counter++;
setcookie("counter",$counter);
echo("Вы посетили эту страницу $counter раз");
?>

но почему-то выводится ошибка
Warning: Cannot modify header information - headers already sent by (output started at R:\home\forma\www\index.php:9) in R:\home\forma\www\index.php on line 12
Вы посетили эту страницу 1 раз


Никто не подскажет почему так происходит?

  Ответить  
 
 автор: Valick   (15.12.2011 в 00:52)   письмо автору
 
   для: ladan   (15.12.2011 в 00:41)
 

куки передаются в заголовках (header), а у вас до установки куки есть вывод в браузер, чаще всего попадают пробелы там где не надо... например перед <?
либо кодировка страницы включает невидимые спец символы
сохраняете текст в UTF-8 без BOM
каким редактором пользуетесь?

  Ответить  
 
 автор: cheops   (15.12.2011 в 01:03)   письмо автору
 
   для: ladan   (15.12.2011 в 00:41)
 

1. В этом примере нужно $counter заменить на $_COOKIE['counter']
2. А почему вас такие большие значения строк в ошибке, 9 строка, 12 строка, там до <? что еще идет (ничего не должно быть)?

  Ответить  
 
 автор: ladan   (15.12.2011 в 09:33)   письмо автору
 
   для: cheops   (15.12.2011 в 01:03)
 

сделал так
<?
$counter++;
setcookie('counter',$_COOKIE['counter']);
echo("Вы посетили эту страницу ".$_COOKIE['counter']." раз");
?>

Спасибо, сохранил без BOOM, ошибка ушла. А вот если изменить $counter на $_COOKIE['counter'], то счетчик пропадает, выводится только "вы посетили эту страницу раз"

  Ответить  
 
 автор: ladan   (15.12.2011 в 09:44)   письмо автору
 
   для: ladan   (15.12.2011 в 09:33)
 

ага, вставил код с куки в контент документа и опять эта ошибка... То есть эти куки только в самое самое начало страницы нужно вставлять? Не понятно только как счетчик работает, я эту страницу посетил уже раз 50, а все равно написано что 1 :) - это с кодом
 $counter++;
  setcookie('counter',$counter);
  echo("Вы посетили эту страницу ".$counter." раз");



а так с
<?
 $counter
++;
 
setcookie('counter',$_COOKIE['counter']);
 echo(
"Вы посетили эту страницу ".$_COOKIE['counter']." раз");
 
?>

вообще счетчика нет :(

  Ответить  
 
 автор: cheops   (15.12.2011 в 13:19)   письмо автору
 
   для: ladan   (15.12.2011 в 09:33)
 

Вот так следует поступить
<?
 $_COOKIE
['counter']++;
 
setcookie('counter',$_COOKIE['counter']);
 echo(
"Вы посетили эту страницу ".$_COOKIE['counter']." раз");
?>

  Ответить  
 
 автор: ladan   (15.12.2011 в 17:26)   письмо автору
 
   для: cheops   (15.12.2011 в 13:19)
 

класс, заработало :) спс

  Ответить  
Rambler's Top100
вверх

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