vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB5 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=262)
-   -   Check if logged in PHP script (https://vborg.vbsupport.ru/showthread.php?t=321038)

InPhaseVB 12-10-2015 10:40 AM

Check if logged in PHP script
 
vBulletin 5.1.9

Hello I have a number of external pages written in PHP that need to check that a user is logged into vBulletin to allow access to these pages. After much searching I have a script that can check if the user has vb cookies but it is not always the case that cookies are placed on the browser when logged in.

/*--------- PHP Code ---------*/
$vbpath = '/home/ourperfo/public_html';

define('CSRF_PROTECTION', false);
require_once($vbpath . '/includes/vb5/autoloader.php');
error_reporting(E_ALL);
vB5_Autoloader::register($vbpath);
vB5_Frontend_Application::init('config.php');
$userid = vB5_Cookie::get('userid', vB5_Cookie::TYPE_UINT);
$hash = vB5_Cookie::get('password', vB5_Cookie::TYPE_STRING);

if ($userid > 0 AND !empty($hash))
{
echo "logged in";
}
else
{
echo "NOT logged in";
}
/*--------- PHP Code END ---------*/

So what I was wondering if there was a script to check if a user is logged in on the browser I could use. Thanks.

Replicant 12-10-2015 08:38 PM

The userid and password cookies are not set when one logs in if they haven't clicked the remember me button. So, using the script you have above, if the cookie check fails, then provide a login prompt. I'm assuming this script is based on David Groves' external login tutorial so that part should be trivial. Remove the remember me option and hardcode remember in the login script. This will force the cookies to be set and you will be off and running.

ChristianAlfred 01-23-2016 04:04 PM

This was great. If you could extract username it would be nice.

Replicant 01-23-2016 06:21 PM

You can use this in the php code if you have already determined the userid in your script which only returns a username.
Code:

vB_Api_User::fetchUserName($userid)
Or, you can use if you don't which returns a fairly large array with tons of user info.
Code:

vB_Api_User::fetchCurrentUserinfo()
Either of these can also be called via AJAX in javascript so it can also it can be implemented on cloud also. :)
[forum root]/ajax/api/user/fetchUserName?userid=3 using pageData['userid'] to get the userid
[forum root]/ajax/api/user/fetchUserinfo if you want more data than just a user name.


All times are GMT. The time now is 05:54 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01021 seconds
  • Memory Usage 1,718KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete