我正在尝试简单的语言初始化工作,下面是条款。错过了用户不会使用默认语言集或选定语言集的任何可能情况?!
lang
已过帐,则将其分配给$ _SESSION lang
未发布,请查看$ _SESSION是否不存在并指定默认否则不执行任何操作,因为$ _SESSION已使用所选语言设置并已填充。
if(isset($_POST['lang'])) {
$_SESSION['lang'] = $_POST['lang'];
} else {
if(!isset($_SESSION['lang'])) {
$_SESSION['lang'] = 'en_uk';
}
}
答案 0 :(得分:1)
如果你想在会话中使用lang,它看起来很好。虽然cookie会更好。
您可能希望在将POSTed值保存到会话之前对POSTed值进行某种验证,或者在数据库或文件中查找字符串。
if(!preg_match('/^[a-z]{2}_[a-z]{2}$/', $_POST['lang']))
die('Wrong lang parameter format');
答案 1 :(得分:0)
在会话中使用语言会产生奇怪的意外影响。
会话很好......会议范围广。如果我打开两个窗口进入你的网站,并且我将语言改为一个,当我加载另一个页面时,另一个语言也会切换。
将语言放入网址,例如:
当“下一页”不是一个页面时,这种效果变得更加奇怪,但是,例如我正在提交的表格。