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

Форум PHP

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

 

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

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

тема: Помогите начинающему. Пример из учебника. Заранее спасибо
 
 автор: meatball   (15.03.2005 в 21:06)   письмо автору
 
 

Делаю пример из учебника по PHP этого сайта.
===========================================
<?
$counter++;
setcookie("counter",$counter);
echo("Вы посетили эту страницу $counter раз");
?>
============================================
Почему то надпись "Вы посетили эту страницу 1 раз" не меняется.
register_globals = off

Заранее спасибо

   
 
 автор: Akira   (15.03.2005 в 21:45)   письмо автору
 
   для: meatball   (15.03.2005 в 21:06)
 


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

"Плюшки" проверели? Может они отключены?
register_globals = on;

   
 
 автор: meatball   (15.03.2005 в 21:59)   письмо автору
 
   для: Akira   (15.03.2005 в 21:45)
 

Если так, то у меня надпись "Вы посетили эту страницу 1 раз" остается
Пробовал и с register_globals = off
и register_globals = on

   
 
 автор: isset   (15.03.2005 в 21:49)   письмо автору
 
   для: meatball   (15.03.2005 в 21:06)
 


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

   
 
 автор: meatball   (15.03.2005 в 22:01)   письмо автору
 
   для: isset   (15.03.2005 в 21:49)
 

А если так

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

Остается надпись "Вы посетили эту страницу раз">

   
 
 автор: Valeri   (16.03.2005 в 00:04)   письмо автору
 
   для: meatball   (15.03.2005 в 22:01)
 

вообще то если я не дурак, то в $counter надо значение сначало занести.
к чему у вас идет прибавление, к пустоте ?
по идеи должно быть так

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

вроде так

   
 
 автор: isset   (16.03.2005 в 00:20)   письмо автору
 
   для: Valeri   (16.03.2005 в 00:04)
 

Да, так правильно. На будущее если $counter = "" , то ++ превратит его в integer (0)

   
 
 автор: meatball   (16.03.2005 в 16:12)   письмо автору
 
   для: isset   (16.03.2005 в 00:20)
 

Всем спасибо.
Но только все равно остается надпись "1 раз".
Помогите... Плизз-з-з-з.

   
 
 автор: cheops   (16.03.2005 в 19:21)   письмо автору
 
   для: meatball   (16.03.2005 в 16:12)
 

В примере двумя постами выше была проблема с post-инкрементом, сначала приравнивалось значение и лишь затем увеличивалось на единицу. Нужно использовать либо пред-инкремент, либо явно прибавлять единицу
<?php
  
if (!isset($_COOKIE['counter']))
  { 
    
$counter 1
  } else { 
    
$counter $_COOKIE['counter'] + 1
  } 
  
setcookie("counter",$counter); 
  echo(
"Вы посетили эту страницу $counter раз"); 
?>


PS Данный вариант расчитан на случай, если отключена директива register_globals.

   
 
 автор: meatball   (16.03.2005 в 21:14)   письмо автору
 
   для: cheops   (16.03.2005 в 19:21)
 

Ура, спасибо всем

   
 
 автор: meatball   (16.03.2005 в 21:15)   письмо автору
 
   для: cheops   (16.03.2005 в 19:21)
 

Все получилось.
Всем огромное спасибо.
Отдельное спасибо "cheops"-лучший в этом топе!!!
Это классный форум, теперь буду здесь виснуть! Все такие отзывчивые, грамотные.

   
Rambler's Top100
вверх

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