vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Unusual issue with user registration. (https://vborg.vbsupport.ru/showthread.php?t=280733)

badran 03-27-2012 04:36 PM

Unusual issue with user registration.
 
I have a script that creats a new Board username, please see code below.


The issue is that I am getting the usernametaken error, this even happens on usernames that are not taken and that meet all requirements.

The strangest thing is that an account actually does get registered eventhough $userdm->save(); does not get called.

Any help would be appretiated.



vBulletin Version 3.8.4

PHP Code:

<?php



function qpc_post($varname)
{
    return 
trim(stripslashes((get_magic_quotes_gpc()) ? $_POST[$varname] : addslashes($_POST[$varname])));
}

define('THIS_SCRIPT''AddSBUser.php');

chdir('/path/to/board/'); 

require_once(
'./global.php');
require_once(
'./includes/class_dm.php');
require_once(
'./includes/class_dm_user.php');

$userdm = new vB_DataManager_User($vbulletinERRTYPE_ARRAY);

$userdm->set('username'qpc_post('username'));
$userdm->set('email'qpc_post('email'));
$userdm->set('password'qpc_post('password'));
$userdm->set('ipaddress'qpc_post('ipaddress'));

$userdm->set('usergroupid'2); //Registered users have a groupid of 2.
$userdm->set_bitfield('options''adminemail'1);

$ReturnString '';

if (
count($userdm->errors))
{
    for (
$i 0$i count($userdm->errors); $i++)
    {
        
$ReturnString .= "<li>ERROR {$i}:{$userdm->errors[$i]}</li>";
    }
    
    unset(
$userdm);
}
else
{
    
# If everything is OK save the data.
    
$newuserid $userdm->save();
    
$ReturnString .= "<li>Account Created.</li>";
}

echo 
$ReturnString;


kh99 03-27-2012 06:24 PM

I tried your script and it seems to work. I just get a message that says "Account Created". What you describe kind of sounds like what would happen if it were somehow getting submitted twice with the same info (and as you pointed out, there's really no way for a user to be created if you never call save() )..

vbenhancer 03-27-2012 11:00 PM

where this script is it called?! because if it is called inside the registration process, you forgot a return or something, and the process of reading that new username is followed by the official code that register it...

badran 03-28-2012 06:14 AM

Thank you for your help.

The issue has been resolved. Due to a merging issue on the calling script curl_exec was being called twice.

I should have been more careful with my initial review of the code.


All times are GMT. The time now is 09:24 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01084 seconds
  • Memory Usage 1,729KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (4)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete