Seite 1 von 2
phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 01.01.2010 13:53
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???
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 01.01.2010 21:46
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 />";
}
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 02.01.2010 09:26
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)?
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 02.01.2010 09:29
von Dr.Death
Wenn die Cookie Einstellungen korrekt ist, wird keine SID übergeben. Denn dann wird die SID aus dem Cookie gezogen.
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 02.01.2010 17:38
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: /
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 02.01.2010 17:51
von Pyramide
Bei Cookie-Domain muss deine richtige Domain stehen und nicht ".meinedomain.de" (alternativ leer lassen, dann sollte es auch funktionieren).
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 02.01.2010 23:32
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.
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 02.01.2010 23:58
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".
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 03.01.2010 09:54
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????
Re: phpBB-Username und Passwort für eigenes Script verwenden.
Verfasst: 03.01.2010 10:06
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