[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выявите пожалуйста ошибку
Страницы: 1, 2
Гость_Lokilife2
Цитата (Kusss @ 1.10.2019 - 23:24)
Lokilife2
Сори, твой код нужно весь переписывать. Вот набросал пример более-менее нормальной проверки авторизации для боевого сайта.
<?php

// подключение к БД, и старт сессии
include('DataBase/DB-connect.php');

/*
* Проверка авторизации пользователя
* в Базе хранится НЕ реальный пароль пользователя, а его ХЕШ
* плюс записываем логи, к которой можно добавить блокировку от подбора пароля через счетчик `fail`
*/


// Соль для пароля

define( 'SALT', 'соль для пароля' );


// Экранируем данные, перед отправкой в БД
$login = mysqli_real_escape_string($connect, $_POST["login"]);
$password = $_POST["password"];

// хеш пароля
$pas_in_hash = password_hash($password, $salt);

$sql = "
SELECT
id, password, fail
FROM
`Administration`
WHERE
login = '
$login'
"
;
$result = mysqli_query($connect, $sql);
if (mysqli_num_rows($result) > 0) {

$user = mysqli_fetch_assoc($result);

// сравниваем наше значение с тем, что хваниться в БД
if ($user['password'] == $pas_in_hash) {
// записываем номер пользователя в куку
setcookie("login", $user['id'], time()+60*60*3, "/");
// а пароль можно сохранить в сессию
$_SESSION['pass_hash'] = $user['password'];

// Логи входа
$sql = "
INSERT INTO
`Administration_logs`
SET
id_user = '"
. $user['id'] ."',
date = NOW(),
ip = '"
. $_SERVER['REMOTE_ADDR'] ."',
text = '"
. $_SERVER['HTTP_USER_AGENT'] ."'
"
;
mysqli_query($connect, $sql);

header('Location: /' );

} else {
// Если авторизация прошла НЕ удачно
$sql = "
INSERT INTO
`Administration_logs`
SET
id_user = '"
. $user['id'] ."',
date = NOW(),
ip = '"
. $_SERVER['REMOTE_ADDR'] ."',
text = '"
. $_SERVER['HTTP_USER_AGENT'] ."',
fail = "
. ($user['fail'] + 1) ."
"
;
mysqli_query($connect, $sql);

header('Location: /authorization/' );
}
}





// эта функция готовит хеш пароля
function password_hash($password) {
return crypt($password, SALT);
}

Kusss ноконец хоть кто-то нормальный ответ дал и написал код который работает. Миллион благодарностей.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.