Hello -
vBulletin 3.6.4
I am trying to use the user data manager to add a user to vBulletin from another server via a URL call with POST data. When I call the page below, "remote_register.php", it returns the full login screen and not the expected one-line response.
How do I make the datamanager work without authentication? Or better yet, how can I provide authentication in the post data?
I'm sure that it's one of these includes causing the login to appear as the response, but my PHP is very, very bad. This original code came from this
how-to thread.
Thank you in advance.
- Justin
PHP Code:
<?php
# Add a user to vBulletin (offline)
function qpc_post($varname)
{
return trim(stripslashes((get_magic_quotes_gpc()) ? $_GET[$varname] : addslashes($_GET[$varname])));
}
define('THIS_SCRIPT', 'remote_register.php');
chdir('/path/to/forums');
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',qpc_post('usergroupid'));
$userdm->set('membergroupids',qpc_post('membergroupids'));
/*
$userfields = array('field2' => qpc_post('location'),
'field5' => qpc_post('fullname'),
'field29'=> qpc_post('certificates'));
$userdm->set_userfields($userfields)
*/
$userdm->set_bitfield('options', 'showsignatures', 1);
$userdm->set_bitfield('options', 'showavatars', 1);
$userdm->set_bitfield('options', 'showimages', 1);
$userdm->set_bitfield('options', 'coppauser', 0);
$userdm->set_bitfield('options', 'adminemail', 1);
$userdm->set_bitfield('options', 'showvcard', 0);
$userdm->set_bitfield('options', 'showemail', 0);
$userdm->set_bitfield('options', 'invisible', 0);
$userdm->set_bitfield('options', 'showreputation', 0);
$userdm->set_bitfield('options', 'receivepm', 0);
$userdm->set_bitfield('options', 'emailonpm', 0);
#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";
}
?>
The login page is displayed because the "Unregistered / Not Logged In" group permission for "Can View Forum" was set to "No". Unfortunately, I need it set to no, so that's not quite my solution. Now looking into authenticating in the POST data.
The login page is displayed because the "Unregistered / Not Logged In" group has the permission for "Can View Forum" set to "No."
Unfortunately, I cannot change that permission on my board. So I'm now looking into passing authentication in the POST data.
I love answering my own questions.