Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录时页面重定向_Php - Fatal编程技术网

Php 登录时页面重定向

Php 登录时页面重定向,php,Php,下面的脚本工作正常,它允许用户登录 在他们登录后,这行代码要求他们单击链接以转到members.php页面 die("You are now logged in. Please <a href='members.php'>" ."click here</a> to continue.<br /><br />"); die(“您现在已登录。请继续。”; 有没有办法让页面在他们登录后自动重定向到members.php <?php // log

下面的脚本工作正常,它允许用户登录

在他们登录后,这行代码要求他们单击链接以转到members.php页面

die("You are now logged in. Please <a href='members.php'>" ."click here</a> to continue.<br /><br />");
die(“您现在已登录。请继续。

”;
有没有办法让页面在他们登录后自动重定向到members.php

<?php // login.php
include_once 'header.php';
echo "<div class='main'><h3>Please enter your details to log in</h3>";
$error = $user = $pass = "";

if (isset($_POST['user']))
{
    $user = sanitizeString($_POST['user']);
    $pass = sanitizeString($_POST['pass']);
    $pass_hash = md5($pass);

    if ($user == "" || $pass == "")
    {
        $error = "Not all fields were entered<br />";
    }
    else
    {
        $query = "SELECT user,pass FROM members
            WHERE user='$user' AND pass='$pass_hash'";

        if (mysql_num_rows(queryMysql($query)) == 0)
        {
            $error = "<span class='error'>Username/Password
                      invalid</span><br /><br />";
        }
        else
        {
            $_SESSION['user'] = $user;
            $_SESSION['pass'] = $pass;
            die("You are now logged in. Please <a href='members.php'>" . "click here</a> to continue.<br /><br />");
        }
    }
}

echo <<<_END
<form method='post' action='login.php'>$error
<span class='fieldname'>Username</span><input type='text'
    maxlength='16' name='user' value='$user' /><br />
<span class='fieldname'>Password</span><input type='password'
    maxlength='16' name='pass' value='$pass' />
_END;
?>

<br />
<span class='fieldname'>&nbsp;</span>
<input type='submit' value='Login' />
</form><br /></div></body></html>
是的,有:

header('Location: members.php');
exit;
请记住包括
退出
,这样即使在处理标头时出现问题,代码也会停止运行

另外请注意,这需要在进行任何输出之前进行





顺便说一句,我没有检查过你的任何代码,除了我在上面提到的,在你有die()行的地方,你可以这样做

ob_clean();
header('Location: http://www.example.com');
exit;

如果标题给您带来困难,您可以使用以下替代(元)方法:

如果您目前有
die(“您现在已登录…
do:

echo "You are not logged in. You will be redirected in 5 seconds...";
echo "<meta http-equiv=Refresh content=5;url=http://www.yoursite.com/members.php>";

有几种方法可以做到这一点。其中一种可能会给您带来麻烦,因为您正在使用会话,并且输出的内容超出了它应该到达的位置。
ob\u clean
?此外,您的代码将无法运行。您缺少一个撇号。我在尝试使用该代码时遇到此错误:警告:无法修改标头信息-标头已由发送(输出开始于/home/as1609/public_html/mysite/header.php:3)在/home/as1609/public_html/mysite/login.php的第32行,当我尝试使用该代码时,我发现这个错误:警告:无法修改头信息-头已经由发送(输出开始于/home/as1609/public_html/mysite/header.php:3)正如我指出的,在第32行的/home/as1609/public_html/mysite/login.php中,在发送此头文件之前,您需要确保没有其他输出,甚至连“空格”都没有"。您需要将第3行上的
echo
移到其他地方开始。@Fred ii-您认为代码是正确的吗?如果是,您需要调试。虽然这里不是为了完全保护和简化OP的代码,但给出的答案应该向他们指出正确的解决方案,并提供相关信息来支持。如果有什么问题,您想说什么删除此行:echo“请输入您的详细信息以登录”但我仍然得到了错误。我不确定是否需要删除其他内容以避免错误。@Fred ii-是的,当然,分数最终毫无意义-一个毫无价值的“虚拟”奖励。我积极使用汇编程序编程,因为我非常喜欢它的功能和速度。对我来说,任何使用逻辑的东西都是好的。我还坚持这样的观点,在我拥有的少数人中众所周知,加拿大人是世界上最善良的人之一。你也不例外。干杯。不过不要再劫持这个帖子了。。。
echo "You are not logged in. You will be redirected in 5 seconds...";
echo "<meta http-equiv=Refresh content=5;url=http://www.yoursite.com/members.php>";
<?php
ob_start();
// login.php
include_once 'header.php';
echo "<div class='main'><h3>Please enter your details to log in</h3>";
$error = $user = $pass = "";

...

$_SESSION['user'] = $user;
            $_SESSION['pass'] = $pass;
            // die("You are now logged in....

    // keep the http:// and replace with your website address
    header('Location: http://www.example.com/members.php');
    exit;

...