首页 > 解决方案 > 如何连接 login.php 和数据库?

问题描述

我有登录页面和数据库,如果用户存在,登录页面将重定向到 index_user.php 但是在这种情况下,当我提交存在的用户时,它只显示该目录的空白页

http://localhost:8080/mbl1/web_mbl1/login.php?username=tes&password=tes&submit=submit

(登录表单在 index.php 中)

我试着用

header("location:index_user.php");

如下所示。这是我的索引文件:

    <div class="modal" id="mymodal" role="dialog">
        <div class="modal-dialog modal-sm">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title">Login</h4>
                    <button type="button" class="close" data-dismiss="modal">&times;</button>

                </div>
                <div class="modal-body">
                    <form action="login.php" method="POSTs">
                        <div class="form-group">
                            <input type="text" name="username" placeholder="Username" class="form-control">
                        </div>
                        <div class="form-group">
                            <input type="password" name="password" placeholder="Password" class="form-control">
                            <button type="submit" name="submit" value="submit">submit</button>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
    <div class="modal" id="mymodal2" role="dialog">
        <div class="modal-dialog modal-sm">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title">Register</h4>
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                </div>
                <div class="modal-body">
                    <form action="register.php" method="POST">
                        <div class="form-group">
                            <input type="text" name="username" placeholder="Username" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <input type="password" name="password" placeholder="Password" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <input type="phone" name="nohp" placeholder="Phone Number" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <input type="email" name="email" placeholder="Email" class="form-control" required>
                            <button type="submit" name="submit" value="submit">submit</button>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
</div>

这是我的 register.php

<?php
   $username=$_POST['username'];
   $password = $_POST['password'];
   $nohp=$_POST['nohp'];
   $email=$_POST['email'];

if( !empty($username)|| !empty($password)|| !empty($nohp )|| !empty($email)) {
   $host="localhost";
   $dbusername="root";
   $dbpassword="root";
   $dbname="mobile1";


   $conn=new mysqli($host,$dbusername,$dbpassword,$dbname);

   if ( mysqli_connect_error() ){
      die('Connect Error('.mysqli_connect_errno().')'.mysqli_connect_error());
   } else {
   $select="select email from register where email = ? limit 1 ";
   $insert="insert into register(username,password,nohp,email) values 
   (?,?,?,?)";


   $stmt=$conn->prepare($select);
   $stmt->bind_param("s",$email);
   $stmt->execute();
   $stmt->bind_result($email);
   $stmt->store_result();
   $rnum=$stmt->num_rows;

   if ($rnum==0){
       $stmt->close();
       $stmt=$conn->prepare($insert);
       $stmt->bind_param("ssis",$username,$password,$nohp,$email);
       $stmt->execute();
       echo "<script> alert('login work');
       window.location.href='index.php';
       </script>";
   } else {
       echo "<script> alert('the email already used');
       window.location.href='index.php';
       </script>";
}
   $stmt->close();
   $conn->close();
}
} else {
echo "All field are";
}

这是 login.php

<?php
   session_start();
   $username = $_POST['uname'];
   $password = $_POST['password'];

   $k = new PDO("mysql:host=localhost;dbname=mobile1", "root", "root");

   $sql = "SELECT * FROM register
   WHERE username = ?";

   $result = $k->prepare($sql);
   $result -> execute([$username]);

   if($row = $result->fetch()){
      if($password, $row['password'])){
         $_SESSION['username'] = $row['username'];
         header("location:index_user.php");
      } else {
         header('Location: login_wrong.php');
      }
  } else {
      header('Location: login_wrong.php');
  }

如果用户存在,用户将转到 index_user.php,如果不存在,将转到 index.php

标签: php

解决方案


表单方法必须POST不是POSTs

<form action="login.php" method="POST">

推荐阅读