带有会话的PHP登录系统无法登录

时间:2016-03-10 11:32:39

标签: php session login

我正在使用登录系统。但是,我无法登录。我已经设置了数据库表。

login.php

 <?php
 session_start();

 if(isset($_POST['login'])) {
    include_once("db.php");
    $username = strip_tags($_POST['username']);
    $password = strip_tags($_POST['password']);

    $username = stripslashes($username);
    $password = stripslashes($password);

    $username = mysqli_real_escape_string($db, $username);
    $password = mysqli_real_escape_string($db, $password);

    $password = md5($password);

    $sql = "SELECT * FROM users WHERE username='$username' LIMIT 1";
    $query = mysqli_query($db, $sql);
    $row = mysqli_fetch_array($query);
    $id = $row['id'];
    $db_password = $row['password'];

    if($password == $db_password) {
        $_SESSION['username'] = $username;
        $_SESSION['id'] = $id;
        header("Location: av_pocetna.html");
    } else {
        echo "You didn't enter the correct details!";
    }

}
 ?>
<html>
  <head>
<title>Login</title>
</head>
 <body>
<h1 style="font-family: Tahoma;">Login</h1>
<form action="login.php" method="post" enctype="multipart/form-data">
    <input placeholder="Username" name="username" type="text"  autofocus>
    <input placeholder="Password" name="password" type="password">
    <input name="login" type="submit" value="Login">
  </form>
 </body>
 </html>

这是db.php

<? php

$db=mysqli_connect('192.168.1.113:8080','root','hidden','av');
?>

用户表连接 ID 用户名 密码

修改编辑  复制副本  删除删除 1 一个 0cc175b9c0f1b6a831c399e269772661

3 个答案:

答案 0 :(得分:0)

哦好的。 让我们一次尝试调试一步。 在db.php文件中,使用:

   // Connecting to mysql database
    $db = new mysqli('192.168.1.113:8080','root','hidden','av');

    // Check for database connection error
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

如果您收到任何错误,请将其转储到此处进行调试。

更新

    // Connecting to mysql database
    $db = new mysqli('localhost','root','hidden','av');

    // Check for database connection error
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

答案 1 :(得分:0)

你的form code看起来正确。只需在login.php代码下方进行更改: -

 <?php
    session_start();
    error_reporting(E_ALL);
    ini_set('display_errors',1);
    $conn = mysqli_connect('host-name','user-name','password','database-name');
    if($conn){
        if(isset($_POST['username']) && isset($_POST['password'])) {
            $username = $_POST['username'];
            $password = $_POST['password'];
            $username = mysqli_real_escape_string($db, $username);
            $password = mysqli_real_escape_string($db, $password);
            $password = md5($password);
            $sql = "SELECT * FROM users WHERE username='$username' LIMIT 1";
            $query = mysqli_query($db, $sql);
            if($query){
                $row = mysqli_fetch_array($query);
                $id = $row['id'];
                $db_password = $row['password'];
                if($password == $db_password) {
                    $_SESSION['username'] = $username;
                    $_SESSION['id'] = $id;
                    header("Location: av_pocetna.html");
                } else {
                    echo "You didn't enter the correct details!";
                }
            }else{
                echo "query not executed because".mysqli_error($conn);
            }
        }
    }else{
        echo "db connection error".mysqli_connect_error();
    }
 ?>

注意: - 我在此处仅添加了连接代码,因此请在此处更改凭据。并使用相同的代码检查工作与否?

此外,如果您正在使用本地工作人员,请将ip address更改为localhost并进行检查。如果它可以使用,那么它也适用于include("db.php")。我的意思是说试试$conn = mysqli_connect('localhost','root','aleksandar','av');

答案 2 :(得分:0)

这是工作login.php

 public ActionResult HolidayIndex()
{
    IEnumerable<HOLIDAY_MASTER> hdms = null;
    hdms = db.HOLIDAY_MASTER.ToList()
        .Where(h => 
            !(h.HOLIDAY_NAME == "Sunday" || h.HOLIDAY_NAME == "Saturday" )
            && h.HOLIDAY_DEL.Equals(0)
            && h.REGION_ID.Equals(RegionID)
        )
    .OrderBy(h => h.DOH);
    return PartialView("HolidayIndex", hdms);           
}