初始化语言选择

时间:2013-09-10 11:41:35

标签: php session localization initialization

我正在尝试简单的语言初始化工作,下面是条款。错过了用户不会使用默认语言集或选定语言集的任何可能情况?!

  • 如果lang已过帐,则将其分配给$ _SESSION
  • 如果lang未发布,请查看$ _SESSION是否不存在并指定默认
  • 否则不执行任何操作,因为$ _SESSION已使用所选语言设置并已填充。

    if(isset($_POST['lang'])) {
      $_SESSION['lang'] = $_POST['lang'];
    } else {
      if(!isset($_SESSION['lang'])) {
        $_SESSION['lang'] = 'en_uk';
      }
    }
    

2 个答案:

答案 0 :(得分:1)

如果你想在会话中使用lang,它看起来很好。虽然cookie会更好。

您可能希望在将POSTed值保存到会话之前对POSTed值进行某种验证,或者在数据库或文件中查找字符串。

if(!preg_match('/^[a-z]{2}_[a-z]{2}$/', $_POST['lang']))
    die('Wrong lang parameter format');

答案 1 :(得分:0)

在会话中使用语言会产生奇怪的意外影响。

会话很好......会议范围广。如果我打开两个窗口进入你的网站,并且我将语言改为一个,当我加载另一个页面时,另一个语言也会切换。

将语言放入网址,例如:

  • my.domain.com/的 en_uk /作业
  • my.domain.com/的 EN_US /作业

当“下一页”不是一个页面时,这种效果变得更加奇怪,但是,例如我正在提交的表格。