Mysql
 sql >> база данни >  >> RDS >> Mysql

Получаване на грешка при използване на функцията mysqli_escape_string

Има твърде много неща, които не са наред с вашия код и ще бъде изключително трудно да се осигури решение, като поправите това, което имате сега.

Първо, MD5 вече не се счита за безопасен за съхранение на пароли.

Консултирайте се:

Освен това не използвате правилно подготвените изявления.

Както казах, mysqli_escape_string() функцията изисква връзка към базата данни да бъде предадена като първи параметър:

Направете си услуга и използвайте това, един от отговорите на ircmaxell https://stackoverflow.com/a/29778421/

Изтеглено от отговора му:

Просто използвайте библиотека. Сериозно. Те съществуват с причина.

  • PHP 5.5+:използвайте password_hash()
  • PHP 5.3.7+:използвайте password-compat (пакет за съвместимост за по-горе)
  • Всички останали:използвайте phpass

Не го правете сами. Ако създавате своя собствена сол, ГО ПРАВИШ ГРЕШНО . Трябва да използвате библиотека, която се справя с това вместо вас.

$dbh = new PDO(...);

$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$hash = password_hash($password, PASSWORD_DEFAULT);

$stmt = $dbh->prepare("insert into users set username=?, email=?, password=?");
$stmt->execute([$username, $email, $hash]);

И при влизане:

$sql = "SELECT * FROM users WHERE username = ?";
$stmt = $dbh->prepare($sql);
$result = $stmt->execute([$_POST['username']]);
$users = $result->fetchAll();
if (isset($users[0]) {
    if (password_verify($_POST['password'], $users[0]->password) {
        // valid login
    } else {
        // invalid password
    }
} else {
    // invalid username
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете стойност на колона като име на колона с условия в SQL таблица

  2. Как да експортирате и импортирате mysql база данни с нейните данни с помощта на php скрипт?

  3. Използвайте параметър във функцията, предадена на google.setOnLoadCallback();

  4. Как да извлечете n-тата дума и да преброите появата на думи в MySQL низ?

  5. MySQL заявка низ съдържа