在会话中保存语言

时间:2013-10-22 21:09:45

标签: php wordpress session

我的网站上有4个wordpress安装,都按语言存储在一个单独的文件夹中,现在我在主目录中创建一个索引文件,其中有一个表单,他们在下拉菜单中选择一种语言,所以如果他们提交语言我想用php存储它'我猜在SESSION',所以如果他们将来再次访问主目录,他们不必再次选择语言,但是它们被重定向到/ en,/ nl,..索引页面。 我对php不是很熟悉所以有人可以解释一下如何做到这一点吗?

谢谢

<?php 
SESSION_START(); 
if (isset($_GET['en'])) { 
    header( 'Location: http://www.mysite.com/en/' ) ;
}
else if (isset($_GET['nl'])) { 
    header( 'Location: http://www.mysite.com/nl/' ) ;
}
else if (isset($_GET['de'])) { 
    header( 'Location: http://www.mysite.com/de/' ) ;
}
else if (isset($_GET['tr'])) { 
    header( 'Location: http://www.mysite.com/tr/' ) ;
}
else { 
    header( 'Location: http://www.mysite.com/' ) ;
}

?>

我尝试使用php include将其添加到页面的开头,然后将其用于表单操作但它总是返回到索引页面

我的HTML:

    <form name='language' action='language.php' method='get'>
    <select>
            <option value='en'>English</option>
            <option value='nl'>Nederlands</option>
            <option value='de'>Deutsch</option>
            <option value='tr'>Turkçe</option>
    </select>
    <input type='submit' value='Submit'><br/>
</form>

1 个答案:

答案 0 :(得分:2)

当用户访问选择语言的页面时,您可以检查他们是否已经选择了这样的语言:

if(isset($_SESSION['preferred_language'])){
    //forward the user here using php's header function
    //see this link for more info: http://php.net/manual/en/function.header.php
}
else{ //If the user has not yet selected a language
    //display the page so the user can select a language, then set that language like this:
    $_SESSION['preferred_language'] = $_GET['preferred_language'];
}