Hallo zusammen,
versuche phpBB (v3.0.4) in meine bestehende Application (cakePHP 5) zu integrieren.
In den Controllern users_controller.php und app_controller.php habe ich angewiesen, dass automatisch ein Login erfolgen soll, wenn der User schon existiert, ansonsten soll zum Registrieren weitergeleitet werden.
Code: users_controller.php
-------------------------------
// Forum login
// Login if user exist, register if user not yet registered on forum database (automatically)
if(Configure::read('App.phpBB3')){
$this->PhpBB3->login($this->Auth->user('username'), $this->Auth->user('key'), $this->Auth->user('email'));
}
Code: app_controller.php
-----------------------------
// Check if user has a remember me cookie
if(!$this->Auth->user()) {
if($id = $this->Cookie->read('User.id')) {
$user = $this->User->find('first', array('conditions' => array('User.id' => $id), 'contain' => ''));
if($this->Auth->login($user)) {
if(Configure::read('App.phpBB3')){
$this->PhpBB3->login($user['User']['username'], $user['User']['key'], $user['User']['email']);
}
$this->Session->del('Message.Auth');
} else {
$this->Cookie->del('User.id');
}
}
}
Code: php_b_b3.php
-------------------------
<?php
class PhpBB3Component extends Object {
var $controller;
var $model;
function startup(&$controller) {
$this->controller = &$controller;
define('IN_PHPBB', true);
global $phpbb_root_path, $phpEx, $db, $config, $user, $auth, $cache, $template;
$phpbb_root_path = WWW_ROOT . 'phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require_once($phpbb_root_path . 'common.' . $phpEx);
$this->table_prefix = $table_prefix;
$this->auth = $auth;
$this->user = $user;
// Start session management
$this->user->session_begin();
$this->auth->acl($user->data);
$this->user->setup();
require_once($phpbb_root_path .'includes/functions_user.php');
}
private function checkUserExists($username, $isFalse = false) {
if (user_get_id_name($isFalse, $username) == 'NO_USERS') {
return false;
} else {
return true;
}
}
// Helper Methods
Wenn ich nun als schon angemeldeter User das Form phpBB3 aufrufe, wird trotzdem zum Login/Register aufgefordert. Gebe ich dort nochmals meine User-Login-Daten ein, erfolgt folgende Fehlermeldung:
Fatal error: Call to undefined function user_get_id_name() in .../controllers/components/php_b_b3.php on line 33
LINE 33: if (user_get_id_name($isFalse, $username) == 'NO_USERS') {
...
Für einen helfenden Tipp bin ich sehr dankbar.
Einen guten Rutsch ins neue Jahrzehnt wünscht
me2phpBB
Fatal error in php_b_b3.php
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Re: Fatal error in php_b_b3.php
Wenn du
Code: Alles auswählen
Tags benutzen würdest, dann kann man deinen Beitrag besser lesen. Ansonsten solltest du auf phpBB 3.0.6 aktualisieren, da dort sehr viele Bugs behoben wurden.
Zum Problem: Wenn die Funktion user_get_id_name nicht gefunden wird, wurde wohl die zugehörige Datei (includes/functions_user.php) nicht eingebunden.
KB:knigge
Re: Fatal error in php_b_b3.php
Code: Alles auswählen
<?php
class PhpBB3Component extends Object {
var $controller;
var $model;
function startup(&$controller) {
$this->controller = &$controller;
define('IN_PHPBB', true);
global $phpbb_root_path, $phpEx, $db, $config, $user, $auth, $cache, $template;
$phpbb_root_path = WWW_ROOT . 'phpBB3/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require_once($phpbb_root_path . 'common.' . $phpEx);
$this->table_prefix = $table_prefix;
$this->auth = $auth;
$this->user = $user;
// Start session management
$this->user->session_begin();
$this->auth->acl($user->data);
$this->user->setup();
require_once($phpbb_root_path .'includes/functions_user.php');
}
private function checkUserExists($username, $isFalse = false) {
if (user_get_id_name($isFalse, $username) == 'NO_USERS') {
return false;
} else {
return true;
}
}
// Helper Methods
Danke für die Response.
Bin bisher nicht weiter gekommen, obwohl ich meine, dass mit der Anweisung require_once($phpbb_root_path .'includes/functions_user.php'); in LINE 28 die Datei functions_user.php korrekt eingebunden sein müsste.
Vielleicht hat noch jemand eine Idee...
Danke!
Re: Fatal error in php_b_b3.php
Dann wird wohl die Funktion PhpBB3Component::startup nicht aufgerufen...
KB:knigge