Fatal error in php_b_b3.php

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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.
Antworten
me2phpBB
Mitglied
Beiträge: 2
Registriert: 31.12.2009 12:24

Fatal error in php_b_b3.php

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Fatal error in php_b_b3.php

Beitrag 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.
KB:knigge
me2phpBB
Mitglied
Beiträge: 2
Registriert: 31.12.2009 12:24

Re: Fatal error in php_b_b3.php

Beitrag 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!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Fatal error in php_b_b3.php

Beitrag von Pyramide »

Dann wird wohl die Funktion PhpBB3Component::startup nicht aufgerufen...
KB:knigge
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“