使用header()将用户重定向到另一个页面

时间:2015-05-08 06:18:46

标签: php session header

我到处寻找并尝试了所有的解决方案,但它仍然没有让我到任何地方。这是我的代码:

<?php
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))

{


  header('Location: /public_html/index.php');
  exit;

}
elseif(!empty($_POST['username']) && !empty($_POST['password']))
{
    $username = mysql_real_escape_string($_POST['username']);
    $password = md5(mysql_real_escape_string($_POST['password']));

    $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");

    if(mysql_num_rows($checklogin) == 1)
    {
        $row = mysql_fetch_array($checklogin);
        $email = $row['EmailAddress'];

        $_SESSION['Username'] = $username;
        $_SESSION['EmailAddress'] = $email;
        $_SESSION['LoggedIn'] = 1;

        header('Location: /public_html/index.php');
        exit;
    }
    else
    {
        echo "<h1>Error</h1>";
        echo "<p>Sorry, your account could not be found. Please <a href=\"index.php\">click here to try again</a>.</p>";
    }
}

    ?>

当我将其上传到我的服务器并登录时,它会将我带到一个空白的php页面。这段代码我做错了什么?我尝试使用“而不是”。我正在尝试将用户重定向到文件夹之外的页面,因此是“/ public_html /”。任何帮助都将非常感谢。

2 个答案:

答案 0 :(得分:0)

如果在文件夹之外,则使用

header("Location:../public_html/index.php");

答案 1 :(得分:0)

使用/启动您的网址,然后使用文件夹名称,您需要转到顶部/根目录,然后使用您指定的文件夹名称。

例如: 前往/public_html意味着您重定向到http://www.example.com/public_html我认为您的情况不存在

要解决此问题,请执行以下操作: 添加一个双点:..

获取../public_html意味着您正在从http://www.example.com/some_project/some_folder/重定向到http://www.example.com/some_project/public_html/(例如)。

参考Vicky的回答,

header("Location:../public_html/index.php");
exit();

并且不要忘记最后添加exit();

编辑:请停止使用古老的PHP-MySQL。为了您自己的安全,您可以使用更好的替代方案: