Diese Seite mit anderen teilen ...

Informationen zum Thema:
Forum:
Phorum.org Hilfe-Forum
Beiträge im Thema:
5
Erster Beitrag:
vor 8 Jahren, 6 Monaten
Letzter Beitrag:
vor 8 Jahren, 6 Monaten
Beteiligte Autoren:
knmn, thomas (Mysnip.de)

Benutzer wird nicht ausgeloggt

Startbeitrag von knmn am 09.06.2009 13:41

Hallo!

ich habe folgendes Problem. Ich versuche den Forum in mein eigenes System zu integrieren. Das heisst ich will, dass die Benutzer, die sich im System anmelden, automatisch auch im Phorum angemeldet werden. Das gleiche beim ausloggen. Wen der Benutzer sich aus meinem System ausloggt, soll die Phorum session auch gekillt werden.

wie folgt habe ich es bis jetzt versucht


nach dem eigentlichen login in mein system führe ich diesen Code aus

$curcwd = getcwd();
chdir(PRG_PATH."/phorum/");
include("./common.php");
require_once("./include/api/base.php");
require_once("./include/api/user.php");

// Check the username and password.
$user_id = phorum_api_user_authenticate(
PHORUM_FORUM_SESSION, // for a standard front end forum session
$username, // the username to check
$password // the password to check
);

if (!$user_id) die("Username or password incorrect!\n");

// Make the authenticated user the active user for Phorum. This is all
// that is needed to tell Phorum that this user is logged in.
$set_active = phorum_api_user_set_active_user(
PHORUM_FORUM_SESSION, // for a standard front end forum session
$user_id, // the user_id that has to be the active user
PHORUM_FLAG_SESSION_ST // jumpstart the short term session
);
if (!$set_active) die("Setting user_id $user_id as the active user failed!\n");

// Create a session for the active user, so the user will be remembered
// on subsequent requests.
phorum_api_user_session_create(
PHORUM_FORUM_SESSION, // for a standard front end forum session
PHORUM_SESSID_RESET_LOGIN // reset session ids for which that is
); // appropriate at login time


chdir($curcwd);





... hier klappt alles scheinbar gut. der benutzer wird eingeloggt und kann den phorum nutzen. Probleme gibt es beim ausloggen. Das versuche ich so:

// logout
$curcwd = getcwd();
chdir(PRG_PATH."phorum/");
include("./common.php");
require_once("./include/api/base.php");
require_once("./include/api/user.php");
phorum_api_user_session_destroy(PHORUM_FORUM_SESSION);
chdir($curcwd);

klappt aber nicht immer. Ich bekomme auch keine Fehlermeldung, die mir irgendwie sagt dass die session nicht beendet werden konnte. Und es gibt auch kein Muster, so dass ich die Ursache nicht finden kann. mal klappt es mal nicht. Ich würde sehr dankbar für jede Hilfe. Ist vielleicht main cod so nicht in Ordnung? Oder gibt es andere Ursachen die ich übersehen habe?


PS. getestet unter Firefox

Antworten:

Hast Du mal überprüft, ob es vielleicht vom Pfad abhängt, in dem der Logout vorgenommen wird? Was ist als Session-Path im Admin eingetragen?

von thomas (Mysnip.de) - am 09.06.2009 15:39
Danke für deine Antwort, Thomas!

Im Admin sind bei mir folgende Einstellungen:

Use Cookies: Allow cookies
Session Path: /
Session Domain: leer

wie kann das davon abhängen? kenne mich leider mit cookies nicht so gut aus. wie sollte ich am besten die Einstellungen machen?




von knmn - am 09.06.2009 18:22
/ für den Pfad sollte funktionieren. Ein Problem könnte bestehen, wenn als Pfad z.B. /forum eingetragen wäre, da (Phorum-)Cookies dann nur in diesem Pfad funktionieren würden.
Dann kannst Du eigentlich nur mit z.B. Firefox und der Erweiterung Firebug prüfen, welche Cookies gesendet und/oder gelöscht werden, eine spontante Lösung habe ich dann auch nicht.

von thomas (Mysnip.de) - am 11.06.2009 20:24
Trotzdem Danke für deine Zeit!

Gruß

von knmn - am 12.06.2009 09:14
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.