Max*_*rai 0 php session redirect
我正在尝试用几种语言制作我的网站.每个页面都包含config-file,它会在会话中检查变量'lang'.如果它不存在,将被重定向到lang选择的页面.选择之后你会来到这个页面.但它仅适用于Mozilla Firefox.在语言检查后的其他浏览器中,我总是得到这个页面(lang检查).我做错了什么?配置文件:
// Here is session start...
if (!isset($_SESSION['site_lang']))
{
$_SESSION['page_refer'] = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
echo '<meta http-equiv="Refresh" content="0; URL=lang_choose.php">';
exit;
}
else
{
require_once 'languages/'.$lang.'.php';
}
?>
Run Code Online (Sandbox Code Playgroud)
lang_choose.php:
// Session start
@extract($_POST);
if (isset($_POST['lang']))
{
$lang = $_POST['lang']; $lang = replace($lang);
$_SESSION['site_lang'] = $lang;
echo '<meta http-equiv="Refresh" content="0; URL='.$_SESSION['page_refer'].'">';
}
else
{
// Showing form with flags... which returns var 'lang'
}
Run Code Online (Sandbox Code Playgroud)
编辑: 如果有
< input type="image" src="img/langs/en.png" width="290" height="200" border="1" name="lang" value="en" />
Run Code Online (Sandbox Code Playgroud)
在形式上它不适用于其他浏览器(除了mozilla)但如果我使用:
< input type="submit" name="lang" value="en" />
Run Code Online (Sandbox Code Playgroud)
一切都是好的.有任何想法吗?
谢谢.
尝试使用它来执行重定向:
<?php
header('HTTP/1.1 302 Found');
header('Location: ' . $_SESSION['page_refer']);
// And just in case that doesn't work
echo '<html>',
'<head>',
'<title>Redirect</title>',
'</head>',
'<body>',
'<script type="text/javascript">',
'window.location.href = "' . $_SESSION['page_refer'] . '";',
'</script>',
'<a href="' . $_SESSION['page_refer'] . '">Click here to continue</a>',
'</body>',
'</html>';
?>
Run Code Online (Sandbox Code Playgroud)
另请注意,W3C不鼓励使用<meta>标记重定向.