爲什麼$ _COOKIE ['lang']在我用javascript編輯cookie並重新加載頁面時不會改變?
我有一個網站,您可以選擇您的語言。如果您第一次進入該網站,$ _COOKIE ['lang']將被設置爲'DE'。否則它將被延長。
function setLangCookie()
{
if(!isset($_COOKIE["lang"]))
{
setcookie("lang","DE",time() + (86400 * 30), "/");
}
else
{
setcookie("lang",$_COOKIE["lang"],time() + (86400 * 30), "/");
}
}
Cookie on entering the first time
更改後德語言 'EN',cookie將用JavaScript來改變。
function changeLang(lang)
{
var date = new Date();
date.setTime(date.getTime()+(30*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
document.cookie = "lang="+lang+expires+"; path=/";
location.reload();
}
After editing with JS
這個工作,但是當我看到$ _COOKIE [ '郎'],它有 'DE' 的內容。 Document.cookie代替lang ='EN'。
我也在其他瀏覽器上測試過,結果相同。
我使用Chrome 47.0.2526.106。
編輯: 實施
<?php
error_reporting(-1);
session_start();
include('PHP_inc/functions.php');
setLangCookie();
?>
<select class="LangSelector" onchange="changeLang(value)">
<option selected disabled>Language</option>
<option value="DE">DE</option>
<option value="EN">EN</option>
</select>
而現在由於$ _COOKIE [ '郎']總是 'DE',將它在setLangCookie改變從 'EN' 到 'DE'(),並擴大了時間。
這對我的作品。實施細節一定有問題。你能否編輯這個問題並提供一個完整的自包含例子來重現問題? –
你確定cookie沒有設置http only標誌嗎? – PeeHaa
我會爲你提供一個例子。 –