你好我有一个问题如何使用会话。
我想更改网站的语言。所以语言设置的逻辑如下:
调用我的网站时,将检查是否有 browser_accept_language。如果有语言设置,它将被用作首选语言,否则设置默认语言。在下一步中,将检查是否已经在会话中存储了它的设置。如果语言有会话值,则首选语言将更改为会话条目。
好的,这是逻辑部分。现在我尝试编码。问题是它似乎不起作用,我不知道为什么。
所以php是:
<?PHP
session_start();
header ("Content-Type: text/html; charset=utf-8");
include_once "scripts/db_connect.php";
if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])){
$max = 0.0;
$languages = explode(",", (strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])));
foreach($languages as $language){
$language = explode(';', $language);
$q = (isset($language[1])) ? ((float) $language[1]) : 1.0;
if ($q > $max){
$max = $q;
$pref_language = $language[0];
}
}
$pref_language = trim($pref_language);
}
$_SESSION['language'] = $pref_language_changed;
if (isset ($_SESSION['language']) ){
$pref_language = $pref_language_changed;
}...
然后是一些用于 mainwrapper 的 html 页脚:
if ($pref_language === "af" OR $pref_language === "en"{
$footer = "footer1";
}else{
$footer = "footer2";
}
include_once "../scripts/".$footer.".php";
页脚本身是:
... <ul class="flag">
<li id="'.$language_flag.'">
<ul class="drop_down">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<a href="/foo"><li id="one"><div>language1</div></li></a>
<a href="/bar"><li id="two"><div>language2</div></li></a>
</form>
</ul>
</li>
</ul>...
<!--Footer -->';
if (isset($_POST['one'])){
$_SESSION['language'] = "language1";
}
if (isset($_POST['two'])){
$_SESSION['language'] = "language2";
}
?>
这就是我所有页面的基础。
如果有人可以告诉我如何使用会话,我将不胜感激。
多谢。