【发布时间】:2019-03-14 17:40:08
【问题描述】:
我正在尝试使用 php 和 mysql 制作登录页面,但它不想工作,我是 php 新手。 我想要的是当输入正确的用户和通行证时,显示/回显该用户的级别
mysql:image
db.php:
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "maindb";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
# open database like before.
$web_username=$_POST['username'];
if ($web_username=="") die(); # one bit of error handling.
$web_password=$_POST['password'];
$sql = "SELECT id, level FROM users WHERE name = ? AND password = ?";
$stmt = $conn->prepare ($sql ); # needs error check
$stmt->bind_param("ss", $web_username, $web_password);
$stmt->execute(); # needs error check
if ($stmt->num_rows==1) {
$stmt->bind_result($id, $level);
$stmt->fetch();
printf ("id is %s, level is %s\n", $id, $level);
}
?>
index.html:
<html>
<body>
<form method='post' action='db.php'>
Username: <input type='text' name='username' placeholder='username'><br>
Password: <input type='password' name='password' placeholder='password'><br>
<input type="submit" value="Submit" />
</form></body></html>
【问题讨论】:
-
你有什么错误吗? (用于在 php.ini 中启用之前检查错误日志)
-
您应该永远存储明文密码。使用
password_hash()和password_verify()安全地散列它们。 -
你可能是对的,但这是我第一次使用 php 和 sql,所以我想保持简单并有一些工作
-
不要在没有消息的情况下做
die() -
你需要描述它是如何不工作的。执行页面时php错误日志中是否有任何错误或屏幕上是否有任何错误,mysqli's error function的输出是什么等