PHP/MySQL | Проверьте код HELP
Использую алгоритм для паролей "password_hash", проверьте код ниже для авторизации пользователя.
Нормально ли написал сам процесс, ниче нет лишнего? Проверяю логин и соль в БД
if(isset($_POST['login']) && isset($_POST['password']))
{
$login = sql($_POST['login']);
$password = sql($_POST['password']);
$query = sql_count("SELECT `id`,`password` FROM `user` WHERE `login` = '".$login."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
$hash = $data['password'];
if(password_verify($password,$hash))
{
echo"Авторизуемся";
}else{
echo'Неверный ник или пароль!';
}
}
Нормально ли написал сам процесс, ниче нет лишнего? Проверяю логин и соль в БД
if(isset($_POST['login']) && isset($_POST['password']))
{
$login = sql($_POST['login']);
$password = sql($_POST['password']);
$query = sql_count("SELECT `id`,`password` FROM `user` WHERE `login` = '".$login."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
$hash = $data['password'];
if(password_verify($password,$hash))
{
echo"Авторизуемся";
}else{
echo'Неверный ник или пароль!';
}
}
DELETED
12 сентября 2017, в 16:12
Delete
________
посл. ред. 12.09.2017 в 16:15; всего 1 раз(а); by PhpStorm
Код выглядит компактно и удобно для глаз программиста, но слишком замудрен для обработки сервером.
SayrusCraft (12.09.2017 в 16:19)
Код выглядит компактно и удобно для глаз программиста, но слишком замудрен для обработки сервером.
Код выглядит компактно и удобно для глаз программиста, но слишком замудрен для обработки сервером.
подскажи как проще?
PhpStorm (12.09.2017 в 16:12)
сойдёт
сойдёт
пишут слишком сложно написан код=(
Drages, нормально.
Drages,
1. Нужно сделать вывод ошибок, что бы пользователь знал почему он не может авторизоваться, а так же это избавит сервер mysql от пустых запросов.
2. Не нужно создавать функцию для работы с функцией mysql_query().
sql_count("SELECT `id`,`password` FROM `user` WHERE `login` = '".$login."' LIMIT 1");
3. Не обязательно создавать несколько переменных для обработки запроса mysql.
$query = sql_count("SELECT `id`,`password` FROM `user` WHERE `login` = '".$login."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
$hash = $data['password'];
Можно было и так:
$hash = mysql_fetch_assoc(mysql_query("SELECT `password` FROM `user` WHERE `login` = '".$login."' LIMIT 1"));
1. Нужно сделать вывод ошибок, что бы пользователь знал почему он не может авторизоваться, а так же это избавит сервер mysql от пустых запросов.
2. Не нужно создавать функцию для работы с функцией mysql_query().
sql_count("SELECT `id`,`password` FROM `user` WHERE `login` = '".$login."' LIMIT 1");
3. Не обязательно создавать несколько переменных для обработки запроса mysql.
$query = sql_count("SELECT `id`,`password` FROM `user` WHERE `login` = '".$login."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
$hash = $data['password'];
Можно было и так:
$hash = mysql_fetch_assoc(mysql_query("SELECT `password` FROM `user` WHERE `login` = '".$login."' LIMIT 1"));