首先在我的設置背景的全部一點點的會話變量:持續期跨頁
- 我有一個本地域名設置,projects.lumesse.com。
- 在IIS 7上運行的PHP版本是5.4.16。
- Chrome(最新穩定版本)測試。
的問題如下:
我稱之爲「的getVariable」的功能如下:
function getVariable($name, $default = "") {
if(isset($_POST[$name])) return $_POST[$name];
if(isset($_GET[$name])) return $_GET[$name];
if(isset($_SESSION[$name])) return $_SESSION[$name];
return $default;
}
要通過這個功能一行行,如果它存在,它返回變量後,其次是get變量,後面是會話變量,後面是默認值(如果其他都不存在)。
在另一包括,包含後直接功能包括,我有以下行:
$_SESSION["Language"] = getVariable("Language", "FR");
如果我把語言也能正常工作= DE - 該網站顯示,在德國預期。但是從上面的行我預計,如果我刪除querystring語言是持久的。
第一次打這個頁面時,用Language = DE,它應該返回get變量。上面的行然後設置會話變量。之後對此函數的任何調用都會返回會話變量,對吧?
實際上,在沒有語言參數存在的情況下,即使我事先設置了語言,它實際上也會返回默認的FR。
關於我失蹤的任何想法將不勝感激。
這種抽象讓我很失望。難道你不能用簡單的方法來做:if(!isset($ _ SESSION ['Language'])){$ _SESSION ['Language'] = $ _GET ['Language']; } else {$ _SESSION ['Language'] ='FR'; }' –
只要確定:你確定你沒有忘記事先用'session_start()'啓動會話嗎? – pixeline
好吧,我現在覺得很笨 - 忘了所有重要的'session_start()'。感覺像這樣一個小白菜。 – ClarkeyBoy