Проблема с сессиями в IE и Google Chrome отсутствует в Mozilla Firefox - PullRequest
0 голосов
/ 07 июня 2011
if(empty($_SESSION['count'])){
    $_SESSION['count']=99; 
}else{
   $_SESSION['count']--;
}
echo $_SESSION['count'];

В Firefox я получаю уменьшенное значение, но в IE и Chrome оно не уменьшает значение, а не устанавливает его. Кто-нибудь может подсказать в чем проблема?

Ответы [ 2 ]

0 голосов
/ 07 июня 2011

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

Как уже указывалось iHaveacomputer , функция empty() не будет работать в вашем примере, поскольку она будет считать значение 0 пустым и, следовательно, начнет считать с 99. Используйте isset() или array_key_exists() вместо.

0 голосов
/ 07 июня 2011

Это похоже на работу. Обратите внимание, что здесь я проверяю isset ($ _ SESSION ['temp']), а не пустой ($ _ SESSION ['count']:

<?php
session_start();

if(!isset($_SESSION['temp'])){
    $_SESSION['temp']=99; 
}else{
   $_SESSION['temp']--;
}
echo $_SESSION['temp'];

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...