$password = $_POST['password'];
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hash)) {
$_SESSION['username'] = $username;
$fmsg = 'Вы вошли под пользователем';
header('Location: index.html');
} $hash = '$2y$10$JwKVTFX73osL3hu7zeGjO.yvHFAsCcSCWzhVFN//.0mAkfGo.9f1y';
if (password_verify('123', $hash)) {
$_SESSION['username'] = $username;
$fmsg = 'Вы вошли под пользователем';
header('Location: index.html');
} else
// регистрация
получаем логин
получаем пароль
хешируем пароль
записываем пароль и логин в базу данных
//вход
получаем логин
получаем пароль
если в базе данных есть такой логин:
получаем записаный хеш пароля этого логина
если хеш полученого пароля совпадает с хешем в базе данных:
// ..ты вошёл или типо того
зачем мне отдельное поле под хеш,Отдельное не нужно, смысл не в том что поле под хэш нужно, а в том что ОКРЫТЫЙ пароль хранить нельзя.
если его можно зашифровать и записать в поле с паролемНичего шифровать не нужно, нужно ХЕШИРОВАТЬ, это 2 абсолютно разные вещи.
<?php
$link = mysqli_connect("localhost","root","","sergozar_db");
if($link == false){
echo "Помилка: Неможливо під'єднатися до MySQL".mysqli_connect_error();
}
else{
mysqli_set_charset($link,"utf8mb4");
if(isset($_POST["username"]) && isset($_POST["password"])){
if($_POST["username"] == "" || $_POST["username"] == " "){
echo "Введіть ім'я!";
}
elseif ($_POST["password"] == "" || $_POST["password"] == " ") {
echo "Введіть пароль!";
}
else{
$nam = $_POST["username"];
$pass = $_POST["password"];
$query1 = "SELECT * FROM `chat_reg` WHERE UName='$nam'";
$read = mysqli_query($link,$query1);
$row = mysqli_fetch_array($read);
$r = password_verify($pass, $row["UPassword"]);
if($r == true){
setcookie('username4', $nam,time()+(86400*30),"/");
}
else{
echo "Користувача не знайдено або не вірний пароль.";
}
}
}
}
?>
if (password_verify($password, $hash)) {спросите у Бога
$hash = password_hash('12345', PASSWORD_DEFAULT);
if (password_verify('12345', $hash)) {
<?php
session_start();
require('connect.php');
if (isset($_POST['username']) and isset ($_POST['password'])){
$hash = password_hash($password, PASSWORD_DEFAULT);
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$role = $_POST['role'];
$query = 'INSERT INTO users SET username="'.$username.'", email="'.$email.'", password="'.password_hash($password, PASSWORD_DEFAULT).'", role="user"';
$result = mysqli_query($connection, $query);
if ($result){
header('Location: index.html');
$smsg = "Регистрация прошла успешно";
} else {
$fsmsg = "Ошибка";
}
} Я, при регистрации:
1) Генерирую хеш пароля,
2) обрабатываю другие поля,
3) все это записываю в базу,
таким образом у меня есть некоторая информация, идентифицирующая пользователя.
При авторизации я должен:
1) Получить от пользователя логин и пароль
2)...
3)...