【发布时间】:2013-10-23 11:56:53
【问题描述】:
我现在正在编写我的语言脚本并使用 cookie:
setcookie("lang", "nl", time() + (24 * 60 * 60));
if(isset($_GET['lang'])) {
$_COOKIE['lang'] = $_GET['lang'];
}
如果我转到 mysite/?lang=en,该网站将使用英语,但当我转到 mysite/ 时,该网站将返回主要语言(荷兰语)。 cookie 已设置,我可以在谷歌浏览器中看到信息,但它不起作用。
Print_r(mysite/)(在设置语言之前)
Array ( [lang] => nl )
Print_r(mysite/?lang=en)(设置新语言)
Array ( [lang] => en )
Print_r(mysite/)(删除 ?lang=en 后)
Array ( [lang] => nl )
我知道这个脚本现在是不安全的,但它现在不起作用。我会在它工作后添加安全性。
【问题讨论】:
-
"我会在它工作后添加安全性。"我经常听到这个......
-
无论如何,您都不应该传输 cookie 将提供哪种语言的信息——它应该是 URL 的一部分。至少如果您希望搜索引擎能够完全索引您页面的不同语言版本。
-
我的网站只对 Nederlandse Spoorwegen 有用。请参阅 Livetrein.nl(此处的 lang 脚本不工作,很快就会工作)