php登录没有被重定向

时间:2014-08-17 17:48:18

标签: php redirect login

我希望有人可以帮助我。我试图在用户成功登录后将用户重定向回索引页面。我只能看到一个没有错误的白色空白屏幕。

感谢您的帮助

<?php 
include('includes/functions.php');

session_start();

if(isset($_POST['login'])) {
    if(isset($_POST['username'])) {
        if(isset($_POST['password'])) {
            $username = $_POST['username'];
            $query = mysqli_query($link,"SELECT * FROM users_cust WHERE username = $username") or die(mysql_error());
            $user = mysql_fetch_array($query);

            if(md5($_POST['password']) == $user['password']) {
                echo("Login Successful!");
                $_SESSION['user'] = $user['username'];
                header("Location:/index.php") or die(mysql_error());
        } else {
            echo("Please check your login details");
            include('login.php');
        }
        } else {
            echo("Please check your password");
            include('login.php');
        }
    } else {
        echo("Please check your username");
        include('login.php');
    }
} else {
    echo("Please check that you filled out the login form");
    include('login.php');
}

?>

和我的主要登录页面一样

<?php
session_start();
if(isset($_SESSION['user'])){
header("Location:index.php");
} else {?>

<html>

<head>
    <title> Login Area
    </title>
</head>

<body>

<form action="dologin.php" method="post">
<label for="username">Username:</label>
<input type="text" name="username">
<label for="password">Password:</label>
<input type="password" name="password">
<input type="submit" name="login" value="submit">

</form>

</body>

</html>

<?php } ?>

5 个答案:

答案 0 :(得分:2)

您没有名为'user'的会话,因此此会话将不断返回任何值,我相信它需要更新到此...

if(isset($_SESSION['username'])){

修改

或者,您可以创建一个名为“LoggedIN”的新会话,在第一页的代码中添加这段代码..

$_SESSION['LoggedIN'] = true;

哪会低于您之前的会话

然后在第二页上,您可以简单地说:

if (isset($_SESSION['LoggedIN']) && $_SESSION['LoggedIN'] == true) {
    header("Location:index.php");
}

答案 1 :(得分:0)

在您的第一页上,您有$ _SESSION ['用户名'],而在另一页上是$ _SESSION ['user']。

决定使用其中一个,它应该可以工作。

答案 2 :(得分:0)

只需尝试标题(“位置:index.php”);

而不是header(“Location:/index.php”)或die(mysql_error());出口();

在第二页上检查$ _SESSION ['username']而不是$ _SESSION ['user']

答案 3 :(得分:0)

我在第一页中没有看到$_SESSION['user'],我认为您需要将其更改为$_SESSION['username'],这应该会很好!

作为旁注,我一直认为使用javascript进行验证是最好的!

答案 4 :(得分:-1)

$query = mysqli_query($link,"SELECT * FROM users_cust WHERE username = $username") or die(mysql_error());

查询部分应该是这样的:

...WHERE username = '$username'"