Seite 1 von 1

Fatal error in php_b_b3.php

Verfasst: 31.12.2009 12:49
von me2phpBB
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

Re: Fatal error in php_b_b3.php

Verfasst: 31.12.2009 18:23
von Pyramide
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.

Re: Fatal error in php_b_b3.php

Verfasst: 02.01.2010 16:05
von me2phpBB

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

Verfasst: 02.01.2010 17:49
von Pyramide
Dann wird wohl die Funktion PhpBB3Component::startup nicht aufgerufen...