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

Форум PHP

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

 

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

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

тема: Куки для проверка первого входа
 
 автор: elenaki   (24.05.2012 в 11:09)   письмо автору
 
 

запуталась с куками. есть баннер в слое, который нужно показать только один раз в сутки
при первом входе на сайт. делаю так


<?  if (!isset($_COOKIE["counter"]) || intval($_COOKIE['counter']) <= 0) {
    
$_COOKIE['counter'] ++; 
    
setcookie('counter',$_COOKIE['counter'], 86400); 
    
$onLoad "showLev('loading'); hideLev('all')";
}    
else {
    
$onLoad "hideLev('loading'); showLev('all')";
}
?>


баннер все равно покaзывается постоянно, при каждом обновлении страницы

  Ответить  
 
 автор: Lotanaen   (24.05.2012 в 11:22)   письмо автору
 
   для: elenaki   (24.05.2012 в 11:09)
 

а перед установкой кукис ничего Вы не отдаете клиенту? До установки ничего не должно отправляться клиенту.

  Ответить  
 
 автор: elenaki   (24.05.2012 в 11:31)   письмо автору
 
   для: Lotanaen   (24.05.2012 в 11:22)
 

нет. уже проверила сто раз. там подключение всяких настроек идет. оно было перед шапкой,
перенесла их после (куки в шапке устанавливаю).

переделала немного. делаю даже тестовый вывод - выводит.


$_COOKIE['counter']++; 
 setcookie('counter',$_COOKIE['counter'], 86400); 
 echo "cookie: ".$_COOKIE['counter'];
 if ($_COOKIE['counter'] <=1 ) {
                      $_COOKIE['counter']++; 
     $onLoad = "showLev('loading'); hideLev('all')";
  } else {
     $onLoad = "hideLev('loading'); showLev('all')";
 
}
но после удаления кук из браузера, они не обнуляются.

  Ответить  
 
 автор: Lotanaen   (24.05.2012 в 11:49)   письмо автору
 
   для: elenaki   (24.05.2012 в 11:31)
 

а зачем $_COOKIE['counter']++; ? в вашем примере даже при неудачной установке кукиса будет выводиться $_COOKIE['counter'].

а если таким образом сделать? :


<?  if (!isset($_COOKIE["counter"]) || intval($_COOKIE['counter']) <= 0) {
    
setcookie('counter',186400,'/'); 
    
$onLoad "showLev('loading'); hideLev('all')";
}    
else {
    
$onLoad "hideLev('loading'); showLev('all')";
}
?>

  Ответить  
 
 автор: elenaki   (24.05.2012 в 11:58)   письмо автору
 
   для: Lotanaen   (24.05.2012 в 11:49)
 

нет. все равно выводится баннер при каждом входе.
при попытке вывода куки, выводит пустое место.

  Ответить  
 
 автор: Lotanaen   (24.05.2012 в 12:08)   письмо автору
 
   для: elenaki   (24.05.2012 в 11:58)
 

а ну да - время же действия куки нужно вот так устанавливать time()+86400 . Что-то я сразу пропустил этот момент )))

  Ответить  
 
 автор: elenaki   (24.05.2012 в 12:27)   письмо автору
 
   для: Lotanaen   (24.05.2012 в 12:08)
 

не помогает. куки не устанавливаются. пока сделала на сессиях, чтобы хотя бы в пределах одной сесссии
можно было убрать баннер один раз и больше его не видеть... что-то у меня с этими куками вечные нелады.

  Ответить  
 
 автор: Lotanaen   (24.05.2012 в 13:02)   письмо автору
 
   для: elenaki   (24.05.2012 в 12:27)
 

а если сделать вывод ошибок в браузер - что пишет?

  Ответить  
 
 автор: elenaki   (24.05.2012 в 15:02)   письмо автору
 
   для: Lotanaen   (24.05.2012 в 13:02)
 

а ничего не пишет. что вообще-то очень странно, потому что код древний (не мой!), ошибок и нотайсов должно быть до фига. может, где-то подавляется вывод ошибок в браузер? сделала отдельный файл. только установка и вывод куки. работает. на сайте не работает.


по ошибке, изменив опять проверку на куки, оставила session_start() (у предыдущего программера не было привычки открывать сессии). зарабтало. куки не работают без сессий? тема закрыта.

  Ответить  
 
 автор: Lotanaen   (24.05.2012 в 17:07)   письмо автору
 
   для: elenaki   (24.05.2012 в 15:02)
 

попробуйте вставить в начало кода ini_set('display_errors',1);

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

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