首先,請耐心解決問題,因爲我剛剛開始使用此功能。PHP將不會檢索cookie
所以,我有以下在index.php文件運行:
<?php
if(isset($_COOKIE['language'])) {
if (($_COOKIE['language']) == 'en')
print "<SCRIPT LANGUAGE=\"JavaScript\">window.location=\"URLGOESHERE\"</SCRIPT>";
elseif (($_COOKIE['language']) == 'fr')
print "<SCRIPT LANGUAGE=\"JavaScript\">window.location=\"URLGOESHERE\"</SCRIPT>";
}
else {
print "<SCRIPT LANGUAGE=\"JavaScript\">window.location=\"URL-FOR-COOKIE-SETTING-PAGE\"</SCRIPT>";
}
?>
的「其他人」語句重定向進入到用戶設置自己的語言首選項的頁面,而一旦他們這樣做,該頁面集一個cookie然後將它們發送到正確版本的網站。然而,當用戶回到這個主要的index.php時,它似乎無法找到cookie並跳到「else」語句的正確位置。重定向用於使用'頭部'使用PHP完成,然後它也不起作用。我曾在其他地方看過這可能會造成一些麻煩,所以我將它改爲嘗試打印Javascript。
奇怪的是,我可以立即找到cookie,確切地說它應該在哪裏,正確的名稱和變量都存在。我完全像書本告訴我的那樣(據我所知)。我已經嘗試過在Firefox和Safari中都沒有運氣。
我錯過了什麼?
編輯:這是實際設置cookie的腳本。該參數從鏈接通過URL編碼發送這樣的:<a href="setlang.php?lang=en">
<?php
$lang = urlencode($_GET["lang"]);
setcookie("language", $lang, time()+60*60*24*90, ".URL");
switch ($lang) {
case 'en':
header('Location: URLGOESHERE');
break;
case 'fr':
header('Location: URLGOESHERE');
break;
}
?>
爲什麼你使用'javascript:window.location'而不是'header()'? – drudge 2011-04-07 23:31:35
我之前提到過,重定向用於使用'header'使用PHP完成,並且它也不起作用。我曾在其他地方看過這可能會造成一些麻煩,所以我將它改爲嘗試打印Javascript。 – Jake 2011-04-08 00:03:16
PHP版本看起來不錯。我見過'header()'唯一遇到過的麻煩是,如果你已經在輸出到頁面之前嘗試調用它。 – drudge 2011-04-08 00:06:07