如何使用PHP在会话中保存语言?

时间:2015-06-25 17:57:59

标签: php session

我想使用$ _GET ['']方法在会话中保存语言:

<a href="?lang=fr">French</a>
<a href="?lang=en">English</a>

默认情况下,网站语言为法语。如果用户从上面的链接中选择一个,则将更改网站语言。然后甚至认为$ _GET ['lang']没有设置,我希望$ _SESSION ['lang']总是保存用户选择的最后一种语言。

我试过这个,但它不是逻辑,我知道..

$languages = array('en', 'fr');
if(isset($_GET['lang']) AND in_array($_GET['lang'], $languages)){
    $_SESSION['lang'] = $_GET['lang'];
}else{    
    $_SESSION['lang'] = "fr";    
}
require_once('languages/'.$_SESSION['lang'].'.php');

我应该怎么做以保存最后一种语言是会话变量?

1 个答案:

答案 0 :(得分:3)

当你没有在网址中使用该语言时会发生什么,它会将其设置为法语。

要解决这个问题,你可以在会话中设置语言(如果在网址中给出),否则如果没有设置会话,则默认情况下是法语。

$languages = array('en', 'fr');
if(isset($_GET['lang']) AND in_array($_GET['lang'], $languages)){
    $_SESSION['lang'] = $_GET['lang'];
}
if(!isset($_SESSION['lang']){    
    $_SESSION['lang'] = "fr";    
}
require_once('languages/'.$_SESSION['lang'].'.php');