我已经尝试了几个小时,但无法解决这个问题。我正在尝试创建一个多语言网站,我有一个表单来切换语言。每次我切换语言时,我都必须重新加载页面两次以查看结果。网站结构如下:
1:general.php检查用户是否已登录,并将语言存储在会话变量
中if($count ==1){
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$_SESSION['language'] = $row['language'];
}
}
2:每个页面都包含header.php,它将运行setLanguage函数setLanguage($_SESSION['language'])
这是general.php
function setLanguage($lan){
if($lan == "english"){
include("languages/en.php");
}elseif($lan == "tra_chinese"){
include("languages/tra_chinese.php");
}else{
include("languages/en.php");
}
}
3:change.php是包含更改语言的表单的页面。
if(!empty($_POST)){
$sql = "update users set `language` = :language where `username` = :id";
$result = $db->prepare($sql);
$result->execute(array(
':language'=>$_POST['language'],
':id'=>$id
)
);
$_SESSION['language'] = $_POST['language'];
setLanguage($_SESSION['language']);
}
<form action="change.php" method="post">
<input type="radio" name="language" value="english" <?php if($_SESSION['language']=='english') echo 'checked="checked"' ?>>English
<input type="radio" name="language" value="tra_chinese" <?php if($_SESSION['language']=='tra_chinese') echo 'checked="checked"' ?>>中文
<input style="margin-top:8px" type="submit" value="<?PHP echo CHANGE_LANGUAGE;?>" class="button">
</form>...then goes on to display the contents
第一次在change.php中切换语言时,似乎没有加载不同的语言文件。有人可以教我如何解决这个问题吗?谢谢!