View Single Post
  #5  
Old 10-04-2010, 04:30 PM
lleidr lleidr is offline
 
Join Date: Aug 2006
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I created a small little api and put in the root forum directory:

Code:
<?
if($_POST['_mySpecialSafeKey_'] == 'omgsospecial!')
{
	# Add a user to vBulletin (offline)
	define('THIS_SCRIPT', 'vbCreateUserApi.php');
	require_once('./global.php');
	require_once('./includes/class_dm.php');
	require_once('./includes/class_dm_user.php');

	$userdata =& datamanager_init('User', $vbulletin, ERRTYPE_ARRAY); 
	
	$vbulletin->input->clean_array_gpc('p', array(
		'user' => TYPE_STR,
		'email' => TYPE_STR,
		'ip' => TYPE_STR,
		'password' => TYPE_STR 
	));
	
	$userdata->set('username',  $vbulletin->GPC['user']);
	$userdata->set('email',  $vbulletin->GPC['email']);
	$userdata->set('password',  $vbulletin->GPC['password']);
	$userdata->set('usergroupid', 2);
	$userdata->set('ipaddress',  $vbulletin->GPC['ip']);
	$userdata->set('showvbcode', '1');
	$userdata->set('showbirthday', '0');
	$userdata->set('usertitle', 'Member');
	$userdata->set('reputationlevelid', '5');
	$userdata->set('languageid', '1');
	$userdata->set('timezoneoffset', '-5');
	
	if($vbulletin->GPC['referrername'] AND !$vbulletin->userinfo['userid']){
		$userdata->set('referrerid', $vbulletin->GPC['referrername']);
	} 
	
	$userdata->pre_save(); 

	// check for errors
	if(!empty($userdata->errors)){
		$arr = array('success'=>0,'errors'=>$userdata->errors);
		echo json_encode($arr);
	}
	else
	{
		// save the data
		$vbulletin->userinfo['userid']
			= $userid
			= $userdata->save();
		$arr = array('success'=>1,'errors'=>$userdata->errors,'userid'=>$userid);
		echo json_encode($arr);
	}
}
else{
	echo json_encode(array('success'=>0,'errors'=>array('auth failed')));
}
?>
I then call this via curl post from another page with this code:

Code:
		$ch = curl_init(); /// initialize a cURL session
        curl_setopt($ch, CURLOPT_URL, 'http://'.$domain.'/vbCreateUserApi.php');
		curl_setopt($ch, CURLOPT_POST, 1); 
		curl_setopt($ch, CURLOPT_POSTFIELDS, "_mySpecialSafeKey_=omgsospecial!&user=$forum_username&email=$email_address&password=$password&ip=".$_SERVER['REMOTE_ADDR']);
		curl_setopt($ch, CURLOPT_TIMEOUT, '60');
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$cUrlResponse = curl_exec($ch);
		$httpResponseArr = curl_getinfo($ch);
		curl_close($ch);
See references:
https://vborg.vbsupport.ru/showthrea...manager&page=2
http://www.vbulletin.com/docs/html/d...er_programming
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01072 seconds
  • Memory Usage 1,768KB
  • 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
  • (2)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