Fatal error in php_b_b3.php
Verfasst: 31.12.2009 12:49
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
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