Page 1 of 1

External Login for phpBB

Posted: Mon Jun 18, 2012 7:24 pm
by SicX
Hey :)
It's me again! ;-) I'm working on an external login /(atm. mainly) register formular for phpBB. A functional register script looks like this:
$user->setup();

    /* globale variablen setzen */
    global $phpbb_root_path;
    global $phpEx;
    global $db;
    global $config;
    global $user;
    global $auth;
    global $cache;
    global $template;


    /* Datei inkludieren die die benoetigten Funktionen beinhaltet */
    require($phpbb_root_path .'includes/functions_user.php');

    
    
    /* Daten in array schreiben */
    $user_row = array(
    'username' => 'testingo',
    'user_password' => md5('testingo'), 
    'user_email' => 'testing@example.com',
    'group_id' => '2',
    'user_timezone' => '1.00',
    'user_dst' => '0',
    'user_lang' => 'de',
    'user_type' => '0',
    'user_actkey' => '',
    'user_dateformat' => 'd M Y H:i',
    'user_style' => '1',
    'user_regdate' => time(),
    );

    /* User anlegen */
    if($phpbb_user_id = user_add($user_row)){
    echo "okay";
    }
    else
    {
    echo "nicht O.K!";
    }
   ?>
Now I want to add another file with forms to fill this out. My problem is:
How do I get the vars. from the form to this file? Would it work with, for example:
$user_row = array(
    'username' => '$_POST[$username]',
(with or without the > ' < ?)

or

say:
$_POST[$username] = $username;

$user_row = array(
    'username' => '$username',
The idea behind that is, that users of my homepage just have to register one time :)
Hope you can help me!

SicX (:

Re: External Login for phpBB

Posted: Mon Jun 18, 2012 7:33 pm
by Temor
it should work without the semi-quotes ( ' ).

Re: External Login for phpBB

Posted: Mon Jun 18, 2012 7:39 pm
by SicX
Hmm, doesn't seem to work!
Always says: "Nicht O.K!" (= failture ;-))
Any idea what I've made wrong?

Re: External Login for phpBB

Posted: Mon Jun 18, 2012 8:32 pm
by Temor
Well, it's most likely because of this part right here.
<?php
 if($phpbb_user_id = user_add($user_row)){
    echo "okay";
    }
    else
    {
    echo "nicht O.K!";
    }
What is the value of $phpbb_user_id and what does user_add do exactly?

This will always return "nicht O.K" if the user_add function does not return the same value as $phpbb_user_id.

Re: External Login for phpBB

Posted: Tue Jun 19, 2012 1:28 pm
by SicX
This script was published on the original phpBB forum from a user. The Script works, I've tested it by opening it directy (www.domain.de/test.php). And it adds the User which I want to. The only prob. is, to fill this file out with the forms!

Re: External Login for phpBB

Posted: Tue Jun 19, 2012 6:42 pm
by Temor
Oh, I just noticed a typo.
$_POST[$username] = $username;
You're not supposed to define a variable inside the $_POST variable, and also, you're assigning an empty variable ( $username ) to the $_POST variable. That should be the other way around.

It's supposed to be
$username = $_POST['username'];

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 2:53 pm
by SicX
Hey,
sorry for this late reply, got a lot of work to do :-/

Well if changed it as you said but it doesn't changed anything!
If I'm using the ' ' the username, password and email will always be the variables (=> username: $username | password: $password | email: $email), but if i'm not using the ' ' the script won't work! :(

Is there any stupid mistake I don't see?
<?php     
    // Funktionen von PHPBB3 holen
define('IN_PHPBB', true);
$phpbb_root_path = './'; // PHPBB3 root ordner
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Sessionsverwaltung starten
$user->session_begin();
$auth->acl($user->data);
$user->setup();

    /* globale variablen setzen */
    global $phpbb_root_path;
    global $phpEx;
    global $db;
    global $config;
    global $user;
    global $auth;
    global $cache;
    global $template;


    /* Datei inkludieren die die benoetigten Funktionen beinhaltet */
    require($phpbb_root_path .'includes/functions_user.php');

    $username = $_POST['username'];
    $passwort = $_POST['password'];
    $email = $_POST['email'];
    
    /* Daten in array schreiben */
    $user_row = array(
    'username' => $username,
    'user_password' => md5($password), 
    'user_email' => $email,
    'group_id' => '2',
    'user_timezone' => '1.00',
    'user_dst' => '0',
    'user_lang' => 'de',
    'user_type' => '0',
    'user_actkey' => '',
    'user_dateformat' => 'd M Y H:i',
    'user_style' => '1',
    'user_regdate' => time(),
    );

    /* User anlegen */
    if($phpbb_user_id = user_add($user_row)){
    echo "okay";
    }
    else
    {
    echo "nicht O.K!";
    }
?>

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 3:27 pm
by Temor
try removing the last trailing comma.
after this line:
 'user_regdate' => time() 
A comma is an indication that there will be another row, but there isn't one.

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 3:40 pm
by SicX
Hey,
removing the trailing comma has no effekt on the script, it just prints: "nicht O.K!"

I don't get it ... normaly it should work!

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 4:41 pm
by Temor
You misspelled password.
 $passwort = $_POST['password'];
not sure if that would cause it to fail though. If that doesn't fix it, try printing the array.
print_r($user_row);

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 8:04 pm
by SicX
Ups :P
Well doesn't seem to work!
Array:
Array ( [username] => [user_password] => d41d8cd98f00b204e9800998ecf8427e [user_email] => [group_id] => 2 [user_timezone] => 1.00 [user_dst] => 0 [user_lang] => de [user_type] => 0 [user_actkey] => [user_dateformat] => d M Y H:i [user_style] => 1 [user_regdate] => 1341086164 )
Why can't I set username, password and email in this array :@
Are there any codes which don't allow to edit an array or something like this?
Maybe I should check the includes for something like this!

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 8:21 pm
by Temor
Password is being set, is it not?
This:
d41d8cd98f00b204e9800998ecf8427e
looks like an md5 hash to me :)

The only logical explanation now is that $_POST['username'] and $_POST['email'] never get a value. Make sure there's no typo in the field names in your HTML form.

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 8:38 pm
by SicX
aah! I'm sooo stupid!
You're right, there was an typo!
Thats embarrassing! :oops:

Oh come on, why do I allways such little mistakes :(
I'm sorry but I didn't checked it one time cause I thought everything is correct! :?
Thank you for your help :D

SicX :)

Re: External Login for phpBB

Posted: Sat Jun 30, 2012 9:16 pm
by Temor
You're welcome. You're now a little bit more experienced! Next time, you'll check your forms.
Yay to making mistakes! :)