View Single Post
  #21  
Old 11-03-2005, 09:46 PM
scott8539 scott8539 is offline
 
Join Date: Oct 2005
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I finally got a working script to add a user to vB offline. I maintain a separate Membership System. When a user registers in this separate system, an account is automatically created for them in vB.

When they register (again, this is in my own Member System -- on a different domain), I collect those variables that I need specifically (and minimally) to create an account in vB.

I then cURL those variables to a custom script (called bb_add_user.php) which resides in the root folder of the forum. The results of bb_add_user.php are printed, which are then collected in the result of the cURL. If there are errors, the Membership System takes appropriate action. If successul, then I grab the vbuserid from the cURL result and go about my business.

Although I am still proving this system on a development server, my goal will be to change all of the 'register.php' links on vBulletin and point them to the register script on my Membership System.

Here is the bb_add_user.php code.

Code:
<?php
	# Add a user to vBulletin (offline)
		
	function qpc_post($varname)
	{
		return trim(stripslashes((get_magic_quotes_gpc()) ? $_POST[$varname] : addslashes($_POST[$varname])));
	}

	define('THIS_SCRIPT', 'bb_add_user.php');
	require_once('./global.php');
	require_once('./includes/class_dm.php');
	require_once('./includes/class_dm_user.php');

	$userdm = new vB_DataManager_User($vbulletin, ERRTYPE_ARRAY);
	
	$userdm->set('username', qpc_post('username'));
	$userdm->set('email', qpc_post('email'));
	$userdm->set('password', qpc_post('password'));
	$userdm->set('usergroupid', 2);
	$userdm->set('ipaddress', qpc_post('ipaddress'));
	$userdm->set('referrerid', qpc_post('referrername'));
	$userdm->set('timezoneoffset', qpc_post('timezoneoffset'));
	$userdm->set_bitfield('options', 'adminemail', intval(qpc_post('adminemail')));
	$userdm->set_bitfield('options', 'showemail', intval(qpc_post('showemail')));
	
	$dst_setting = intval(qpc_post('dst'));
	switch ($dst_setting)
	{
		case 0:
		case 1:
			$userdm->set_bitfield('options', 'dstonoff', $dst_setting);
			break;
		case 2:
			$userdm->set_bitfield('options', 'dstauto', 1);
			break;
	}
	
	#If there are errors (eMail not set, eMail banned, Username taken, etc.) you can check for errors using
	if (count($userdm->errors)) {
		for($i=0; $i<count($userdm->errors); $i++) {
			print "ERROR{$i}:{$userdm->errors[$i]}\n";
		}
	} else {
		# If everything is OK
		$newuserid = $userdm->save();
		print "vbuserid:$newuserid\n";
	}
	

?>
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02083 seconds
  • Memory Usage 1,770KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete