phpBB-Username und Passwort für eigenes Script verwenden.

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.
dieter99
Mitglied
Beiträge: 430
Registriert: 07.04.2005 20:09

phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von dieter99 »

Hallo,
ich habe ein eigenes PHP-Script geschrieben und möchte die Authentifizierung von phpBB3 nutzen. Die Datei test.php, welche im Hauptverzeichnis von phpBB liegt, darf nur aufgerufen werden, wenn sich im phpBB Forum der User X eingeloggt hat.

Zunächst habe ich in der Datei test.php folgenden Code eingebunden:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
Testweise habe ich diese Abfrage noch eingefügt:

Code: Alles auswählen

if ($user->data['user_id'] == ANONYMOUS)
{
   echo 'Please login!';
}

else
{
   echo 'Thanks for logging in, ' . $user->data['username_clean'];
}
Als Ergebnis bekomme ich IMMER 'Please login', obwohl ich im phpBB3 Forum eingeloggt bin (das Forum wird unter localhost ausgeführt, die Datei test.php liegt im Hauptverzeichnis von phpBB).

Warum erkennt das Script unter test.php nicht, dass ein User eingeloggt ist???
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von Dr.Death »

Hi,

baue die Prüfung mal wie folgt ein:

Quelle: [Snippet] Externer Login / Logout für phpBB3

Code: Alles auswählen

if ($user->data['is_registered'])
{
    // Hier steht der Code für ein erfolgreich eingeloggter User
    echo "Du bist angemeldet.<br /><br />";
    
    //Optionaler Code zum Ausloggen. 
    //Es ist wichtig, das die Session ID mit der Funktion append_sid() uebergeben wird.
    echo 'Zum Abmelden <a href="'. append_sid("{$phpbb_root_path}login.$phpEx", "mode=logout") . '">hier</a> klicken';
}
else
{
    //Wenn Du hier landest bist Du nicht eingeloggt.
    echo "Du bist abgemeldet<br /><br />";
} 
dieter99
Mitglied
Beiträge: 430
Registriert: 07.04.2005 20:09

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von dieter99 »

Ich habe den Fehler gefunden. In der externen Datei test.php muss per URL noch die sid übergeben werden, sonst funktioniert der SESSION-Zugriff nicht.
Warum wird die sid eigentlich in der URL gespeichert? Besteht da nicht ein gewissenes Sicherheitsrisiko (wenn jemand die id abschreibt - bei Arbeitsplätzen die von mehreren Personen genutzt werden)?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von Dr.Death »

Wenn die Cookie Einstellungen korrekt ist, wird keine SID übergeben. Denn dann wird die SID aus dem Cookie gezogen.
dieter99
Mitglied
Beiträge: 430
Registriert: 07.04.2005 20:09

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von dieter99 »

Dr.Death hat geschrieben:Wenn die Cookie Einstellungen korrekt ist, wird keine SID übergeben. Denn dann wird die SID aus dem Cookie gezogen.
Komisch, bei mir wird immer eine SID über die URL übergeben (egal ob ich das Forum auf dem Server oder lokal aufrufe). Der Test wurde mit Firefox und Internet Explorer 8 durchgeführt. Welche Cookie-Einstellungen meinst du, Dr. Death?

PS: im ACP unter Cookies stehen folgende Parameter:

Cookie-Domain: .meinedomain.de
Cookie-Name: phpbb3_s3imy
Cookie-Pfad: /
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von Pyramide »

Bei Cookie-Domain muss deine richtige Domain stehen und nicht ".meinedomain.de" (alternativ leer lassen, dann sollte es auch funktionieren).
KB:knigge
dieter99
Mitglied
Beiträge: 430
Registriert: 07.04.2005 20:09

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von dieter99 »

Pyramide hat geschrieben:Bei Cookie-Domain muss deine richtige Domain stehen und nicht ".meinedomain.de" (alternativ leer lassen, dann sollte es auch funktionieren).
Mit "meinedomain.de" meine ich die Domain meines Forums. Selbst wenn ich das Feld leer lasse, steht in der URL immer die SID.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von Pyramide »

Naja, wenn du uns die wirklichen Daten nicht nennen willst, können wir auch nicht nachprüfen, ob diese richtig sind. Dann bleibt als Antwort für dich nur noch "entweder du hast falsche Daten eingetragen oder du hast die Sessionverwaltung von deinem phpBB kaputtgemacht".
KB:knigge
dieter99
Mitglied
Beiträge: 430
Registriert: 07.04.2005 20:09

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von dieter99 »

Da ich zur Zeit auf localhost arbeite, habe ich folgende Einstellungen getätigt:

Cookie-Domain: localhost (ist identisch mit dem Parameter server_name)
Cookie-Name: phpbb3_s3imy
Cookie-Pfad: /

Wenn ich das Feld Cookie-Domain komplett leer lasse, dann ändert sich auch nichts. Bei mir wird immer in der URL die SID angezeigt.
Wenn ich die Einstellungen verändert habe, dann habe ich anschließend immer die alten Cookies gelöscht. Der Test läuft immer unter zwei Browsern (Firefox und IE8).

Ich verstehe es einfach nicht, dass in der URL IMMER die SID angezeigt wird.

Wie wichtig sind die Parameter Cookie-Name und Cookie-Pfad? Muss ich vielleicht hier etwas anders eintragen????
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: phpBB-Username und Passwort für eigenes Script verwenden.

Beitrag von Dr.Death »

Bei "localhost" Installationen kann es schon mal helfen, indem man anstelle von localhost die echte IP Adresse angibt.

Beispiel ( Bitte die angegebene IP Adresse mit der eigenen IP Adresse ersetzen )
Server Domain: 192.168.1.50
Cookie Domain: 192.168.1.50
Antworten

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