2011-06-07 119 views
0
if(empty($_SESSION['count'])){ 
    $_SESSION['count']=99; 
}else{ 
    $_SESSION['count']--; 
} 
echo $_SESSION['count']; 

在Firefox中,我得到遞減值,但在IE和Chrome中,它不會減少值並設置值。任何人都可以告訴問題是什麼?在IE瀏覽器和谷歌瀏覽器中的會話問題不在Mozilla Firefox中

+1

該代碼本身看起來不錯;你有沒有證實IE和瀏覽器的瀏覽器安全設置有適當的隱私設置,以允許PHP設置會話? – jlmcdonald 2011-06-07 05:03:56

回答

0

這似乎工作。請注意,我檢查isset($ _ SESSION [ '臨時'])這裏,不爲空($ _ SESSION [ '數']:

<?php 
session_start(); 

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

?> 
+0

我已經開始只是嘗試在你的瀏覽器並回答我的問題兄弟... – K6t 2011-06-07 08:55:04

+0

我糾正我的問題只是看到並告訴我答案 – K6t 2011-06-07 08:57:04

+0

@echo「KarghiKeyan」 - 有更多的_iHaveacomputer_的答案。他/她使用isset()而不是empty()並使用session_start()啓動會話。順便說一句「看到並告訴我答案」不是我用來從任何人那裏得到幫助的短語...... – martinstoeckli 2011-06-07 09:12:58

0

PHP代碼在服務器上運行,所以每一個瀏覽器中得到的結果相同。如果它適用於一個瀏覽器,但不適用於其他瀏覽器,則它們可能具有不同的設置,我會檢查所有瀏覽器是否允許設置會話cookie,否則它們將在每次調用腳本時啓動一個新會話。由於iHaveacomputer已經指出,功能empty()將不會在您的示例中工作,因爲它會將值0視爲空值,因此開始以99計數。使用改爲或array_key_exists()