Php 这个代码有什么问题?我需要它进入我的数据库,然后允许我使用参数登录

Php 这个代码有什么问题?我需要它进入我的数据库,然后允许我使用参数登录,php,html,login,Php,Html,Login,我不明白这段代码有什么问题,我遵循了一个旧的教程,它可能有点过时,所以我不确定是什么问题。数据库的所有名称都是正确的,函数应该很好,我已经看了代码一段时间了,看不出有什么错 <?php error_reporting (E_ALL ^ E_NOTICE); session_start(); ?> <!DOCTYPE html> <head> </head> <body> <?php $form ="<

我不明白这段代码有什么问题,我遵循了一个旧的教程,它可能有点过时,所以我不确定是什么问题。数据库的所有名称都是正确的,函数应该很好,我已经看了代码一段时间了,看不出有什么错

<?php
error_reporting (E_ALL ^ E_NOTICE);
session_start();
?>
<!DOCTYPE html>
<head>
</head>
<body>
    <?php
        $form ="<form action='./login.php' method='post'>
        <table>
        <tr>
            <td>Username:</td>
            <td><input type='text' name='user' /></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type='password' name='password' /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type='submit' name='loginbtn' value='Login'/></td>
        </tr>
        </table>
        </form>";

        if ($_POST['loginbtn']) {

            $user = $_POST['user'];
            if ($user) {

                if ($password) {

                    require("connect.php");
                    $password = md5(md5("fghxjks".$password."HGJDjbCKGC"));
                    $query = mysql_query("SELECT * FROM userlogins WHERE username='$user'");
                    $numrows = mysql_num_rows($query);
                    if ($numrows == 1) {

                        $row = msql_fetch_assoc($query);
                        $dbuser = $row['username'];
                        $dbpass = $row['password'];

                        if ($password == $dbpass) {
                            $_SESSION['userid'] = $dbid;
                            $_SESSION['username'] = $dbuser;
                            echo "You have been logged in as <b>$dbuser</b>.";
                        }
                        else {
                            echo "The password you entered is not correct.";
                        }
                    }
                    else {
                        echo "The username you entered was not found. $form";
                    }
                   mysql_close();
                }
                else {
                    echo "You must enter your password. $form";
                }
            }
            else {
                echo "You must enter your username. $form";
           }
        }
        else {
            echo $form;
        }
    ?>
</body>

未设置
$password
变量。您应该添加:

$password = $_POST['password'];
如果($password)

另外,
$user
来自用户输入(
$\u POST['user']
)。切勿将用户输入直接放入
mysql\u查询中,因为这会使查询容易受到SQL注入的影响。在这种情况下,攻击者将无能为力,因为
mysql\u query
不支持多个查询。但您应始终在用户输入时使用:

$query = mysql_query('SELECT * FROM userlogins WHERE username=\''.mysql_real_escape_string($user).'\'');

错误是什么?如果不告诉我们出了什么问题,我们就帮不了你!它意味着做什么?它在做什么而不是你所期望的?如果您将整个代码准确地显示出来,可能会有所帮助,错误是什么?;)(错误是什么?)对不起,我想让它从我的数据库中获取用户名和密码,这样它就可以让你登录,只要它符合正确的信息,我建议将会话放在标题中,就像在你的页面底部一样,在你登录之前所有内容都会加载一样,因此,上面的代码不会看到会话变量已弃用:mysql_connect():mysql扩展已弃用,将来将被删除:在C:\Local\connect.php第2行使用mysqli或PDO您的部分对错,他使用以下命令设置变量:$password=md5(md5(“fghxjks”。$password。“hgjdbckgc”);但他并没有使用密码post@NoLiver92您所引用的代码将永远不会被调用,这正是因为未设置
$password
,并且
if($password)
条件将永远不会为真。