Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Куки и счетчик посещений


Автор: AldarKose 2.9.2013, 17:23
Здравствуйте, уважаемые форумчане.
Извиняюсь за подобный нубский вопрос.
На данный момент изучаю PHP (курс от "Специалиста") и для практики необходимо написать простой счетчик посещений через куки. 
Не могу понять, почему не работает следующий код:

Код

<?php
setcookie(iAmVisitYou, 1); //ставим куку, по которой будем определять, заходил ли человек до нас ранее.
$visitCounter; //переменная, для хранения количества посещений
if (isset($_COOKIE[iAmVisitYou])) { //проверяем на существование куки с параметром "iAmVisitYou"
    $visitCounter = $visitCounter + $_COOKIE[iAmVisitYou]; //если кука существует - прибавляем к $visitCounter единичку.
    echo "Здравствуйте!. Вы были у нас $visitCounter раз";
} else {
    echo "Добро пожаловать!";
}
?>


Прошу направить новичка на путь истинный smile
C уважением.

Автор: ksnk 2.9.2013, 17:33
В этом курсе говорится что-то о массиве $_COOKIE? 
А о дополнительных параметрах функции set_cookie?
Не скопирован ли этот пример из текста курса? 

Автор: AldarKose 2.9.2013, 17:39
Пример не скопирован, а написан мной. О дополнительных параметрах тоже говорится. Но там же только один параметр (первый) обязательный?
К курсу прилагается уже работающий пример. Но подглядывать не хочется. Хочется как-то самому понять, как всё работает.

Автор: Чучмек 2.9.2013, 18:15
А почему он должен работать?
Будет все время писать  "Здравствуйте!. Вы были у нас 1 раз" Ты в куках хранишь что человек был, а сколько раз он был где сохраняешь?

Добавлено через 10 минут и 40 секунд
Код

$visitCounter = isset($_COOKIE['iAmVisitYou_'])?$_COOKIE['iAmVisitYou_']:0;
setcookie('iAmVisitYou_',$visitCounter+1);
echo $visitCounter?"Здравствуйте!. Вы были у нас $visitCounter раз":"Добро пожаловать!";

Автор: AldarKose 2.9.2013, 18:32
Спасибо. Ошибку понял. С кодом разобрался. У меня получилось так:

Код

$visitCounter = 0;
if (isset($_COOKIE["iAmVisitYou"]))
    $visitCounter = $_COOKIE["iAmVisitYou"];
$visitCounter++;
setcookie("iAmVisitYou", $visitCounter);
echo "Вы были у нас $visitCounter раз";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)