vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=187)
-   -   Add new Users (automatically) (https://vborg.vbsupport.ru/showthread.php?t=82836)

akanevsky 11-03-2005 09:48 PM

You shouldn't use CURL, as vBulletin data managers have data verifiers of their own. Just supply the raw values...

scott8539 11-03-2005 09:53 PM

Quote:

Originally Posted by Dark Visor
You shouldn't use CURL, as vBulletin data managers have data verifiers of their own. Just supply the raw values...

I am not sure what you mean by supplying the raw values...that is pretty much what I am doing with cURL. What would be another way of supplying the values?

Wayne Luke 11-03-2005 10:11 PM

Can anyone write a proof of concept on how this would be done? I mean a complete file that would accept POST values from another page, instantiate the manager and create the user?

akanevsky 11-03-2005 10:53 PM

Of course. Except the official vB documentation provides all the information of this matter... At least about using GPC for POST values....

J75595E3F40B 11-04-2005 02:08 PM

i got a script working that does the same thing, and i noticed one thing..... that script must be in the same directory as global.php

Dark_Wizard 11-05-2005 10:07 AM

Quote:

Originally Posted by J75595E3F40B
i got a script working that does the same thing, and i noticed one thing..... that script must be in the same directory as global.php


Uhmm...incorrect. Try this piece from Dark Visor here about outside of vBulletin pages -> Using vBulletin-powered scripts outside vBulletin Directory.

Connector 12-27-2005 07:54 PM

Quote:

Originally Posted by scott8539
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";
        }
       

?>



could someone please tell me how could we use this code ? i try it and give me error :devious:

scott8539 12-27-2005 08:09 PM

Quote:

Originally Posted by Connector
could someone please tell me how could we use this code ? i try it and give me error :devious:

Geez, that was a long time ago and I have taken a completely different approach to it.

I do have my own way of creating a vB account from an external site. In fact, I just went live with it today.

forum.bodybuilding.com

If you click the register link, you will be redirected to a register script on a different site (my.bodybuilding.com -- different subdomain). There you enter your user information and submit. A new user is created in my Membership System, then the user is created in vBulletin.

The register, login/logoff, activation, recover lost password, edit email & password, etc, are are handled in my separate Membership System, pushing the results to vBulletin.

macks 12-29-2005 03:21 AM

I am in the process of writing a user signup integration script. My forum runs on a separate server from my main site. I am going to need to write hooks in quite a few places. I've compiled a list of the spots where I will need to have remote vB hooks.

Initial user signup:
Add the user, put them in the email confirmation group. (my site sends a confirmation email).

Confirmation:
When the user clicks the link in the confirmation email.

Password and email changes:
When the user wants to change their email or password.

This will all need to be done from a remote server so I too will most likely be using cURL. Obviously I want to keep these changes in sync. It isn't fully clear to me if it would be easier to write a plugin with change password/email hooks that will update my system or if I should just deny these changes from the vBulletin side and change the permission denied template to point to the proper place on my site.

Once I've hammered through the few remaining issues, I will post my results and code here.

Quote:

Originally Posted by scott8539
Geez, that was a long time ago and I have taken a completely different approach to it.

I do have my own way of creating a vB account from an external site. In fact, I just went live with it today.

forum.bodybuilding.com

If you click the register link, you will be redirected to a register script on a different site (my.bodybuilding.com -- different subdomain). There you enter your user information and submit. A new user is created in my Membership System, then the user is created in vBulletin.

The register, login/logoff, activation, recover lost password, edit email & password, etc, are are handled in my separate Membership System, pushing the results to vBulletin.

Woops, just read your post and you seem to be describing everything I just mentioned. Care to give the rest of an idea of how long it took?

Connector 12-29-2005 12:21 PM

Could someone put basic code how to do this ?


All times are GMT. The time now is 02:52 PM.

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.01310 seconds
  • Memory Usage 1,754KB
  • 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_code_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete