Вот полный пример с подготовленными инструкциями:
require 'common.php';
// Query checks if the email and password are present in the database.
$stmt = mysqli_prepare($con, "SELECT `id`, `name`, `email`, `password` FROM `users` WHERE `email` = ? AND `password` = ?");
$stmt->bind_param('s', $_POST['e-mail'], md5($_POST['password']));
$stmt->execute();
$result = $stmt->get_result();
// If the email and password are not present in the database, the mysqli_num_rows returns 0, it is assigned to $num.
if ($result->num_rows === 0) {
$error = "<span class='red'>Please enter correct E-mail id and Password</span>";
header('location: login.php?error=' . $error);
} else {
$row = $result->fetch_assoc());
$_SESSION['email'] = $row['email'];
$_SESSION['name'] = $row['name'];
$_SESSION['user_id'] = $row['id'];
header('location: products.php');
}
Примечание. Не используйте MD5 для хеширования пароля пользователя, используйте функцию password_hash ('sha256', PASSWORD_BCRYPT) для сохранения пароляпользователь при его создании!MD5 больше НЕ является безопасным!
Пример для регистрации пользователя:
$stmt = mysqli_prepare($con, "INSERT INTO `users` (`name`, `email`, `password` VALUES(?, ?, ?)");
$stmt->bind_param('s', $_POST['name'], $_POST['e-mail'], password_hash($_POST['password'], PASSWORD_BCRYPT));
...
Пример для проверки пароля:
$stmt = mysqli_prepare($con, "SELECT `id`, `name`, `email` FROM `users` WHERE `email` = ?");
$stmt->bind_param('s', $_POST['e-mail']);
$stmt->execute();
$result = $stmt->get_result();
// If the email and password are not present in the database, the mysqli_num_rows returns 0, it is assigned to $num.
if ($result->num_rows === 0) {
$error = "<span class='red'>Please enter correct E-mail id and Password</span>";
header('location: login.php?error=' . $error);
exit;
} else {
$row = $result->fetch_assoc());
if (!password_verify($_POST['password'], $row['password']) {
$error = "<span class='red'>Please enter correct E-mail id and Password</span>";
header('location: login.php?error=' . $error);
exit;
}
$_SESSION['email'] = $row['email'];
$_SESSION['name'] = $row['name'];
$_SESSION['user_id'] = $row['id'];
header('location: products.php');
}