Seite 1 von 1

Echtes, externes Login

Verfasst: 12.03.2007 10:47
von mafiatom
Ich programmiere eine Vereinsverwaltungssofware mir angebundenem PHPBB.

Der User soll sich nur einmalig auf der Verwaltung anmeldung und erhält automatisch eine Anmeldung im phpBB.

Derzeit ist es so gelöst:
Es wird ein Session Eintrag in dem Table Session gemacht und ein cookie angelegt.

Mit allen Browsern funktioniert das auch einwandfrei, nur der IE7 macht macken mit dem Cookie cookiename_sid.
Ist dieses Cookie Problem beim IE7 hier schon bekannt und gibt es Tips dazu, wie man das umgeht?

Es scheint, als ob der IE7 das Cookie einfach mal löscht oder erst garnicht anlegt. Das tritt sehr sporadisch auf und kaum nachvollziehbar. Wirkt sich aber derart aus, dass der User sich auf dem Board bewegt, einen Beitrag schreibt und beim absenden die Melung bekommt: Du musst dich anmelden.
Manchmal tritt es auch einfach nur beim anklicken eines Beitrags in einem geschützen Forum auf. Oder auch beim aufrufen der PMs bzw beim versenden dieser.

Mit anderen Browsern - wie gesagt - gibt es dahingehend keinerlei Probleme.

Verfasst: 12.03.2007 11:45
von PhilippK
Prinzipiell sind keine besonderen Probleme mit dem MSIE 7 bekannt. Allerdings sind die Datenschutzrichtlinien durchaus ein Grund, der das erschweren könnte.

Klappt das normale Cookie-Handling von phpBB? Ggf. auch mal etwas mit den Domain-Angaben bei der Cookie-Erstellung spielen (KB:cookie_probleme)

Gruß, Philipp

Verfasst: 12.03.2007 12:08
von mafiatom
Hm, der einzige erkennbare unterschied zu den Coockies vom Board um dem, den ich anlege, ist die Zuweisung der Domaine.

Die vom Board werden als
name@domaine.de abgelegt, den, den ich erzeuge wird als
name@www.domaine.de abgelegt.
Warum dies so ist, kann ich nicht nachvollziehen. Benutze das identische set_cookie wie im Forum, und die Daten der Config Table werden herangezogen.

Was sein könnte, ist ein Fehlerhafter eintrag in die Session Table. Dieser sieht bei mir derart aus:

Code: Alles auswählen

$sql    = "INSERT INTO " .$g_forum_praefix. "_sessions
                  (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin)
                  VALUES ('$g_forum_session_id', $g_forum_userid, $current_time, $current_time, '$user_ip', 0, $session_logged_in, 0)";
und das set_cookie so:

Code: Alles auswählen

// Cookie fuer die Anmeldung im Forum setzen
        setcookie($g_forum_cookie_name."_sid", $g_forum_session_id, time() + 60*60*24*30, $g_forum_cookie_path, $g_forum_cookie_domain, $g_forum_cookie_secure);
In den Variablen sind die config Daten, die aus dem config Table ausgelesen werden. Die Session_id = session_id() vom pagestart().

Verfasst: 12.03.2007 14:16
von PhilippK
Wie ermittelst du denn $g_forum_cookie_path und $g_forum_cookie_domain? Welche Werte haben die?

Gruß, Philipp

Verfasst: 12.03.2007 14:23
von mafiatom

Code: Alles auswählen

    $sql    = "SELECT config_value FROM ". $g_forum_praefix. "_config WHERE config_name = 'cookie_name' ";
...
    $sql    = "SELECT config_value FROM ". $g_forum_praefix. "_config WHERE config_name = 'cookie_path' ";
...    
    $sql    = "SELECT config_value FROM ". $g_forum_praefix. "_config WHERE config_name = 'cookie_domain' ";
...    
    $sql    = "SELECT config_value FROM ". $g_forum_praefix. "_config WHERE config_name = 'cookie_secure' ";
...
Werte:
cookie_name = test412 (als Beispiel)
cookie_path = /
cookie_domain = leer