为了账号安全,请及时绑定邮箱和手机立即绑定

使用准备好的语句在php登录表单中出错

使用准备好的语句在php登录表单中出错

PHP
慕的地10843 2021-05-02 04:43:57
我是编程新手,这里我正在创建简单的注册和登录表单,我的注册表单可以正常运行,它可以正确地在数据库中注册用户提供的输入,但是当我在登录表单中使用相同的用户名和密码时,它不起作用,它没有登录用户,我正在使用准备好的语句,请您提供任何帮助,如果我犯了一些明显的错误,请原谅我。谢谢....这是我的HTML代码<!DOCTYPE html><html><head>    <title>Login page</title></head><body>    <form method="POST" action="register.php">        <div class="container">            <label>Username :</label>            <input type="text" name="username" placeholder="Username"><br><br>            <label>Password :</label>            <input type="Password" name="password" placeholder="Password"><br><br>            <button type="sumbit" value="sumbit" name="sumbit">Register</button>        </div>    </form>    <br><br>    <form method="POST" action="login.php">        <div class="container">            <label>Username :</label>            <input type="text" name="username" placeholder="Username"><br><br>            <label>Password :</label>            <input type="Password" name="password" placeholder="Password"><br><br>            <button type="sumbit" value="sumbit" name="login">Login</button>        </div>    </form></body>这是我的登录代码:<?phpinclude "register.php";session_start();$username = $_POST['username'];$password = $_POST['password'];$sql = "SELECT * FROM users where username ='$username' && password='$password'";$stmt = $conn->prepare($sql);$stmt->bindParam(':username',$username);$stmt->bindParam(':password',$password);$stmt->execute();$stmt->bind_result($username,$password);$stmt->store_result();$row = $stmt->fetch(PDO::FETCH_ASSOC);if($stmt->row ==1){    $_SESSION['login'] = $username;    header("location: home.php");}else{    echo "Username and password is incorrect";}?>
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您正在绑定参数,并且参数不在查询字符串中。

改变

SELECT * FROM users where username ='$username' && password='$password'

SELECT * FROM users where username =:username && password=:password


查看完整回答
反对 回复 2021-05-07
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您在sqli查询和mysqli的混合方法中弄错了


    <?php

include "register.php";

session_start();

$username = $_POST['username'];

$password = $_POST['password'];

$sql = "SELECT * FROM users where username =':username' && password=':password'";

$stmt = $conn->prepare($sql); $stmt->bindParam(':username',$username); $stmt->bindParam(':password',$password); $stmt->execute();

$row = $stmt->fetch(PDO::FETCH_ASSOC);

if($row){

    $_SESSION['login'] = $username;

    header("location: home.php");

}else{

    echo "Username and password is incorrect";

} ?>

就是这样。


查看完整回答
反对 回复 2021-05-07
  • 2 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信