Frage

Ich habe gebaut Web-Anwendungen vor, dass nutzen phpBB-Sitzung und Benutzerdaten. Die gemeinsame Bewegung ist Code wie folgt zu verwenden:

define('IN_PHPBB', true);
//replace $phpbb_root_path with path to your forum
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

Allerdings, indem common.php, bringe ich entlang einer Mist-Last anderer Methoden, die in anderen Verfahren betreibe ich Setup haben.

In meinem Beispiel, ich bin mit der Anwendung mit CodeIgniter, die bereits eine „Umleitung“ -Methode hat. Diese Frage sollte für jeden gelten, der hat Methoden vorgefertigte, die in die phpBB Methoden führen kann.

Im Grunde alles, was ich tun muß, ist:

  1. Stellen Sie sicher, dass der Benutzer in $user->data[username] == Anonymous angemeldet ist
  2. Nutzen Sie Daten von '$ user-> Daten' wie die Benutzer-ID, User-etc.

Könnte ich greifen die $user->data Array, und irgendwie speichern Sie es auf meine eigene Sitzung? Hat jemand irgendwelche Ideen dazu? Vielen Dank im Voraus!

War es hilfreich?

Lösung

Sie haben in den primären Grund laufen i Rahmen Werke hassen. Man weiß nie genau, was enthalten ist. Vor allem, wenn der Code nicht objektorientiert. (Viel besser, wenn Ihre Funktion zu Objekten gehört, anstatt in einem globalen Raum frei schwebend.)

Angenommen, Ihr Code eine definierte Session-Handler bereits vorhanden ist, gibt es nichts, was man ist Stoppen von der regulären Sitzung Befehle.

zB: $ _SESSION [ 'user_data_array'] = $ user-> Daten;

dann später mit teh Sitzungsdaten

$ data = $ _SESSION [ 'user_data_array'];

Wenn ein Session-Handler geschrieben wird, ersetzt es die aktuellen Session-Handler. (Ich gehe davon aus, dass getan wurde, so dass die Sitzung in der Datenbank gespeichert ist, und nicht auf dem Server.)

Wenn es nicht ersetzt hat, dann können Sie immer noch PHP die Standard-Session-Handler verwenden .. Sie immer daran denken, dass die Sitzungsdetails in einen Ordner auf dem aktuellen Web-Server gespeichert werden. Also, wenn Ihre Anwendung auf mehreren Servern ausgeführt wird, werden die Sitzungsdaten nicht verfügbar, wenn der Benutzer von einem anderen Server bei einem späteren Besuch serviert wird. (Daher auch der Bedarf an Sitzungs Handler Schreiben die Sitzungsdaten zwischen mehreren Servern zu erhalten.)

Andere Tipps

geändert phpBB den Algorithmus für das Kennwort in der Datenbank von Version 2.x auf 3.0 gespeichert Validierung. (Es verwendet nur eine MD5-Funktion zu sein.) Aber wenn Sie ihre halb-SDK-URL finden (haben es nicht zur Hand) gibt es Nachrichten gibt es darüber, wie auf einer höheren Abstraktionsebene ihre Benutzerüberprüfung zu verwenden, als Sie beschreiben .

Dies ist ein Fall, in dem, wenn Sie ihre Ressource erschließen gehen, Sie müssen es ihre Art und Weise tun (was in diesem Fall deutlicher ist, als es früher.)

Ich bin damit einverstanden, es ist eine riskante Entscheidung so oder so; zumal phpBB keinen besonders bewundernswert Rekord für Designqualität haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top