Log in

View Full Version : $vbulletin variable is null !


ghostrifle
03-30-2007, 08:37 AM
Hi there,

I'm trying to import users, so far no problem.... but I'm gettin the following message:

Registry object is not an object in /includes/class_dm.php (Zeile 177)

Well.. I checked the $vbulletin variable and it's NULL... well but why ??

Here's my code:
<?php

define('THIS_SCRIPT', 'vbbridge.php');

require_once ('libs/adodb/adodb.inc.php');
require_once ('libs/dbuser.php');
require_once ('config.php');

print 'changing directory<br>';
chdir('/var/www/saarbabes/forum/');
require_once('./global.php');
require_once('./includes/class_dm.php');
require_once('./includes/class_dm_user.php');


print ' vbulletin ready<BR>';

function qpc_post($varname)
{
return trim(stripslashes((get_magic_quotes_gpc()) ? $_POST[$varname] : addslashes($_POST[$varname])));
}

/**
* imports a user into the vbulletin-user field
*/
function vb_add_user(&$vb_adodb,$user_id,$username,$password,$email)
{

//$userdm = new vB_DataManager_User($vbulletin, ERRTYPE_ARRAY);
var_dump($vbulletin);

$userdm=& datamanager_init('User', $vbulletin, ERRTYPE_ARRAY);
$userdm->set('username', $username);
$userdm->set('email', $email);
$userdm->set('password', $password);
$userdm->set('usergroupid',2);
$userdm->set('ipaddress', '');
$userdm->set('timezoneoffset', '');
$userdm->set_bitfield('options', 'adminemail', '1');
$userdm->set_bitfield('options', 'showemail', '1');

$newuserid = $userdm->save();

print 'imported user '.$username.' with id '.$newuserid.'<br>';
}

function vb_import_all_users()
{
print ' vb_import_all_users();<br>';
// VBulletin
$vb_adodb = ADONewConnection('mysql');
if($vb_adodb->NConnect(VB_DBHOST,VB_DBUSER,VB_DBPWD,VB_DBNAME) != true)
{
print('failed to connect to the database:'.$vb_adodb->ErrorMsg());
die();
}

// saarbabes
$sb_adodb = ADONewConnection('mysql');
if($sb_adodb->NConnect(DBHOST,DBUSER,DBPWD,DBNAME) != true)
{
print('failed to connect to the database:'.$sb_adodb->ErrorMsg());
die();
}

$all_users = DBUser::getAll($sb_adodb,0,0,0,1);

print 'users to import: '.sizeof($all_users).'<br>';
for($i = 0; $i < sizeof($all_users); $i++)
{
// importing user $i
if($all_users[$i]->pk != 1) // ghostrifle raus
{
if(strlen($all_users[$i]->name) > 1)
{
print 'importing user: '.$all_users[$i]->name.'<br>';

vb_add_user($vb_adodb,$all_users[$i]->pk,$all_users[$i]->name,$all_users[$i]->password,$all_users[$i]->email);
}
}
}
}

print ' trying to import users<br>';
vb_import_all_users();

?>

Has anyone an idea why this happens ??

Marco van Herwaarden
03-30-2007, 09:39 AM
Add the following line in the top of your function:

global $vbulletin;

ghostrifle
03-30-2007, 09:40 AM
Yeah, I figured it out meanwhile too... :/ thanx for your help !