2012-05-05 240 views
-1

嘗試基於會話變量運行循環。 在第一頁加載沒有會話。 當它設置會話我設置會話變量和警報。php循環會話變量

問題是,它提醒每一個頁面加載:(

` 
<!-- language: lang-php --> 

$check = $_SESSION['cache']; 

if ($check == "xYx") { 

echo $word; 
} else { 

session_start(); 
?><script>alert ("Im reading it again !")</script><? 

echo $word; 
$_SESSION['cache'] = "xYx"; 
} 

`

+2

你必須先開始會話,然後才能讀取它。 –

+0

多數民衆贊成在這種情況下,所以自第一次讀取$ check不會等於xyx,它會創建會話並將$ check設置爲xYx。 – Tanjitsu

+0

像Alex說的,你必須在使用$ _SESSION superglobal之前調用session_start()。 「讀取回調將檢索任何現有的會話數據(以特殊的序列化格式存儲),並且將被解序列化並用於在讀取回調將已保存的會話數據返回到PHP會話處理時自動填充$ _SESSION超全局。」 http://php.net/manual/en/function.session-start.php – micahwittman

回答

1

只是做這個:

session_start(); 
$check = $_SESSION['cache']; 

if ($check == "xYx") { 

echo $word; 
} else { 

?><script>alert ("Im reading it again !")</script><? 

echo $word; 
$_SESSION['cache'] = "xYx"; 
} 

這只是簡單地將session_start()開頭,因爲評論說。

+0

完美,我知道這將是簡單。 Thx爲快速回復。 – Tanjitsu

1
$check = $_SESSION['cache']; 

發生之前

session_start(); 

這是行不通的。