Externes Login MOD

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.
Daniel0108
Mitglied
Beiträge: 14
Registriert: 10.07.2009 15:37

Externes Login MOD

Beitrag von Daniel0108 »

Ich bin gerade dabei einen Mod für ein externes Login zu basteln...
Ich habe jetzt gerade diesen Code:

Code: Alles auswählen

<?php
session_start();
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../Forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
$session = session_id();
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$connection = mysql_connect('localhost','user,'geheim') or die("Keine Verbindung zum Server."); 
mysql_select_db('database') or die("Keine Verbindung zur Datenbank."); 

function login ($user, $pass) {

	$autologin = false;
	$viewonline = 1;
	$username = $user;
	$password = $pass;
	$username     = request_var('username', '', true);
	$password     = request_var('password', '', true);
	$autologin    = (!empty($_POST['autologin'])) ? true : false;
	$viewonline = (!empty($_POST['viewonline'])) ? 0 : 1;
	if (isset($username) && isset($password))
	{
	        $auth->login($username, $password, $autologin, $viewonline);
	}
 	else {
	echo 'Benutzername oder Passwort falsch!';
	}
}
?>
Wenn ich durch nun die funktion durch ein Formular ausgeben lasse, kommt dieser Fehler:

Code: Alles auswählen

Fatal error: Call to a member function on a non-object
Ich weiß es liegt daran das die funktion $auth nicht verfügbar ist. aber wie greife ich sonst auf das Forum zu?
PS.: Das Forum liegt hier "Server/Forum" und das Script hier "Server/Mods/".

Hoffentlich könnt ihr mir helfen.
Ich weiß echt nicht weiter, da ich mich nicht so gut mit phpbb-Modding auskenne und das eigentlich mein erster Mod ist.
LG
Daniel0108
HJW
Mitglied
Beiträge: 1298
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Externes Login MOD

Beitrag von HJW »

Daniel0108
Mitglied
Beiträge: 14
Registriert: 10.07.2009 15:37

Re: Externes Login MOD

Beitrag von Daniel0108 »

So ein ähnliches Script hab ich doch schon...
Trotzdem danke aber ich brauche ja hilfe bei meinem script...

übrigens, es liegt daran das er die common.php irgendwie nicht richtig einliest. aber das erste

Code: Alles auswählen

$auth->acl($user->data);
geht, nur dann das

Code: Alles auswählen

$auth->login($username, $password, $autologin, $viewonline);
gibt einen Fehler aus. es könnte daran liegen das er das login nicht findet oder so :-?
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Externes Login MOD

Beitrag von Metzle »

Hallo,

spiel doch mal hiermit

Code: Alles auswählen

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../Forum/';
ein wenig rum.

Ändere doch vielleicht mal um in

Code: Alles auswählen

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './Forum/';
Wie su selbst auch schon gesagt hast, glaube ich, dass die common.php nicht korrekt eingebunden bzw. gefunden wird.
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
Daniel0108
Mitglied
Beiträge: 14
Registriert: 10.07.2009 15:37

Re: Externes Login MOD

Beitrag von Daniel0108 »

Ja hab ich schon längst probiert.
Deine Idee mit ./Forum/ hab ich dabei auch schon probiert aber bei einer Änderung kommt immer:

Code: Alles auswählen

Fatal error: main() [function.require]: Failed opening required './Forum/common.php' (include_path='./:/usr/local/lib/php')
Heißt das es nicht eingebunden werden konnte.

Also ich habe echt keine Ahnung mehr was ich sonst machen könnte. vielleicht irgendwas mit dem $auth, das komische ist ja, das

Code: Alles auswählen

$auth->acl($user->data);
funktioniert, aber

Code: Alles auswählen

$auth->login($username, $password, $autologin, $viewonline);
nicht. Ich denke mal das es was mit dem $auth->login zu tun hat.
Die Funktion umbennen, da $auth->login() den gleichen Namen hat, hat auch nichts gebracht.
PS.: Vielleicht kann die common.php, die auth.php nicht richtig einbinden(da nur die Funktion der auth.php nicht aufgerufen werden kann).
Edit: Außer bei ./../Forum/ das gibt wieder:

Code: Alles auswählen

Fatal error: Call to a member function on a non-object
.
lg
Daniel
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Externes Login MOD

Beitrag von Metzle »

Hallo,

und wie ist es, wenn du mal spasseshalber und einfach ins Blaue geschossen die auth.php noch zusätzlich einbindest?

Code: Alles auswählen

require($phpbb_root_path . 'includes/auth.' . $phpEx);
Ne andere Möglichkeit, ich weiß ja nicht, ob das von dir aus gehen würde, das Skript einfach im Forenverzeichnis laufen zu lassen?
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
Daniel0108
Mitglied
Beiträge: 14
Registriert: 10.07.2009 15:37

Re: Externes Login MOD

Beitrag von Daniel0108 »

Metzle hat geschrieben:Hallo,

und wie ist es, wenn du mal spasseshalber und einfach ins Blaue geschossen die auth.php noch zusätzlich einbindest?

Code: Alles auswählen

require($phpbb_root_path . 'includes/auth.' . $phpEx);
Ne andere Möglichkeit, ich weiß ja nicht, ob das von dir aus gehen würde, das Skript einfach im Forenverzeichnis laufen zu lassen?
ja das mit dem Forenverzeichnis hab ich mir auch schon gedacht. Nur leider geht das nicht, da die scripts da drin sind und ich das ganze durch eine include.php aufrufen lasse(die Funktionen), wenn ich nun die login.php verschiebe, muss ich auch die include.php verschieben und dann funktionieren die anderen scripts nicht, bzw wenn ich was ändere muss ich dies immer doppelt machen. FAZIT: Es muss in dem Ordner sein...
werds mal mit auth requiren probieren ;)
EDIT: Ergebnis:

Code: Alles auswählen

 Fatal error: Cannot redeclare class auth in 
Wenn ich auth include.
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Externes Login MOD

Beitrag von Metzle »

Hallo,

eine Möglichkeit habe ich noch, dann bin ich ratlos ;)

Code: Alles auswählen

require once($phpbb_root_path . 'includes/auth.' . $phpEx);
Wenn das nicht klappt, dann bin ich quasi erst mal raus hier :)
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Externes Login MOD

Beitrag von Boecki91 »

require_once ;)

Aber der meckert ja darüber das sie nicht umdeklariert werden kann, heist sie ist schon drin, oder eine andere die genauso heißt.

Das ist jetzt aber nur ein schneller Einwurf, ich weiß nicht woran es genau liegt.

Hast du irgendwelche Zeilen-Nummern angegeben bekommen oder wie kommst du auf die auth?
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Externes Login MOD

Beitrag von Metzle »

Boecki91 hat geschrieben:require_once ;)
Danke für die Verbesserung...Aufm Nachtdienst rutscht einem schon mal nen _ durch, wenns schnell gehen muss mim Tippen :)

Korrekt lautet es dann also so:

Code: Alles auswählen

require_once($phpbb_root_path . 'includes/auth.' . $phpEx);
Achso, meintest du mich mit deiner Frage, Boecki? Wenn ja, ich komm drauf, weil der Threadersteller drauf gekommen ist und es sollte nur nen schneller Versuch sein, weil die

Code: Alles auswählen

$auth->login
Zeile immer angemeckert wurde ;)
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
Antworten

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