Где поставить функцию MD5, чтобы она работала? - PullRequest
0 голосов
/ 10 февраля 2019

Мне нужно отправить хешированный пароль md5 в базу данных.

<?php
$username = filter_input(INPUT_POST, 'name');
$password = filter_input(INPUT_POST, 'password');
print_r($_POST['name']);
if (empty($username)){
    echo "Username should not be empty"; die();
}
if (empty($password)){
    echo "Password should not be empty"; die();
}
$host = "localhost"; 
$dbusername = "root";
$dbpassword = "";
$dbname = "db_account";

//create connection
$conn = new mysqli($host, $dbusername, $dbpassword, $dbname);

if (mysqli_connect_error()){
  die('Connect Error ('. mysqli_connect_error() .') '
    . mysqli_connect_error());
} else{
  $sql = "INSERT INTO t_account (name, pwd)
  values ('{$username}','MD5({$password})')";
  if ($conn->query($sql)){
    echo "Account was created successfully!";
  }
  else{
    echo "Error: ". $sql."<br>". $conn->error;
  }
  $conn->close();
}
?>

Когда я заполняю регистрационную форму паролем, например, 123456, он отправляет ее в базу данных, например, (MD5) 123456, но не в виде хешированного кода.

Также после успешной регистрации отображается только текст после @echo, можно перенаправить пользователя на другую страницу?

1 Ответ

0 голосов
/ 10 февраля 2019

Попробуйте использовать функцию PHP md5 ():

$password = md5(filter_input(INPUT_POST, 'password'));

Также ваше утверждение:

$sql = "INSERT INTO t_account (name, pwd)
values ('{$username}','{$password}')";

Я настоятельно рекомендую вам использовать подготовленные операторы.Не трудно учиться и время хорошо потрачено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...