Posted 22 декабря, 20212 yr comment_175999 Здравствуйте. Форум расположен по адресу site.ru/forum/, нужно со страницы site.ru проверить авторизован ли пользователь на форуме. Какой наиболее быстрый способ это сделать? Подключившись к классу require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php'; Или через получения куки ips4_IPSSessionFront и поиск в БД запросом?
22 декабря, 20212 yr Author comment_176000 Загрузка страницы при проверке авторизации через классы форума занимает 0.013140201568604 сек require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php'; \IPS\Session\Front::i(); $member_IPS = \IPS\Member::loggedIn(); В то время как проверка запросом через БД страница загружается за 0.0060040950775146 сек. $sql = $pdoBDforum->prepare("SELECT * FROM `core_sessions` LEFT JOIN `core_members` USING(`member_id`) WHERE `id` = :cookie"); $sql->execute(array(':cookie' => $_COOKIE['ips4_IPSSessionFront'])); Но тут правда есть проблемка, кука ips4_IPSSessionFront постоянно пропадает, такое ощущение, что каждые 10-30 минут )) И появляется только если снова зайти на форум.
24 декабря, 20212 yr Author comment_176057 Как выяснилось этот код тоже не работает до тех пор пока я не зайду на форум. Как только захожу на форум и потом возвращаюсь на главную страницу сразу получаю информацию о пользователе. В чем проблема, кто знает? require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php'; \IPS\Session\Front::i(); $member_IPS = \IPS\Member::loggedIn();
24 декабря, 20212 yr comment_176059 $sessionId = isset( \IPS\Request::i()->cookie['IPSSessionFront'] ) ? \IPS\Request::i()->cookie['IPSSessionFront'] : \IPS\Session::i()->id;
28 декабря, 20212 yr Author comment_176109 HooLIGUN поясните пожалуйста немного по коду, что вот это значит? Правильно ли понимаю, что если не существует куки IPSSessionFront, то они будут установлены и возвращены? Каким сроком жизни? \IPS\Session::i()->id Полный код проверки авторизации должен выглядеть следующим образом? require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php'; \IPS\Session\Front::i(); $sessionId = isset( \IPS\Request::i()->cookie['IPSSessionFront'] ) ? \IPS\Request::i()->cookie['IPSSessionFront'] : \IPS\Session::i()->id; $sql = $pdoBDforum->prepare("SELECT * FROM `core_sessions` LEFT JOIN `core_members` USING(`member_id`) WHERE `id` = :cookie"); $sql->execute(array(':cookie' => $sessionId)); $dataBD = $sql->fetch();
29 декабря, 20212 yr Author comment_176110 Получаю ID авторизации, но почему-то с таблицы core_sessions в БД постоянно пропадают данные об авторизации. Пустой member_id и другие поля..
12 июня, 20231 yr Author comment_193884 Снова возвращаюсь к теме. require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php'; \IPS\Session\Front::i(); $member_IPS = \IPS\Member::loggedIn(); Почему данный код не возвращает информацию о пользователе за пределами форума, если на форум не заходили более N минут. Если открыть страницу форума, а потом закрыть её. То данный код возвращает информацию о пользователе. Хочу проверить с других страниц сайта, авторизован ли пользователь на форуме...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.