我正在开发一个在线商店,当用户的身份识别正确时,我将用户重定向到其他页面(例如,谷歌):
if(UsersManager::getInstance()->checkIdentification($_POST['userAdmin'], $_POST['passAdmin'])){
$_SESSION['user'] = $_POST['userAdmin'];
$_SESSION['lastConection'] = time();
header('Location: http://www.google.es');
die();
}
我将此代码上传到我的服务器并且可以正常运行。我已尝试过其他服务器,但重定向不起作用。
另外,我尝试使用此代码重定向
echo '<meta http-equiv="Refresh" content="0; URL=http://www.google.com">';
并删除
header('Location: http://www.google.es');
die();
既不使用元标记,也不使用header()。在我的服务器工作正常。有什么想法吗?
谢谢。
答案 0 :(得分:3)
请尝试显示错误,可能会出现输出缓冲警告。
在顶部添加
ini_set( 'display_errors', true );
error_reporting( E_ALL | E_STRICT );
P.S:使用元标记进行重定向就像你想要的那样,不是一个好的实践。
答案 1 :(得分:0)
查看为什么header();不工作。但快速修复可能是
if(UsersManager::getInstance()->checkIdentification($_POST['userAdmin'], $_POST['passAdmin'])){
$_SESSION['user'] = $_POST['userAdmin'];
$_SESSION['lastConection'] = time();
header('Location: http://www.google.es');
?>
<script type="text/javascript">
<!--
window.location = "http://www.google.es/"
//-->
</script>
<?php
echo "<a href=\"http://www.google.es\">If your browser didn't redirect you click here.</a>";
die();
}
Javascript应该重定向每个标头()不起作用。
如果他们有javascript禁用,它会给他们链接。尽管如此,让它成为一个漂亮的链接;]