当我转到 Localhost 并尝试输入用户名和密码时,它告诉我这是一个错误?
When I go to Localhost and try the username and the password it tells me that is an error?
当我转到 Localhost 并尝试输入用户名和密码时,它告诉我这是一个错误?为什么?
看起来输入 username/password 或两者都与数据库不匹配 table my_db.
原因:
Localhost 表示数据库在本地被引用。因此,在 my_db table 下的本地数据库中,不存在具有给定用户名和密码的用户。
可能是数据在远程数据库服务器中有效。
解决方案:
1. 从远程数据库中获取转储并放入您的本地主机,以便您的本地数据库和远程数据库是副本
2. 对于简单的解决方案,只需在 my_db table.
中插入所需的详细信息
希望对您有所帮助
1) 使用 password_hash docs
注册时使用 password_hash()
对密码进行哈希处理并将其存储在数据库中,登录时使用 password_verify()
验证密码,如下所示。
2) 用户准备语句以避免 sql 注入
<?php
session_start();
if(isset($_SESSION["user_id"])){
header("location: /web/home.php");
}
if(isset($_POST["s"])){
$username = $_POST["un"];
$password = $_POST["ps"];
$conn = mysqli_connect("localhost","root","","my_db") or die("Connection failed: " . mysqli_connect_error());
$stmt = $conn->prepare("SELECT * FROM table_name WHERE username=?");
$stmt->bind_param('s',$username);
$stmt->execute();
$get_result =$stmt->get_result();
$row_count= $get_result->num_rows;
if($row_count>0)
{
$record = $get_result->fetch_assoc();
if(password_verify($password,$record['password']))
{
$_SESSION["user_id"]= $record["user_id"];
header("location: /web/home.php");
}
else
{
echo "<h3 style = 'color:red'>Error in username or password</h3>";
}
}else{
echo "<h3 style = 'color:red'>Error in username or password</h3>";
}
}
?>
当我转到 Localhost 并尝试输入用户名和密码时,它告诉我这是一个错误?为什么?
看起来输入 username/password 或两者都与数据库不匹配 table my_db.
原因: Localhost 表示数据库在本地被引用。因此,在 my_db table 下的本地数据库中,不存在具有给定用户名和密码的用户。 可能是数据在远程数据库服务器中有效。
解决方案: 1. 从远程数据库中获取转储并放入您的本地主机,以便您的本地数据库和远程数据库是副本 2. 对于简单的解决方案,只需在 my_db table.
中插入所需的详细信息希望对您有所帮助
1) 使用 password_hash docs
注册时使用 password_hash()
对密码进行哈希处理并将其存储在数据库中,登录时使用 password_verify()
验证密码,如下所示。
2) 用户准备语句以避免 sql 注入
<?php
session_start();
if(isset($_SESSION["user_id"])){
header("location: /web/home.php");
}
if(isset($_POST["s"])){
$username = $_POST["un"];
$password = $_POST["ps"];
$conn = mysqli_connect("localhost","root","","my_db") or die("Connection failed: " . mysqli_connect_error());
$stmt = $conn->prepare("SELECT * FROM table_name WHERE username=?");
$stmt->bind_param('s',$username);
$stmt->execute();
$get_result =$stmt->get_result();
$row_count= $get_result->num_rows;
if($row_count>0)
{
$record = $get_result->fetch_assoc();
if(password_verify($password,$record['password']))
{
$_SESSION["user_id"]= $record["user_id"];
header("location: /web/home.php");
}
else
{
echo "<h3 style = 'color:red'>Error in username or password</h3>";
}
}else{
echo "<h3 style = 'color:red'>Error in username or password</h3>";
}
}
?>