Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Che Guevara


 Thema: $_SESSION wird nicht gespeichert. ( sessions funktionieren nur so halb? )
erste ungelesene Seite | letzter Beitrag 
Armag3ddon

AUP Armag3ddon 04.01.2011
sessions funktionieren nur so halb?
Tach!

PHP ärgert mich ein wenig. Ich würde gerne Sessions verwenden, aber irgendwie geht alles nur so halb.
Das soll heißen, dass ich zwar ein Cookie kriege, aber z.B. session_id() mir nichts zurückliefert. session_start läuft aber sauber.
Und das wirklich Problem:
Ich kann keine Sessionvars speichern. Bzw. ich kann es, aber nur mit session_register (das funktioniert einwandfrei , liefert mir aber eine Warnung, dass die Funktion deprecated ist; PHP v5.3.0 läuft). Wenn $_SESSION['test'] = "fuuu"; mache, wird dies nicht dauerhaft gespeichert (ich kann in der Scriptausführung danach darauf zugreifen, aber es wird nicht über zwei Seitenaufrufe gespeichert. session_register verhält sich normal).

Jemand eine Idee, was da falsch laufen kann?
13.11.2011 15:07:54  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Origami

X-Mas Arctic
Moin Arma!

Vielleicht hilft dir ein wenig Debug-Code weiter:

 
Code:
<?php
error_reporting(E_ALL);

header('Content-Type: text/plain');
if (!session_start() || !session_id()) {
  echo 'Mist!
';
}

print_r($_SESSION);
print_r($_COOKIE);

$_SESSION['muh'] = 'kuh';


Unterm Strich: Nachsehen, was wirklich vom Browser zurückkommt, alle Fehlermeldungen anzeigen lassen.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Origami am 09.12.2011 21:36]
13.11.2011 16:38:21  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Armag3ddon

AUP Armag3ddon 04.01.2011
Mhm. Habe ein wenig herumgetestet. Dein Code hat mich zumindest auf die richtige Spur gebracht Augenzwinkern

Mein Code ist über mehrere Dateien verteilt und anscheinend kann ich in $_SESSION nur schreiben, wenn ich direkt in der inkludierten Datei noch mal session_start(); aufrufe.

Ist das das normale Verhalten? skeptisch
13.11.2011 17:57:38  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Origami

X-Mas Arctic
Nein. Augenzwinkern

Es klingt, als ob du session_start() erst nach dem Setzen der Variablen aufrufst. Die Variable $_SESSION existiert nicht, bis die Session gestartet wurde. PHP dürfte sie aber belegen, sobald du sie benutzt (wie jede andere Variable auch). Und vielleicht gibt PHP dabei keine Fehlermeldung aus.

Sicher würdest du mit einer Session-Klasse gehen, die die Sitzung automatisch startest, sobald du sie brauchst oder ein Session-Cookie empfangen wurde. So etwas gibt es zuhauf im Netz oder du nimmst einfach meine.
Wenn du die Session ohnehin startet möchtest (eigentlich kein guter Stil), kannst du in der php.ini den Wert session.auto_start auf 1 setzen.
13.11.2011 18:30:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Armag3ddon

AUP Armag3ddon 04.01.2011
Okay. Ja. Ich bin doof!

Bin jetzt nach langer Suche auf den Fehler gestoßen. Ich hatte in meiner checkLogin()-Funktion noch ein session_write_close(); drin, welches ich mal zum Testen von irgendwas da reingeschrieben habe.

Jetzt geht alles peinlich/erstaunt
13.11.2011 19:15:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: $_SESSION wird nicht gespeichert. ( sessions funktionieren nur so halb? )


mods.de - Forum » Webdesign & Coding » 

Hop to:  

| tech | impressum