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)
条件将永远不会为真。