Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles

Reply
 
Thread Tools
Add new Users (automatically)
Andreas's Avatar
Andreas
Join Date: Jan 2004
Posts: 6,863

 

Germany
Show Printable Version Email this Page Subscription
Andreas Andreas is offline 06-09-2005, 10:00 PM

As this is a common request for integration purposes, I thought I should write up another HowTo

If you want to add a new user to the vBulletin database, you can use Class vB_Datamanager_User.
This Calss does make sure that everything is OK, it will also take care of the default registration options.

Example
PHP Code:
$newuser =& datamanager_init('User'$vbulletinERRTYPE_ARRAY);
$newuser->set('username''phpNukeUser');
$newuser->set('email''foo@bar.com');
$newuser->set('password''verysecret');
$newuser->set('usergroupid'2); 
If there are errors (eMail not set, eMail banned, Username taken, etc.) you can check for errors using
PHP Code:
$newuser->errors 
This is an array containing the errors.

If everything is OK
PHP Code:
$newuserid $newuser->save(); 
This will create a new User called phpNukeNuser (UserID returned in $newuserid).

You can also set many other info too:
  • membergroupids = comma-separated string of all additional usergroups (Default=Empty)
  • displaygroupid = ID of the usergroup this user should show up as (Default=0)
    Note that this must be set after usergroupid and membergroupids!
  • styleid = ID of the Style to be used by this user (Default=Board Default)
  • languageid = ID of the language to be used by this user (Default=Board Default)
  • threadedmode = Whether to use Flat (0), Hybrid (1) or Threaded (2) Display Mode
  • maxposts = Integer, how many posts should be shown on one Page (Default=Board Default)
  • ipaddress = String, IP-Adress of the User registering (Default=Empty)
  • refererid = String, Username or UserID of the User this user was refered by
  • parentemail = String. eMail-Address of the users Parents
  • daysprune = Integer, show threads from the last X days
  • startofweek = Integer, When does the week start (1=Sunday, 2=;onday, ...) (Default=Board Default)
  • timezoneoffset = Integer, spexifying the Timezone (-12 .. +12)
  • autosubscribe = Integer, defining default mode for Thread subscription
    -1 = no Subscription, 1 = Instant, 2 = Daily Digest, 3 = Weekly Digest
    (Default=Board Default)
  • homepage = String, URL of the users Homepage (Default=Empty)
  • icq = String, the Users ICQ # (Default=Empty)
  • aim = String, the Users AIM ID (Default=Empty)
  • yahoo = String, the Users Yahoo ID (Default=Empty)
  • MSN = String, the Users MSN ID (Default=Empty)
  • usertitle = String, the Usertitle this user should have
  • customtitle = Integer, defining behaviour of Usertitle. 0=No Custom Title, 1=Custom, Title with HTML, 2=Custom Title without HTML (Default=
  • birthday = array(month, day, year). The users birthdate.
  • avatarid = Integer, ID of the Avatar being used for this user
  • signature = String. The Users Signature
  • subfolders = Array. The Users Subscription Folders
  • pmfolders = Array. The Users Subscription Folders
  • buddylist = String. Space separated List of UserIDs defining the Users buddylist
  • ignorelist = String. Space separated List of UserIDs defining the Users ignorelist

Besides that, you can also set the options Bitfield (Receive Admin PMs, etc.)
PHP Code:
$userdata->set_bitfield('options''optionname''value'); 
The available Options are
  • showsignatures = Show Signatures
  • showavatars = Show Avatars
  • showimages = Show Images, incl. attached Images and [img] BBCode
    If this is not set they will show up as links
  • coppauser = User is COPPA User
  • adminemail = Receive Admin eMails
  • showvcard = Allow vCard Download
  • dstauto = Automatically detect DST setting
  • dstonoff = DST turned On
  • showemail = Receive eMails from other Users
  • invisible = Be invisible
  • showreputation = Show Reputation
  • receivepm = PM turned on
  • emailonpm = eMail notification for new PMs

Value must be 0 or 1 (false or true), depending if you want to set the option or not.
If the Options are not set, the Default Registration Options/Board Default Options will be used.

Important Notice
It is assumed that you are using this code from 'within' vBulletin, eg with the vBulletin backend loaded.
If this is not the case, you must include smth. like the following code in global context:
PHP Code:
define('VB_AREA''External');
define('SKIP_SESSIONCREATE'1);
define('SKIP_USERINFO'1);
define('CWD''/path/to/vbulletin');
require_once(
CWD '/includes/init.php'); 
Keep in mind that if you are using the a/m Datamanager-Code within a function or method you must global $vbulletin.

This How-To is (C) 2005 by KirbyDE and you are not allowed to redistribute it in any way without my explicit consent.
Reply With Quote
  #162  
Old 03-10-2015, 05:28 AM
bskr84 bskr84 is offline
 
Join Date: Aug 2010
Posts: 38
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
DONE!Total users created: 0 & Skipped: 100
this script for 3.8.8, can someone kown?
Reply With Quote
  #163  
Old 10-26-2016, 05:12 PM
kenny83 kenny83 is offline
 
Join Date: Oct 2016
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by scott8539 View Post
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";
	}
	

?>
OMFG THANK YOU!!!!!!! I didn't require your entire bb_add_user.php, but just the three require_once calls. If the original creator of this thread had just included these three simple lines it would have saved me hours of banging my head against a brick wall. You are the man!!!
Reply With Quote
  #164  
Old 07-19-2017, 03:07 PM
Medi0cr3 Medi0cr3 is offline
 
Join Date: Aug 2014
Posts: 27
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Does this still work for Vbulletin 4.2.5????? I am having ZERO luck with this. I also have modified THIS_SCRIPT .php file to reflect my php file.

Quote:
Originally Posted by dilios View Post
Vbulletin 4.x user registration version:
Code:
define('THIS_SCRIPT', 'reguser.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);
$pass1 = $_REQUEST["pw1"];
$pass2 = $_REQUEST["pw2"];
if ($pass1 == $pass2)
	$passwd = $pass1;
else
	exit;
$userdm->set('username', $_REQUEST["user"]);
$userdm->set('email', $_REQUEST["email"]);
$userdm->set('password', $passwd);
$userdm->set('usergroupid',2);
 
#If there are errors (eMail not set, eMail banned, Username taken, etc.) you can check for errors using
if (count($userdm->errors))
{
	echo "<pre>";
	var_dump($userdm->errors);
	echo "</pre>";
} else {
	# If everything is OK
	$newuserid = $userdm->save();
	echo $newuserid."<br>Done.";
}
Reply With Quote
Reply

Thread Tools

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 09:34 AM.


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.04664 seconds
  • Memory Usage 2,244KB
  • Queries Executed 18 (?)
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
  • (2)bbcode_code
  • (5)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (3)postbit
  • (4)postbit_onlinestatus
  • (4)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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete