Log in

View Full Version : $vbulletin->$userinfo ?


cellarius
04-07-2006, 12:39 PM
Hi,

I'm working on a vb-powered comment system for my site, and I'm quite done - just one last problem I don't get solved (probably a real dumb one...)

I already checked whether the user is logged in. Now, a new thread is to be created. For this I'm using code from the "How to create a thread"-thread. As long as I define a variable for the userid, it works like a charm. But when I try to read the userid of the currently logged in user, something goes wrong. Here's the relevant part of the code I'm using:


// Start of vB
define('SKIP_SESSIONCREATE', 1);
define('DIE_QUIETLY', 1);
define('THIS_SCRIPT', 'buchtipp_3');

// Change working directory but remeber old one
$cwd = getcwd();
chdir($_SERVER['DOCUMENT_ROOT'].'/forum');

// Include files
require_once('./global.php');
require_once('./includes/class_dm.php');
require_once('./includes/class_dm_threadpost.php');

// Initialize thread/first post class
$threaddm = new vB_DataManager_Thread_FirstPost($vbulletin, ERRTYPE_STANDARD);

//****Here something goes wrong...****

// variables
$userid = $vbulletin->$userinfo['userid'];
$forumid="44";
$postuserid = $vbulletin->$userinfo['userid'];
$username = $vbulletin->$userinfo['username'];
$allowsmilie = '1';
$visible = '1';
$views = '1';
$dateline = TIMENOW;

$threaddm->do_set('forumid', $forumid);
$threaddm->do_set('postuserid', $postuserid);
$threaddm->do_set('userid', $userid);
$threaddm->do_set('views', $views);
$threaddm->do_set('username', $username);
$threaddm->do_set('pagetext', $pagetext);
$threaddm->do_set('title', $title);
$threaddm->do_set('allowsmilie', $allowsmilie);
$threaddm->do_set('visible', $visible);
$threaddm->do_set('dateline', $dateline);
$threaddm->pre_save();
if (count($threaddm->errors) > 0)
{
// Do some error work
}
else
{
$tid = $threaddm->save();
require_once('./includes/functions_databuild.php');
build_forum_counters($forumid);
define('IN_SCRIPT', '1');
include

}

// Change working directory back
chdir($cwd);


Clues anybody? Thank you!
Sven

Delphiprogrammi
04-07-2006, 01:17 PM
Hi,

I'm working on a vb-powered comment system for my site, and I'm quite done - just one last problem I don't get solved (probably a real dumb one...)

I already checked whether the user is logged in. Now, a new thread is to be created. For this I'm using code from the "How to create a thread"-thread. As long as I define a variable for the userid, it works like a charm. But when I try to read the userid of the currently logged in user, something goes wrong. Here's the relevant part of the code I'm using:


// Start of vB
define('SKIP_SESSIONCREATE', 1);
define('DIE_QUIETLY', 1);
define('THIS_SCRIPT', 'buchtipp_3');

// Change working directory but remeber old one
$cwd = getcwd();
chdir($_SERVER['DOCUMENT_ROOT'].'/forum');

// Include files
require_once('./global.php');
require_once('./includes/class_dm.php');
require_once('./includes/class_dm_threadpost.php');

// Initialize thread/first post class
$threaddm = new vB_DataManager_Thread_FirstPost($vbulletin, ERRTYPE_STANDARD);

//****Here something goes wrong...****

// variables
$userid = $vbulletin->$userinfo['userid'];
$forumid="44";
$postuserid = $vbulletin->$userinfo['userid'];
$username = $vbulletin->$userinfo['username'];
$allowsmilie = '1';
$visible = '1';
$views = '1';
$dateline = TIMENOW;

$threaddm->do_set('forumid', $forumid);
$threaddm->do_set('postuserid', $postuserid);
$threaddm->do_set('userid', $userid);
$threaddm->do_set('views', $views);
$threaddm->do_set('username', $username);
$threaddm->do_set('pagetext', $pagetext);
$threaddm->do_set('title', $title);
$threaddm->do_set('allowsmilie', $allowsmilie);
$threaddm->do_set('visible', $visible);
$threaddm->do_set('dateline', $dateline);
$threaddm->pre_save();
if (count($threaddm->errors) > 0)
{
// Do some error work
}
else
{
$tid = $threaddm->save();
require_once('./includes/functions_databuild.php');
build_forum_counters($forumid);
define('IN_SCRIPT', '1');
include

}

// Change working directory back
chdir($cwd);


Clues anybody? Thank you!
Sven

yeah wrong code you are using a class so this


$userid = $vbulletin->$userinfo['userid'];
$postuserid = $vbulletin->$userinfo['userid'];
$username = $vbulletin->$userinfo['username'];


should be

$userid=$vbulletin->userinfo['userid'];
$postuserid = $vbulletin->userinfo['userid']; // $threadinfo['postuserid'] ;
$username = $vbulletin->userinfo['username'];

jake7338
07-03-2006, 10:47 PM
I am new to Vbulletin...

Can you show me how you "checked to see if the user was logged in"

I am allowing a form to be submitted by the user and posted to an html table. I have all that working with html and php but would like to check to make sure they are logged in to VBulletin before they submit the data and also capture thier login name for the post.

Thanks,
--jake

Blaine0002
07-03-2006, 10:54 PM
if($vbulletin->userinfo['userid']==0){
}

for if they are not logged in


if($vbulletin->userinfo['userid']!==0){
}

if they arelogged in

Gio~Logist
07-03-2006, 11:10 PM
Or you can use:
if(!$vbulletin->userinfo['userid']){
// They are not logged in
} else {
// They are logged in
}

jake7338
07-04-2006, 03:16 AM
<?PHP
// Include files
require_once('./global.php');


if(!$vbulletin->userinfo['userid']){
// They are not logged in

require("notoktoaddvendorform.html");
// echo "Please login so you can add reccomended vendors.";

} else {
// They are logged in

require("oktoaddvendorform.html");

}

?>

Below is the error i am getting. What do i have to do to access the $vbulletin->userinfo['userid'] variable? Thanks for the code snipet, very helpful!! --jake


Unable to add cookies, header already sent.
File: /htdocs/forums/services.php
Line: 5

Blaine0002
07-04-2006, 01:03 PM
Or you can use:
if(!$vbulletin->userinfo['userid']){
// They are not logged in
} else {
// They are logged in
}

gah :P
yes, thats much more efficiant. i am a noob :banana:

as for the error, shouldnt you be including the html files not requiring them?

jake7338
07-05-2006, 05:36 AM
I am using the code above to test whether someone is logged in or not. When a user is NOT logged in i get this error:

Unable to add cookies, header already sent.
File: /htdocs/forums/services.php
Line: 5

If the user is already logged in, its works perfectly!!
The problem is with this line. Why can't you use this line if a user is not logged in?

include("global.php");

I need help!! I have vb 3.6 beta 3.

Thanks,
--jake

Code Monkey
07-05-2006, 06:12 AM
If this is just to display different html then it would be more efficient to do it as a template conditional using $bbuserinfo[userid].

jake7338
07-05-2006, 05:22 PM
Can you tell me how to use $bbuserinfo as a template conditional? I have to explore other ways of figureing out whether someone is logged in or not. The previously discussed method does not work. Really its just that require_once('global.php'); statement that does not work if you are not logged in.

Does your method need the global.php ??

Thanks, still need help,
--jake

Its not just to display html differently, its to allow access to my custome code if they are logged in.

Code Monkey
07-06-2006, 03:18 AM
I don't see why global.php would not work if your not logged in.

Why are you turning off the session?


define('SKIP_SESSIONCREATE', 1);


You don't need to load these files. These are all loaded by default when you load global.php


require_once('./includes/class_dm.php');
require_once('./includes/class_dm_threadpost.php');


Ah, nevermind, I see your not even the thread starter.

jake7338
07-06-2006, 03:44 AM
Thanks for everyone's help.

The problem is finally solved.

< html > tag was interfereing with php script. I had actually removed everything from the script for testing but left the < html > start and stop tags. I thought that was legal. Guess it causes havoc with vb. According to W3 schools its ok.

Thanks,
--jake