php - MySQL和PHP登录用户名和密码检查

标签 php html mysql mysqli

因此,我一直遵循this youtube指南来使用PHP设置登录系统,当我进入身份验证部分时遇到了麻烦,在该部分中,用户名和密码针对数据库进行了检查。即使提交了数据库中正确的用户名和密码,login.php中的if语句也会回显“错误的用户名或密码!”。

dbh.php <=这连接到本地数据库

<?php
  $conn = mysqli_connect("localhost", "admin", "admin", "user_list");

  if(!$conn) {
    die("Connection failed");
  }
?>


sign_up.php <=获取用户帐户信息并将其输入数据库

<?php
  include 'dbh.php';

  $first = $_POST['first'];
  $last = $_POST['last'];
  $uid = $_POST['uid'];
  $pwd = $_POST['pwd'];

  $sql = "INSERT INTO user (first, last, uid, pwd)
          VALUES ('$first', '$last', '$uid', '$pwd')";
  $result = mysqli_query($conn, $sql);

  header("Location: login_page.html");
?>


login.php <=这需要用户输入并检查数据库中是否存在匹配对

<?php
  include 'dbh.php';

  $uid = $_POST['uid'];
  $pwd = $_POST['pwd'];

  $sql = "SELECT * FROM user WHERE uid='$uid' AND pwd='$pwd'";
  $result = mysqli_query($conn, $sql);

  if (!$row = mysqli_fetch_assoc($result)) {
    echo "Your username or password is incorrect!";
  } else {
    echo "You are logged in!";
  }

?>


login_page.html(并非完整页面,仅是登录/注册表单)

<div class="content">
        <form action="login.php">
            <input type="text" name="uid" placeholder="Username"><br>
            <input type="password" name="pwd" placeholder="Password"><br>
            <button type="submit">LOG IN</button>
            <br><br><br>
        </form>
    <form action="signup.php" method="POST">
      <input type="text" name="first" placeholder="Firstname"><br>
      <input type="text" name="last" placeholder="Lastname"><br>
      <input type="text" name="uid" placeholder="Username"><br>
      <input type="password" name="pwd" placeholder="Password"><br>
      <button type="submit">SIGN UP</button>
    </form>
  </div>

最佳答案

你可以这样这可能有效

<?php
  include 'dbh.php';

  $uid = $_POST['uid'];
  $pwd = $_POST['pwd'];

  $sql = "SELECT * FROM user WHERE uid='$uid' AND pwd='$pwd'";
  $result = mysqli_query($conn, $sql);

  if ($row = mysqli_fetch_assoc($result)) {
    echo "You are logged in!";

  } else {
    echo "Your username or password is incorrect!";
  }

?>


您可以删除此标志,它将起作用
要么
这也是一个解决方案

  if (mysqli_num_rows($result)) {
    echo "You are logged in!";

  } else {
    echo "Your username or password is incorrect!";
  }

关于php - MySQL和PHP登录用户名和密码检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41906373/

相关文章:

php - 图像是否已加载并保持隐藏状态,或者它们是否未加载到隐藏的 div 中?

php - 当基类位于单独的包含文件中时找不到扩展类

php - 使用多维 PHP 数组为 MySQL 数据库中的每个菜单项创建友好的 URLS

php - 使用方法访问类并实例化它们

html - 将鼠标悬停在文本上时的背景颜色宽度

javascript - 带百分比的虚线圆条

php - MySQL 表有 4,000,000 条记录?

html - 我想在我的 Angular login.Component.ts 中使用背景图片,但不显示

mysql - MySQL获取重复行

Mysql查询计算跳出率