php - 登录表单小错误

标签 php mysql

我正在尝试制作一个小型登录表单。用户必须输入用户名和密码,如果用户名和密码与数据库中的用户名和密码匹配,则应进入主页。

到目前为止我所拥有的:

<html>
<body>
<?php

    $username = $_POST['username'];
    $password = $_POST['password'];

    $tUsers_Select = "SELECT ID, username, password FROM users WHERE username = ".$username;
    $tUsers_Select_Query = mysqli_query($dbConnect, $tUsers_Select);

    $row = mysqli_fetch_array($tUsers_Select_Query);

    $ID = $row['ID'];
    $dbusername = $row['username'];
    $dbpassword = $row['password'];
    $dbSecurePassword = md5($dbpassword);

    if(isset($username) AND isset($password)) {

        if ($username == $dbusername AND $password == $dbpassword) {
            echo "Username and password match.";
        }   else {
            echo "Username and password do not match.";
        }
    }   else {
        echo "Username and password are not set";
    }


?>

<form action="index.php" method="post">
    <label for="username">Username</label>
    <input type="text" name="username"><br />
    <label for="password">Password</label>
    <input type="password" name="password"><br /><br />

    <button type="submit" name="submit">Login</button>
</form>

</body>

我遇到的错误:

enter image description here

如果您需要更多详细信息,请评论。

最佳答案

首次加载页面时未设置用户名和密码。

更改用户名/密码分配以使用以下语法:

$username = isset($_POST['username']) ? $_POST['username'] : false;
$password = isset($_POST['password']) ? $_POST['password'] : false;

然后:

if (!$username or !$password) {
    //don't run the rest of the PHP login code because nothing was provided
}

关于php - 登录表单小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664402/

相关文章:

php - 检查单选按钮是否被选中并更新另一个字段

php - 基于字符串数组PHP和MySQL过滤记录

php - mySQl,查询 : How to customize selection from database?

mysql - 当其他事务失败时,Spring Boot事务停止自动提交或回滚

php - 如何使用 mySQL 内连接 3 个表?

javascript - 如何在完整日历事件开始时有两个 php echo

PHP:相同的 mysql_fetch_array 语句在一个地方起作用,但在另一处不起作用

php - 表格单元格呈白色

MySQL优先合并两个表

php - Foreach $item 不显示