2015-06-25 37 views
1

我想用$ _GET [“”]的方法来保存语言的会话:如何在使用php的会话中保存语言?

<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'); 

我应该怎么做,然后保存最后的语言会话变量?

+0

请确保您有'在session_start()' – Muhammet

+0

它已经存在, 的问题是,当$ _GET [“郎”]设置,语言的变化,但是当用户进入到另一个页面,$ _SESSION ['lang']等于“fr”,默认语言,因为如果$ _GET ['lan'] issset我做出改变语言的条件并且我不想那样,我想要$ _SESSION ['lang' ]始终保持其最后的价值,我只是不知道那里的逻辑 – Devstar

回答

3

发生什么事情是,当你没有在URL中的语言,它将其设置回法国。

要解决此问题,请在会话中设置语言(如果在URL中给出),否则如果根本没有设置会话,则默认为法语。

$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'); 
+0

谢谢穆罕默德..这就是我一直在寻找:) – Devstar

+0

@Devstar不客气:) – Muhammet

+0

旁注:因为有一个'如果',如果!isset($ _ SESSION ['lang']){ $ _SESSION ['lang'] =“fr”; }'could改为只是'else {$ _SESSION ['lang'] =“fr”; }'。 –