PHP登录系统(使用会话)

时间:2017-03-02 08:34:05

标签: php session login

我使用PHP 7来开发关于开发网站的项目。我是PHP的新手,现在我遇到登录会话的问题,当我输入正确的用户名和密码时,它会显示消息"用户名或密码错误"并且无法登录。我不知道哪个部分出了问题。请帮我。我们将不胜感激。这是我的代码。

的login.php

<?php session_start(); ?>
<html>
<head>
    <style type="text/css">
        #login{
            width: 300px;
            border: 1px solid #c8c8c8;
            margin: 80px auto;
            text-align: center;
            font-family: calibri;
            background: #f1f1f1;
            border-radius: 4px;
            box-shadow: 0 0 6px gray;
        }

        #login h2{
            background: #222;
            margin: 2px;
            margin-bottom: 18px;
            color: #FFF;
            font-size: 18px;
            padding: 4px;
        }
    </style>
    <title></title>
</head>
<body>
    <div id="login">
        <form action="login_process.php" method="post">
            <h2>Login</h2>

            <?php
                if (!empty($_SESSION['error'])) 
                {
                     foreach ($_SESSION['error'] as $er) 
                     {
                        echo '<font color="red">'.$er.'</font><br />';
                     }
                     unset($_SESSION['error']);
                }
            ?>
            <b>Username : </b>
            <input type="text" name="unm">
            <br /><br />

            <b>Password : </b>
            <input type="password" name="pwd">
            <br /><br />

            <input type="submit" value="Sign In">
            <br /><br />
        </form>
    </div>
</body>
</html>

login_process.php

<?php session_start();

   if (!empty($_POST)) 
   {
        extract($_POST);
        $_SESSION['error']=array();

        if (empty($unm) || empty($pwd))
        {
             $_SESSION['error'][]="Please enter username or password";

             header("location:login.php");
        }
        else
        {
            include("include/config.php");

            $q ="SELECT * FROM admin
                 WHERE a_unm='$unm' AND a_pwd='$pwd'";

            $res=mysqli_query($q,$link);

            $row=mysqli_fetch_assoc($res);

            if (!empty($row))
            {
                $_SESSION['admin']['unm']=$row['a_unm'];
                $_SESSION['admin']['pwd']=$row['a_pwd'];
                $_SESSION['admin']['status']=true;

                header("location:index.php");
            }
            else
            {
                 $_SESSION['error'][]="Wrong Username or Password";
                 header("location:login.php");
            }
        }
   }
   else
   {
        header("location:login.php");
   }

?>

的config.php

<?php

    $link= mysqli_connect("localhost","root","");

    mysqli_select_db("course_registration_system",$link);

?>

数据库详细信息

enter image description here

1 个答案:

答案 0 :(得分:1)

我已修复您的问题:请尝试以下代码

<强> login_process.php

<?php session_start();

   if (!empty($_POST)) 
   {
        extract($_POST);
        $_SESSION['error']=array();

        if (empty($unm) || empty($pwd))
        {
             $_SESSION['error'][]="Please enter username or password";

             header("location:login.php");
        }
        else
        {
            include("include/config.php");

            $q ="SELECT * FROM admin WHERE a_unm='$unm' AND a_pwd='$pwd'";

            $res=mysqli_query($link,$q);

            $row=mysqli_fetch_assoc($res);

            if (!empty($row))
            {
                $_SESSION['admin']['unm']=$row['a_unm'];
                $_SESSION['admin']['pwd']=$row['a_pwd'];
                $_SESSION['admin']['status']=true;

                header("location:index.php");
            }
            else
            {
                 $_SESSION['error'][]="Wrong Username or Password";
                 header("location:login.php");
            }
        }
   }
   else
   {
        header("location:login.php");
   }

?>

<强>的config.php

<?php

    $link= mysqli_connect("localhost","root","","course_registration_system");

    //mysqli_select_db("course_registration_system",$link);

?>