Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我转到Localhost并尝试用户名和密码时,它会告诉我这是一个错误吗?_Php_Security_Passwords_Md5 - Fatal编程技术网

Php 当我转到Localhost并尝试用户名和密码时,它会告诉我这是一个错误吗?

Php 当我转到Localhost并尝试用户名和密码时,它会告诉我这是一个错误吗?,php,security,passwords,md5,Php,Security,Passwords,Md5,当我转到Localhost并尝试用户名和密码时,它会告诉我这是一个错误吗?为什么?输入的用户名/密码或两者与数据库表my_db不匹配 原因: Localhost表示数据库在本地得到仲裁。因此,在my_db表下的本地数据库中,不存在具有给定用户名和密码的用户。 可能是远程数据库服务器中的数据有效 解决方案: 1.从远程数据库获取转储并放入本地主机,以便本地数据库和远程数据库都是副本 2.对于简单的解决方案,只需在my_db表中插入所需的详细信息 希望有帮助看起来输入的用户名/密码与数据库表my_d

当我转到Localhost并尝试用户名和密码时,它会告诉我这是一个错误吗?为什么?

输入的用户名/密码或两者与数据库表my_db不匹配

原因: Localhost表示数据库在本地得到仲裁。因此,在my_db表下的本地数据库中,不存在具有给定用户名和密码的用户。 可能是远程数据库服务器中的数据有效

解决方案: 1.从远程数据库获取转储并放入本地主机,以便本地数据库和远程数据库都是副本 2.对于简单的解决方案,只需在my_db表中插入所需的详细信息


希望有帮助

看起来输入的用户名/密码与数据库表my_db不匹配

原因: Localhost表示数据库在本地得到仲裁。因此,在my_db表下的本地数据库中,不存在具有给定用户名和密码的用户。 可能是远程数据库服务器中的数据有效

解决方案: 1.从远程数据库获取转储并放入本地主机,以便本地数据库和远程数据库都是副本 2.对于简单的解决方案,只需在my_db表中插入所需的详细信息

希望有助于使用密码\u散列

注册时使用
password\u hash()
散列密码并将其存储在数据库中,登录时使用
password\u 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>";
}
 }
?>
1)使用密码\u散列

注册时使用
password\u hash()
散列密码并将其存储在数据库中,登录时使用
password\u 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>";
}
 }
?>

您的表名和数据库名是my_db吗?这是正确的吗?那么,您是如何将密码保存到db中的?(顺便说一句,你不应该md5它。使用密码散列)使用
mysqli\u error
来找出哪里出了问题。对!@JYoThI…@Jeff密码:ABC123您的表名和数据库名是my_db?这是正确的吗?那么,您是如何将密码保存到db中的?(顺便说一句,你不应该md5它。使用密码散列)使用
mysqli\u error
来找出哪里出了问题。对!@JYoThI…@Jeff password:abc123在注册页面使用
password\u hash()
,在登录页面使用
password\u verify()
。。。请确保您的密码散列长度约为60个字符,或者更好地为255个字符。请在注册页面上使用
密码散列()
,并在登录页面上使用
密码验证()
。。。确保您的密码哈希长度约为60个字符,或更好的255个字符