与';simple';登录/注销PHP脚本


Days stuck with a 'simple' login / logout PHP script

我有一个非常简单的登录/注销脚本,用于这个小的私人"利基"网站,所以它不需要太多安全性。

session_start();
// Array with users and passwords
$lgns = array(
'firstuser' => '5d0a158df212de401a9509a88a8d9f96b060f6c5',
'seconduser' => 'f8a913721596fffbf18a4777e6f163316154e6e5',
'thirduser' => 'f8a913721596fffbf18a4777e6f163316154e6e5',
);
$user = isset($_POST['username']) ? $_POST['username'] : '';
$passu = isset($_POST['password']) ? $_POST['password'] : '';
$pass = sha1($passu);
// Check if credentials are valid
// If not...
if( !isset($lgns[$user]) or $lgns[$user] != $pass )
{
    // Check if session is valid
    // If not...
    if ( !(isset($_SESSION['user']) && $_SESSION['user'] != '') )
    {
        echo "Wrong creds, no session; redirecting...";
    }
    else
   {
        // If credentials are not valid but there IS session
        echo "Wrong creds, but there IS session, so stay.";
   }
}
// If credentials are valid, set session.
else
{
   echo "Correct credentials";
    $sessionUser = $_POST['username'];
    $_SESSION["user"] = $sessionUser;
}

这是一个单独的php文件中的注销脚本:

session_start();
unset( $_SESSION["user"] );
session_destroy(); 
header("Location: ../index.php");

问题是:无论我尝试什么,我都会得到"错误的信誉,但有会话,所以留下来。"的信息。我不知道我是没有正确检查会话,还是没有正确关闭会话。

我已经为此寻找和挣扎了好几天,我开始觉得自己很愚蠢。我以前做过这个工作!所以我不得不问。提前谢谢。

只要看看下面给出的代码,我希望它能对你有所帮助!!

<html>
    <head>
    </head>
        <title>Quiz</title>
            <body>
                <center>Log In Page</center>
                <form action="" method='POST'>
                Email ID : -<input name="email" type="text"><br/><br/>
                Password : -&nbsp; <input name="password" type="text"><br/>
                <input type='submit' value="Log In" name="login">
                </form>
<?php
    $con = mysqli_connect("localhost","root","","Database_name");
    if(isset($_POST['login'])){
    $login=mysqli_real_escape_string($con,$_POST['email']);
    $pass=mysqli_real_escape_string($con,$_POST['password']);
    $conv_md_pass=md5($pass);
    echo "$conv_md_pass";
    $select_user="SELECT * FROM mst_user where email='".$login."' AND pass='".$conv_md_pass."'";
    $run_user=mysqli_query($con,$select_user);
    $check_user=mysqli_num_rows($run_user);
    echo "/$check_user";
    if($check_user>0)
    {
        echo "Successfully logged in";

    }
    else
    {
        echo "Wrong username and password";
    }
}
?>
</body>
</html>

签出

<?php
session_start();
session_destroy();
header("Location: login.php");
?>