Php 如何使用会话?
你好,我有一个关于如何使用会话的问题 我想更改网站的语言。因此,语言设置的逻辑如下所示: 调用我的站点时,将检查是否有浏览器\接受\语言。 如果有语言设置,则将其用作首选语言,否则将设置默认语言。 在下一步中,将检查会话中是否已经存储了它的设置。 如果存在语言的会话值,则首选语言将更改为会话条目 好的,这是逻辑部分。现在我试着编码。问题是它似乎不起作用,我不知道为什么 因此,php是:Php 如何使用会话?,php,html,session,Php,Html,Session,你好,我有一个关于如何使用会话的问题 我想更改网站的语言。因此,语言设置的逻辑如下所示: 调用我的站点时,将检查是否有浏览器\接受\语言。 如果有语言设置,则将其用作首选语言,否则将设置默认语言。 在下一步中,将检查会话中是否已经存储了它的设置。 如果存在语言的会话值,则首选语言将更改为会话条目 好的,这是逻辑部分。现在我试着编码。问题是它似乎不起作用,我不知道为什么 因此,php是: <?PHP session_start(); header ("Cont
<?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;
}...
页脚本身是:
... <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";
}
?>
-
。。。
';
如果(isset($_POST['one'])){
$\会话['language']=“language1”;
}
如果(isset($_POST['two'])){
$\会话['language']=“language2”;
}
?>
这就是我所有页面的构建基础
如果有人能告诉我如何使用会话,我将不胜感激
非常感谢。试试这个
<ul class="drop_down">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<li><input type="submit" name="one" value="language1"></li>
<li id="two"><input type="submit" name="one" value="language2"></li>
</form>
</ul>
当您想链接一个
使用
不要在
之外使用a href。在通过POST提交语言后,您必须重新登录页面,因为您在加载新语言之前阅读了它!另一个选项是在实际检查会话之前移动设置会话的代码
杰弗里的答案也是正确的。您的原始代码根本没有发送lang。“不工作”很好,这是描述性的。谢谢您的回答@邦妮,这仍然是完全准确的。你的问题到底是什么?开始课程,向其中添加内容,然后在你回答正确的问题时清除它。那么上面的代码不起作用了吗?您好,我想用那个链接来添加会话值。这不可能吗?谢谢
<ul class="drop_down">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<li><input type="submit" name="one" value="language1"></li>
<li id="two"><input type="submit" name="one" value="language2"></li>
</form>
</ul>
<li><a href="/foo">Link</a></li>