Loading...
Почему авторизация не пашет , что не так ?
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
так ты пустые данные присваиваешь же, да и проверок море ненужных
d1nka (18 июня 2023, в 14:59)
так ты пустые данные присваиваешь же, да и проверок море ненужных
Например,какие проверки лишние?
попробуй так
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;          }  }   
d1nka , В чём смысл сверять id в куки с бд, если поиск в бд по этому значению и производится) *hz* И вообще я использовал бы !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)_
Лучший ответ
_(Ulty)_ (18 июня 2023, в 16:40)
d1nka , В чём смысл сверять id в куки с бд, если поиск в бд по этому значению и производится) *hz* И вообще я использовал бы !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, '/');         }     } }   
Куки может не существовать.

Изображение

------
86106_Screenshot_20230618_171320.jpg (253.8 Kb)
Скачиваний: 104
Ну и наделал я проверок не нужных 🤪🤦,
P.s спасибо всем за подсказки
________
посл. ред. 18.06.2023 в 17:47; всего 2 раз(а); by SNEG
А зачем после успешной проверки куки вновь их заливать? Че за бред?
not found, Если кука не существует, условие просто скипнется)

!empty удобней проверять на наличие какого либо содержимого в массиве)

Нет массива == false
Массив пуст == false
Если нет ключа == false
Если содержимое пустое, пробел или равно нулю == false
_(Ulty)_ (18 июня 2023, в 20:11)
not found, Если кука не существует, условие просто скипнется)

!empty удобней проверять на наличие какого либо содержимого в массиве)

Нет массива == false
Массив пуст == false
Если нет ключа == false
Если содержимое пустое, пробел или равно нулю == false
Я не спорю, автор просто решил проверить существует ли переменная, или нет, на мой взгляд можно и обе функции использовать, хотя типичнее проверять через empty. *039*

Изображение

------
86107_20230618_204034.png (13.5 Kb)
Скачиваний: 109
Онлайн: 0
Время:
Gen. 0.1216
(c) Bym.Guru 2010-2026