我的服务器在 PHP 5.2.9 中运行,当我使用刷新和标头功能时,它无法正常工作。这是我的代码
header("location: index.php");
header( "Refresh: 0;" );
以前我在不同的服务器上工作,它工作正常。我该如何解决这个问题?
这是我的完整代码
if($_POST['sign_in'])
{
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "SELECT * FROM tbl_members WHERE m_email='$email' and m_password='$password'";
$res = mysql_query($sql);
$count = mysql_num_rows($res);
if($count==1)
{
session_register("email");
header("location: index.php");
}
else
{
$sql = "SELECT * FROM tbl_temp_members WHERE email='$email'";
$res = mysql_query($sql);
$count = mysql_num_rows($res);
if($count==1)
{
echo "Login unsuccessful,Account still not activated";
}
else
{
echo "Login unsccessful";
}
}
}
答案 0 :(得分:5)
位置和刷新require an absolute URI(和“位置”而不是“位置”)。
试试这个:
header('Location: http://absolute.uri/file.ext');
如果这没有帮助,请检查my answer for any "strange" PHP problem;)
答案 1 :(得分:3)
取决于你想要做什么。你想尝试重定向吗?如果是这种情况,您只需使用header('Location: http://www.example.com/');
,但如果您想在一段时间后刷新,则可以使用:
header( "refresh:5;url=wherever.php" );
echo 'You\'ll be redirected in about 5 secs. ';
echo 'If not, click <a href="wherever.php">here</a>.';
获得了来自 - http://php.net/manual/en/function.header.php的示例代码 - 也许值得一读。
答案 2 :(得分:1)
(1)如果您拥有位置
,则不需要刷新标头(2)在最后添加exit;
第二个特例是 “位置:”标题。不仅如此 将此标题发送回浏览器, 但它也返回REDIRECT(302) 状态代码到浏览器,除非 201或3xx状态代码已经存在 已经确定。
<?php
header("Location: http://www.example.com/"); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>
答案 3 :(得分:0)
然后最好使用JavaScript。在此代码之前附加:
<script> setTimeout(function() { window.location = "index.php"; }, 2000); </script>