谁能告诉我为什么这不起作用?
<?php
$lang = $_get["lang"];
if (($lang == "fr"))
{
session_destroy();
session_start();
$_SESSION['lang'] == "fr";
}
if (($lang == "en"))
{
session_destroy();
session_start();
$_SESSION['lang'] == "en";
}
if (isset($_SESSION['lang']))
{
$lang = $_SESSION['lang'];
}
else
{
$lang = "fr";
}
?>
Run Code Online (Sandbox Code Playgroud)
我似乎无法让它工作,我尝试了很多不同的东西.只需要指出错误的方向.
如果有任何帮助,它在Apache服务器上的PHP5上运行.
即使没有会话,我也无法让$ _get工作.通常情况从来都不是这样.
hex*_*mal 15
$_SESSION['lang'] == "fr";
Run Code Online (Sandbox Code Playgroud)
两个等号表示比较算子.赋值是=(一个相等)
一个显而易见的事是
$_get["lang"];
Run Code Online (Sandbox Code Playgroud)
变量在PHP中区分大小写.肯定是
$_GET["lang"];
Run Code Online (Sandbox Code Playgroud)
如果这不能解决您的问题,您需要详细描述究竟什么不起作用.
我重新考虑了您的代码,以便将来更容易使用.正如Pekka所说,我问或许你需要/想要$ _GET.
<?php
session_start();
$language = $_GET['lang'];
$allowable_languages = array(
'en',
'fr',
);
if(in_array($language, $allowable_languages)) {
$_SESSION['lang'] = $language;
} else {
$_SESSION['lang'] = 'fr';
}
?>
Run Code Online (Sandbox Code Playgroud)
更新:回答您的评论:
<?php
session_start();
if(isset($_GET['lang'])) {
$language = $_GET['lang'];
$allowable_languages = array(
'en',
'fr',
);
if(in_array($language, $allowable_languages)) {
$_SESSION['lang'] = $language;
}
}
if(!isset($_SESSION['lang'])) {
$_SESSION['lang'] = 'fr';
}
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3609 次 |
| 最近记录: |