Обучение/Помощь новичкам | Нужна помощь
Тема закрыта by
SNEG
Почему авторизация не пашет , что не так ?
________
посл. ред. 18.06.2023 в 15:11; всего 2 раз(а); by SNEG
php
if(isset($_COOKIE['user_id']) && isset($_COOKIE['token'])) { if(mysqli_num_rows(mysqli_query($mysqli, "SELECT COUNT(*) FROM `users` WHERE `user_id` = '".int($_COOKIE['user_id'])."' AND `token` = '".str($_COOKIE['token'])."'")) > 0) $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `users` WHERE `user_id` = '".int($_COOKIE['user_id'])."'")); if(isset($user)) { if(($user['user_id'] != $_COOKIE['user_id']) || $user['token'] != $_COOKIE['token']) { setcookie('user_id', '', time() - 60*60*24*365, '/'); setcookie('token', '', time() - 60*60*24*365, '/'); exit; } } } ________
посл. ред. 18.06.2023 в 15:11; всего 2 раз(а); by SNEG
так ты пустые данные присваиваешь же, да и проверок море ненужных
так ты пустые данные присваиваешь же, да и проверок море ненужных
попробуй так
php
if(isset($_COOKIE['user_id']) && isset($_COOKIE['token'])) { $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `users` WHERE `user_id` = '".abs((intval($_COOKIE['user_id']))."'")); if(isset($user)) { if(($user['user_id'] != $_COOKIE['user_id']) || $user['token'] != $_COOKIE['token']) { setcookie('user_id', '', time() - 60*60*24*365, '/'); setcookie('token', '', time() - 60*60*24*365, '/'); exit; }else{ setcookie('user_id', $user['user_id'], time() - 60*60*24*365, '/'); setcookie('token', '', time() - 60*60*24*365, '/'); // занос токена , где он там генерируется у тебя exit; } }
И вообще я использовал бы !empty в первом условии, что бы пустые поля не обрабатывать. php
if (!empty($_COOKIE['user_id']) and !empty($_COOKIE['token'])) { $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `users` WHERE `user_id` = '" . abs(intval($_COOKIE['user_id']) . "'"))); if (isset($user)) { if ($user['token'] != $_COOKIE['token']) { unset($user); setcookie('user_id', '', time() - 60 * 60 * 24 * 365, '/'); setcookie('token', '', time() - 60 * 60 * 24 * 365, '/'); } } } ________
посл. ред. 18.06.2023 в 16:57; всего 3 раз(а); by _(Ulty)_
Лучший ответ
DELETED
18 июня 2023, в 17:12
Delete
И вообще я использовал бы !empty в первом условии, что бы пустые поля не обрабатывать. php
if (!empty($_COOKIE['user_id']) and !empty($_COOKIE['token'])) { $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `users` WHERE `user_id` = '" . abs(intval($_COOKIE['user_id']) . "'"))); if (isset($user)) { if ($user['token'] != $_COOKIE['token']) { unset($user); setcookie('user_id', '', time() - 60 * 60 * 24 * 365, '/'); setcookie('token', '', time() - 60 * 60 * 24 * 365, '/'); } } } ------
Скачиваний: 104
Ну и наделал я проверок не нужных 🤪🤦,
P.s спасибо всем за подсказки
________
посл. ред. 18.06.2023 в 17:47; всего 2 раз(а); by SNEG
P.s спасибо всем за подсказки
________
посл. ред. 18.06.2023 в 17:47; всего 2 раз(а); by SNEG
А зачем после успешной проверки куки вновь их заливать? Че за бред?
not found, Если кука не существует, условие просто скипнется)
!empty удобней проверять на наличие какого либо содержимого в массиве)
Нет массива == false
Массив пуст == false
Если нет ключа == false
Если содержимое пустое, пробел или равно нулю == false
!empty удобней проверять на наличие какого либо содержимого в массиве)
Нет массива == false
Массив пуст == false
Если нет ключа == false
Если содержимое пустое, пробел или равно нулю == false
DELETED
18 июня 2023, в 20:43
Delete
not found, Если кука не существует, условие просто скипнется)
!empty удобней проверять на наличие какого либо содержимого в массиве)
Нет массива == false
Массив пуст == false
Если нет ключа == false
Если содержимое пустое, пробел или равно нулю == false
------
Скачиваний: 109

