Jump to content

Проверка авторизации

Featured Replies

Здравствуйте.

Форум расположен по адресу site.ru/forum/, нужно со страницы site.ru проверить авторизован ли пользователь на форуме.

Какой наиболее быстрый способ это сделать?

Подключившись к классу

require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php';

Или через получения куки ips4_IPSSessionFront и поиск в БД запросом?

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/
Share on other sites

Загрузка страницы при проверке авторизации через классы форума занимает 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 минут )) И появляется только если снова зайти на форум. 

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=176000
Share on other sites

Как выяснилось этот код тоже не работает до тех пор пока я не зайду на форум. Как только захожу на форум и потом возвращаюсь на главную страницу сразу получаю информацию о пользователе. В чем проблема, кто знает?

require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php';
\IPS\Session\Front::i();
$member_IPS = \IPS\Member::loggedIn();

 

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=176057
Share on other sites
$sessionId = isset( \IPS\Request::i()->cookie['IPSSessionFront'] ) ? \IPS\Request::i()->cookie['IPSSessionFront'] : \IPS\Session::i()->id;	

 

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=176059
Share on other sites

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();

 

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=176109
Share on other sites

Получаю ID авторизации, но почему-то с таблицы core_sessions в БД постоянно пропадают данные об авторизации. Пустой member_id и другие поля.. 

211229095604.png

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=176110
Share on other sites

Есть знатоки?)

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=176231
Share on other sites
  • 1 year later...

Снова возвращаюсь к теме.

require $_SERVER['DOCUMENT_ROOT'].'/forum/init.php';
\IPS\Session\Front::i();
$member_IPS = \IPS\Member::loggedIn();

Почему данный код не возвращает информацию о пользователе за пределами форума, если на форум не заходили более N минут. Если открыть страницу форума, а потом закрыть её. То данный код возвращает информацию о пользователе.

Хочу проверить с других страниц сайта, авторизован ли пользователь на форуме...

Link to comment
https://ipbmafia.ru/topic/23908-proverka-avtorizacii/?&do=findComment&comment=193884
Share on other sites

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.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.