ich weiß das viele diesen Beitrag mit dem Gedanken "schon wieder!!" öffnen werden und danke euch dafür, das ihr euch dem trotzdem annehmt.
Ich habe schon "einige" Beiträge zu diesem Thema gelesen und auch einiges umgesetzt, dabei ist folgendes rausgekommen:
Meine phpBB-version ist 3.0.4.
Ich habe eine externe Registrierung, die auch schon wunderbar funktioniert.
Nutzern wird beim Aufruf der Seite mit dem im iframe eingebetteten Forum eine Zeile in der MySQL-Tabelle "phpbbForum_sessions" erstellt.
Problem:
Trotz der Zeile in "phpbbForum_sessions" gilt der Benutzer danach im Forum nicht als eingeloggt.
Was ich will:
Ich habe in eine Site, auf der schon ein Benutzermanagement existiert, das phpBB-Forum per iframe eingebunden.
Damit Nutzer sich nicht zweimal registrieren müssen und sich nicht immer zweimal einloggen müssen, soll dies automatisch gehen.
Mithilfe dieser Funktionen werden Nutzer registriert:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
function createSqlDataArray($username, $password, $email)
{
$username_clean = strtolower($username);
if ($username_clean == FALSE)
echo 'FALSE';
$sql_ary = array(
'username' => $username,
'user_regdate' => time(),
'username_clean' => $username_clean,
'user_password' => $password,
'user_passchg' => time(),
'user_email' => strtolower($email),
'user_email_hash' => crc32(strtolower($email)) . strlen($email),
'group_id' => 2,
'user_dateformat' => 'D M d, Y g:i a',
'user_lang' => 'de_x_sie',
'user_style' => 1,
'user_form_salt' => unique_id_own($username, $password, $email),
);
return $sql_ary;
}
function unique_id_own()
{
substr(md5($username.time()),4 ,16);
}
function createSQL($sql_ary)
{
$sqlString='INSERT INTO `usr_web802_2`.`phpbbForum_users`
(
`group_id`,
`user_ip`,
`user_regdate`,
`username`,
`username_clean`,
`user_password`,
`user_passchg`,
`user_email`,
`user_email_hash`,
`user_lang`,
`user_style`,
`user_dateformat`,
`user_form_salt`
)
VALUES(
'.$sql_ary['group_id'].',
"127.0.0.1",
"'.$sql_ary['user_regdate'].'",
"'.$sql_ary['username'].'",
"'.$sql_ary['username_clean'].'",
"'.$sql_ary['user_password'].'",
"'.$sql_ary['user_passchg'].'",
"'.$sql_ary['user_email'].'",
"'.$sql_ary['user_email_hash'].'",
"'.$sql_ary['user_lang'].'",
"'.$sql_ary['user_style'].'",
"'.$sql_ary['user_dateformat'].'",
"'.$sql_ary['user_form_salt'].'"
);';
return $sqlString;
}
function getGroupSQL($userId)
{
return `usr_web802_2`.'INSERT INTO phpbbForum_user_group (group_id, user_id, group_leader, user_pending) VALUES(2, '.$userId.',0,0);';
}
(Die Variablen $loginName und $pw wurden vorher definiert)
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../forum/phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require('../forum/phpBB3/common.php');
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
// Einloggen
$password = $pw;
$autologin = true;
$viewonline = 1;
$success = ($auth->login($loginName, $password, $autologin, $viewonline));
session_id : 29bde85f47501801089d13cbcd80b258
session_user_id : 1
session_forum_id : 0
session_last_visit : 1256310510
session_start : 1256310510
session_time : 1256310510
session_ip : 127.0.0.1
session_browser : Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.4) G...
session_forwarded_for :
session_page : index.php
session_viewonline : 1
session_autologin : 0
session_admin : 0
Ich hoffe ich habe nichts vergessen

Vielen Dank schonmal im Voraus,
d-nono
EDIT: Tut mit leid das ich erst im falschen Forum war. Habe noch etwas bemerkt: phpBB zeigt an, dass ein registrierter Nutzer online ist, nachdem ich mich angemeldet habe. Aber die Funktionen kann ich trotzdem nicht nutzen, und es steht immer noch "Anmelden" / "Registrieren" da.