Seite 1 von 1
Externe Seiten von phpBB3 Session abhängig machen
Verfasst: 30.09.2007 14:38
von TheMithrandir
Guten Tag,
Mit Mühe und Not habe ich es jetzt geschafft, mir mittels PHP und MySQL einen Chat zu programmieren. Dieser ist noch ohne jeglichen Schutz gegen Gäste.
Nun würde ich diesen gerne an mein phpBB3 Forum 'anschließen'.
Nun zu meiner Frage:
Wie schaffe ich es, dass nur diejenigen in den Chat kommen, die in meinem Forum registriert sind?
Folgende Überlegungen habe ich bereits:
- Per Session über das Forum Login
- Eine extra Login-Seite, die die Informationen aus der Datenbank des Forums abfragt.
Beides habe ich bereits probiert, doch bin ich bisher zu keinem zufriedenstellenden Ergebnis gekommen.
Zu was würden Sie mir raten und wie könnte eine solche Login-Seite bzw. die Session konkret aussehen?
Mit freundlichen Grüßen,
Mithrandir.
Verfasst: 30.09.2007 17:10
von Sanchez17
Hola,
füge dies hier am Anfang der Chat - Datei:
Code: Alles auswählen
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
if(!$user->data['is_registered']) {
redirect('ucp.php?mode=login');
}
So können nur eingeloggte User die Page bzw. Chat betreten. Ausgeloggte werden zum Log-In geleitet.
Müsste funktionieren, habs aber nicht getestet. Daher vorher Back Up machen.
hasta luego,
Miguel
PS: Weitere interessante Informationen über phpBB3 findest du
hier
Verfasst: 30.09.2007 17:31
von TheMithrandir
Guten Tag,
Vielen Dank für diese Hilfe.
Ich habe das vorherige Script (chat.php), welches im selben Verzeichnis wie das Forum liegt, wie folgt verändert:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
if(!$user->data['is_registered']) {
redirect('ucp.php?mode=login');
} ?>
<html>
<!--Inhalt-->
</html>
Beim Aufrufen dieser Datei werde ich zum Login-Formular weitergeleitet. Melde ich mich nun an und rufe danach wieder die Datei chat.php auf, werde ich jedoch wieder zum Login-Formular weitergeleitet.
Ich kenne mich leider mit den Funktionalitäten von phpBB zu wenig aus um sagen zu können, was ich nun machen muss.. Daher wäre ich über weitere Hilfe dankbar.
Mit freundlichen Grüßen,
Mithrandir.
Verfasst: 30.09.2007 19:42
von Sanchez17
Hola,
dann warst du (wahrscheinlich) nicht richtig eingeloggt.
Hab gerade den oben von dir geschriebenen Code ausprobiert und klappt wunderbar.
Eventuell hast du ein Cookie Problem. Und wenn das phpBB bei dir keine Cookies benutzten kann, wird die Session an die URL angehangen.
Nur da du die Datei wahrscheinlich manuel aufrufst, wird die Session nicht drangehangen. Fazit: Ausgeloggt.
Versuch folgendes:
Öffne:
includes/functions.php
Suche
Code: Alles auswählen
'PRIVATE_MESSAGE_INFO' => $l_privmsgs_text,
'PRIVATE_MESSAGE_INFO_UNREAD' => $l_privmsgs_text_unread,
Füge dahinter:
Code: Alles auswählen
'CHAT_LINK' => append_sid("{$phpbb_root_path}chat.$phpEx"),
Öffne:
styles/*dein template*/template/overall_header.html
Suche:
Code: Alles auswählen
<li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li>
Füge davor:
Code: Alles auswählen
<li class="icon-members"><a href="{CHAT_LINK}" title="Chat">Chat</a></li>
Nun sollte die Session mit der URL mitgegeben werden (wenn dies benötigt wird). Klick dann auf den Link im Header. Jetzt müsste der Chat angezeigt werden, und nicht der Login.
Achtung: Ich bin gerade selbst dabei mich mit Olympus vertraut zu machen. Daher vorher Backup machen.
hasta luego,
Miguel
Verfasst: 30.09.2007 20:18
von TheMithrandir
Vielen Dank
Es hat sehr gut funktioniert!
Ich weiß nicht, warum es nicht mit den Cookies funktioniert, eigentlich sind sie in meinem Browser aktiviert..
Aber so geht es ja auch. Also nochmals vielen Dank.