Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 07-19-2011, 09:45 PM
nainil nainil is offline
 
Join Date: Apr 2011
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Fatal error while adding users using a script

When I run the below query it tells me:

Array ( [0] => That username is already in use or does not meet the administrator's standards. If you are mcar and you have forgotten your password, click here. ) 0 Failure
hello no newuserid

Fatal error: Registry object is not an object in [path]/includes/class_dm.php on line 205

-------------------------------

If there are errors while registering a user I want the script to ignore them. I don't want the script to stop. I believe the Fatal Error is due to 2 instances of database calls. I am new here so am wondering if someone can help show the right way to get this script correct so it pulls up records from one table and uses them to create users in vbulletin.

PHP Code:
<?php

function register_in_vb($username$password$email)
{
    
define('VB_AREA''External');
    
define('SKIP_SESSIONCREATE'0);
    
define('SKIP_USERINFO'1);
    
//define('CWD', './../../forum/' );
    
require_once('includes/init.php');
    require_once(
'includes/functions_misc.php');

    
$registry $vbulletin
    unset(
$vbulletin); 
    
$vbDb $registry->db
    
//declare as global vbulletin's registry and db objects 
    
global $vbulletin,$db
    
$vbulletin $registry
    
//backup the original $db object (new!!) 
    
$backupdb $db
    
$db $vbDb

    
$newuser =& datamanager_init('User'$vbulletinERRTYPE_ARRAY);
    
$newuser->set('username'$username);
    
$newuser->set('email'$email);
    
$newuser->set('password'$password);
    
$newuser->set('usergroupid'2);
    
    
$newuser->pre_save();
    
    if(empty(
$newuser->errors)){ // success
        
$db $backupdb;
        echo 
1;
        echo 
" Success <br>";
        return 
$newuser->save();
        
    }else{ 
// failure
        
$db $backupdb;
        
print_r$newuser->errors);
        echo 
0;
        echo 
" Failure <br>";        
        return 
false;
    }

}


// For Local Database
$dbhostname "localhost";
$dbusername "dbuser";
$dbpassword "dbpassword";
$dbname "mydb";

$con mysql_connect($dbhostname,$dbusername,$dbpassword); 
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }

mysql_select_db($dbname$con);

$sql "select uname,upwd,uemail from users where delflag=0 and inactive=0 and usertype in (3, 30)";
//echo $sql;

$result mysql_query($sql);

while(
$row mysql_fetch_array($result)) {

$username $row[uname];
$password $row[upwd];
$email $row[uemail];

    
// Add the users to vBulletin
    
$newuserid register_in_vb($username$password$email);
    
    
//    echo "hi ".$newuserid;

    
if(!$newuserid) {
        echo 
"hello no newuserid";
    }

}
// end while
mysql_close($con);

?>
Reply With Quote
  #2  
Old 07-19-2011, 10:58 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The "That username is already in use..." message probably means the username is already in the database (or it could mean it's a username that isn't allowed), so up to there it looks like things are working as expected. I think you're getting the "Fatal error: Registry object is not an object ..." because the code is depending on including init.php to define $vbulletin, but you've got require_once() so it only works once.

To be honest, I looked at it trying to see how to fix it but I can't understand what's going on. Do you understand why it seems to be trying to replace the existing $vbulletin with a new one?
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:37 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03244 seconds
  • Memory Usage 2,180KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete