Ну всё почти собрал свой велосипед , осталось только проверку сделать юзера В первом варик прикольно 2 таблицу слито в одну очень удобно, но есть минуса нужно колонки все держать в разных именах Варик второй и третий с join и без Как правильнее всего ? Спойлер: !empty )) PHP: // Варик 1 if(isset($_COOKIE[COOKIE_PREFIX.'_'])) { $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `".PREFIX."_sessions` RIGHT JOIN `".PREFIX."_users` ON `".PREFIX."_sessions.user_id` = `".PREFIX."_users.user_id` WHERE `key` = '".escape($_COOKIE[COOKIE_PREFIX.'_'])."'")); if(isset($user['user_id'])) { if(!hash_equals($user['key'], crypt($_COOKIE[COOKIE_PREFIX.'_'], $user['key']))) unset($user); } } // Варик 2 if(isset($_COOKIE[COOKIE_PREFIX.'_'])) { $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT `user_id` FROM `".PREFIX."_sessions` RIGHT JOIN `".PREFIX."_users` ON `".PREFIX."_sessions.user_id` = `".PREFIX."_users.user_id` WHERE `key` = '".escape($_COOKIE[COOKIE_PREFIX.'_'])."'")); if(isset($user['user_id'])) { $session = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `".PREFIX."_sessions` WHERE `user_id` = '".$user['user_id']."'")); if(!hash_equals($session['key'], crypt($_COOKIE[COOKIE_PREFIX.'_'], $session['key']))) unset($user); } } // Варик 3 if(isset($_COOKIE[COOKIE_PREFIX.'_key']) && isset($_COOKIE[COOKIE_PREFIX.'_user_id'])) { $user = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `".PREFIX."_users` WHERE `user_id` = '".intval($_COOKIE[COOKIE_PREFIX.'_user_id'])."'")); if(isset($user['user_id'])) { $session = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM `".PREFIX."_sessions` WHERE `user_id` = '".$user['user_id']."'")) if(!hash_equals($session['key'], crypt($_COOKIE[COOKIE_PREFIX.'_'], $session['key']))) unset($user); } }
самый хороший варик - адекватно вопросы задавать. ... вообще не очень понятно что и зачем вы делаете... если нужна авторизация по кукам .. и в качестве идентификатора задаете имя сессии.. то вообще достаточно доп поле session в таблице пользователей иметь без всяких сложностей
Убогий вид кодинга. Процедурный стиль - Бабушка закормила внучёнка щщами. Многократное использование глобальных переменных напрямую, а не через ООП Lib Request/Responce. Конструкция isset умеет принимать N аргументы сразу. 2 Вариат - убийца логики. Выводим из таблицы юзерИд чтобы потом найти по юзерИд тот же юзерИд но с трусами. https://github.com/symfony/symfony Зубрить, особенно его компоненты.