Прежде всего вам необходимо настроить скрипт регистрации. Переключитесь на подготовленные заявления и вставьте ha sh в базу данных вместо обычного текстового пароля.
if (isset($_POST['register'])) {
$hash = password_hash($_POST['rpswd'], PASSWORD_DEFAULT);
$stmt = $con->prepare('INSERT INTO `user` (`name`, `email`, `password`) VALUES (?,?,?)');
$stmt->bind_param('sss', $_POST['fname'], $_POST['remail'], $hash);
$stmt->execute();
header("Location: regist.php");
exit; // always add after header("Location:
}
Убедитесь, что поле пароля в базе данных - VARCHAR(255)
, а кодировка - utf8mb4
. Также убедитесь, что страница, которую вы перенаправляете на regist.php
, является правильной.
Затем на странице входа в систему вы должны получить одно поле password
из базы данных на основе предоставленного электронного письма. Затем вы можете использовать это значение, если оно существует, для проверки password_verify()
. Если ха sh совпадает, вы можете перенаправить. Если нет, то вы отображаете сообщение.
//Login Existed User
if (isset($_POST['login'])) {
$stmt = $con->prepare('SELECT password FROM user WHERE email = ?');
$stmt->bind_param('s', $_POST['email']);
$stmt->execute();
$result = $stmt->get_result();
$data2 = $result->fetch_array();
if ($data2 && password_verify($_POST['password'], $data2['password'])) {
header("Location: mainpage.php");
exit;
}
// If the login was unssuccesful then display a message
echo "<script>alert('ID or Password Are Wrong!');
window.location= 'user.php'</script>";
}