【发布时间】:2018-03-30 21:24:11
【问题描述】:
如果这个问题看起来很愚蠢,我真的很抱歉。但是几天来我一直在尝试检查我在数据库中的username 和password 是否与我在html 页面中输入的内容相匹配...这是我的登录表单...
<form method="POST" action="Dashboard/Dashboard.php">
<div class="form-group md-form">
<!--<input type="email" class="form-control" id="email" value="" placeholder="Enter email address">-->
<i class="fa fa-user prefix grey-text"></i>
<input name="username" id="username" type="text" class="form-control" required>
<label for="defaultForm-email">Username</label>
</div>
<div class="form-group md-form">
<!--<input type="password" class="form-control" id="password" value="" placeholder="Enter password">-->
<i class="fa fa-lock prefix grey-text"></i>
<input name="password" id="password" type="password" class="form-control" required>
<label for="defaultForm-pass">Your password</label>
</div>
<div class="text-center">
<button type="reset" class="btn btn-amber btn-sm"><strong>Reset</strong></button>
<input type="submit" name="submit" id="submit" class="btn btn-green btn-sm" value="Sign in">
</div>
</form>
这是我在Dashboard.php中使用的代码(php)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$databaseName = "test";
$conn = mysqli_connect($servername, $username, $password, $databaseName);
$un = $_POST['username'];
$pw = $_POST['password'];
print $pass . "_" . $email;
$query = mysqli_query($conn, "SELECT log_username,log_password FROM login WHERE log_username='$un' AND log_password='$pw'");
$result_can = mysqli_query($conn, $query);
while ($row = mysql_fetch_assoc($result_can)) {
$check_username = $row['username'];
$check_password = $row['password'];
}
if ($un == $check_username && $pw == $check_password) {
$message = "ok";
echo "<script type='text/javascript'>alert('$message');</script>";
header("Location: Doctors.php");
} else {
$message = "No";
echo "<script type='text/javascript'>alert('$message');</script>";
header("Location: Doctors.php");
}
?>
我真的尝试了数千次,但无法弄清楚我哪里出错了......谁能帮帮我?
我知道我的代码对 SQL 注入开放,但我不关心它,因为这是我需要向朋友展示的示例所以忽略那部分。
【问题讨论】:
-
"我知道我的代码对 SQL 注入开放,但我不在乎"。曾经写过的一些最危险的词:)
-
为什么要向你的朋友展示一个没人应该做的事情的例子?从一开始就向他们展示如何正确地做到这一点。此外,您还没有真正说明过您实际上遇到了什么问题。
-
很高兴知道:您在数据库上将密码保存为纯文本,非常糟糕,但您并不关心。并且比较它们也是非常错误的。
-
不要混合不同的数据库接口。当你使用
mysqli时,你不能使用mysql_fetch_assoc。 -
您还尝试从数据库中获取
log_username和log_password;但在 $row 数组中将它们引用为username和password
标签: php mysql passwords password-hash php-password-hash