Login macht Probleme (Firefox)

Ich stehe gerade vor einem Rätsel. Ich habe schon viele Loginsysteme gehabt, aber das ist mi noch nie passiert. Es scheint, als ob PHP auf Firefox anders reagiert. Genug gefaselt, Problembeschreibung:
Url: mgier.xe.cx
Url(wenn eingeloggt): ozean1.mgier.xe.cx

Ich habe mal einen Testaccount erstellt, damit ihr euch das ansehen könnt. Username: test Passwort: test
Mit Firefox kommt man nicht in den Bereich, wo man eingeloggt sein muss, man wird immer auf die Startseite geworfen (Das passiert vom system, wenn man nicht eingeloggt ist.)
Dieser Codeschnipsel am Anfang im Insider Bereich macht das:

if(!logged_in()){ header('Location:' . $h_url); //Startseite }
logged_in() ist eine Funktion, die die vergebene Session-id (ein 32-zeichen-zufalls-string) überprüft. wenn vorhanden, gibt sie die ID des spielers zurück, wenn nicht, false.

function logged_in(){ if(!$_SESSION['variablenname']){ return false; } else { $sql = "SELECT `ID` FROM `tabelle` WHERE `variablenname` = '" . $_SESSION['variablenname'] . "'"; $query = mysql_query($sql); if(mysql_num_rows($query)){ while($data = mysql_fetch_array($query,MYSQL_ASSOC)){ return $data['ID']; } } else { return false; } } }
Das ganze funktioniert im Internet Explorer problemlos, jedoch im Firefox nicht. Ich dachte schon an Session Cookies (bzw. nicht-session cookies), aber da wäre es ja normal der umgekehrte fall, nicht? außerdem macht mich eins stutzig: Auf der Startseite wird durch GENAU diesselbe Funktion abgefragt, ob eingeloggt, und wenn ja, wird der spieler begrüßt…das funktioniert auch im firefox. Kann es sein, dass Firefox auf die subdomain alergisch reagiert? Wie kann man das umgehen?..per GET?

Hallo

Ein Cookie wird als standard jeweils für eine Domain angelegt, hier also mgier.xe.cx.
Danach kommst du auf die Subdomain, für welche das Cookie nicht existiert bzw. nicht zugänglich ist.

Soweit das Problem.

Ich weis nicht, ob es möglich ist bei einem session Cookie den Geltungsbereich zu erweitern.
Bei einem “normalen” Cookie sollte dies gehen.

Du kannst auch versuchen, die Session-ID per GET zu übergeben und dann die Session-ID mit session_id() zu ersetzen.

Freundliche Grüsse
Joey

Er wird wohl den Cookie nicht mitsenden, wenn per Redirect zur Subdomain gewechselt wird - weil du ihm keinen Anlass gegeben hast, dies zu tun.
Und deshalb gibt’s dann eine neue Session, weil PHP die SID fehlt, um die alte wieder aufzunehmen. Und in der neuen bist du logischerweise nicht eingeloggt.

Hallo nochmal

Ich hab auf PHP.net nachgesehen und folgendes gefunden: session_set_cookie_params()

Schaus dir mal an. Da steht, du müsstest “.mgier.xe.cx” angeben, damit von den Subdomains auch darauf zugegriffen werden kann (auf die Cookies).

Freundliche Grüsse
Joey

[quote=“bcg”]Ich weis nicht, ob es möglich ist bei einem session Cookie den Geltungsbereich zu erweitern.
Bei einem “normalen” Cookie sollte dies gehen.[/quote]
Der Cookie mit der Session-ID ist so „normal” wie jeder andere auch.

Und wie man die Parameter für Session-Cookies setzen kann, steht im Handbuch.

Das hab ich ja gerade eben geliefert, oder :unamused:

[quote]Der Cookie mit der Session-ID ist so „normal” wie jeder andere auch.[/quote]Ist mir auch klar, aber von der PHP Ebene kannst du nur mit den Session-Funktionen daraufzugreifen, wenn ich nix falsch verstanden habe?

Ihr seid spitze Leute.
Zuerst hat’s zwar nicht geklappt, aber der gute alte Cache spielt einem doch immer wieder einen Streich :ps:
Das nächste mal weiß ich Bescheid, danke für die Hilfe euch beiden :slight_smile: Funktioniert einwandfrei. :hail:

Ist ein Cookie wie jeder andere, landet auch in $_COOKIE wie jeder andere.