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


Автор: Finder128 29.1.2009, 09:55
Собственно, вопрос вот в чём:
Как ставить куки при register_globals=off?
Вот пример простейшего счётчика посещений:
Код

if(!isset($Counter)) $Counter=0;
 $Counter++;
 SetCookie("Counter",$Counter,time()+3600);
 echo "Вы запустили этот сценарий $Counter раз";

Он работает только при register_globals=on. 
Как его можно реализовать при значении off?

Автор: bars80080 29.1.2009, 10:03
а $_COOKIE['Counter']; проверял?

Автор: skyboy 29.1.2009, 10:04
Цитата(Finder128 @  29.1.2009,  08:55 Найти цитируемый пост)
Как ставить куки при register_globals=off?

точно так же.
ты знаешь, как работает register_globals? видимо, нет.
положим, у нас обращение к скрипту с GET-параметрами: 
index.php?some=value
Тогда в самом скрипте к переменной some можно обратиться, как $_GET['some'](в любом случае, так переменную получишь).
Если включен register_globals, то к переменной some можно обратиться и так: $some.
А теперь расширь эту аналогию на массив http://ua.php.net/manual/ru/reserved.variables.cookies.php

Автор: Finder128 29.1.2009, 10:28
Всё, спасибо всем, разобрался. Вот рабочий код:
Код

$Counter=$_COOKIE['Counter'];
 if(!isset($Counter)) $Counter=0;
 $Counter++;
 SetCookie("Counter",$Counter,time()+3600);
 echo "Вы запустили этот сценарий $Counter раз";


Автор: bars80080 29.1.2009, 11:36
Цитата(Finder128 @  29.1.2009,  09:28 Найти цитируемый пост)
$Counter=$_COOKIE['Counter'];
 if(!isset($Counter)) $Counter=0;

 smile 
может всё же:

 
Код

if(!isset($_COOKIE['Counter'])) $_COOKIE['Counter']=0;
$Counter=$_COOKIE['Counter'];
 $Counter++;
 SetCookie("Counter",$Counter,time()+3600);
 echo "Вы запустили этот сценарий $Counter раз";
?

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