[PHP] Variablen zwischen Unterseiten weitergeben
-
Na gut, dann formulier ich das anders:
session_start() aufrufen, bevor du irgendwas anderes machst. Also am ANFANG der Seite aufrufen. Es darf davor nicht anderes stehen!!!
-
CarstenJ schrieb:
session_start() aufrufen, bevor du irgendwas anderes machst. Also am ANFANG der Seite aufrufen. Es darf davor nicht anderes stehen!!!
hää was bringt mir das ne session aufzurufen wenn der typ sich noch nichtmal eingeloggt hat? dann brauch ich auch keine session. reicht doch wenn die session bei erfolgreihen login gestartet wird. oder?
-
Anstelle von session_register solltest du nur $_SESSION verwenden:
Wenn Sie $_SESSION (oder $HTTP_SESSION_VARS) verwenden, sollten Sie nicht session_register(), session_is_registered() und session_unregister() verwenden.
Wenn Sie wollen, dass ihr Script unabhängig von der Einstellung von register_globals funktioniert, müssen Sie den Array $_SESSION verwenden. Alle $_SESSION-Einträge werden automatisch registriert. Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen register_globals deaktiviert ist.
-
Es darf eben, vor session_start keine Ausgabe erfolgen (dazu gehören z.B. auch Fehlermeldungen von PHP-Funktionen) da normalerweise die Session-ID per Cookie gespeichert wird und durch eine Ausgabe die Header schon gesendet werden und somit das Cookie mit der Session-ID nicht mehr gesetzt werden kann. Siehe auch setcookie()
Wie andere Header auch, müssen Cookies vor irgendwelchen anderen Ausgaben Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Sie müssen deshalb solche Funktionsaufrufe vor irgendwelchen Ausgaben, inklusive <html>- oder <head>-Tags sowie irgendwelcher Whitespaces tätigen.
[...]
Anmerkung: In PHP 4 können Sie den Ausgabepuffer verwenden, um Ausgaben vor dem Aufruf dieser Funktion duchführen zu können. Dies hat allerdings zur Folge, dass alle Ihre Ausgaben zum Browser am Server zwischengespeichert werden, bis Sie diese senden. Sie können dies in Ihrem Skript mittels den Funktionen ob_start() und ob_end_flush(), oder mittels der Konfigurationseinstellung output_buffering in Ihrer php.ini, oder durch Konfigurationseinstellungen am Server realisieren.
-
Sauber!, ich werd verrückt! Es läuft!
kann ich denn auch überprüfen ob eine session schon besteht?
weil dann könnte ich ja einen logout button einbinden, mit dem ich die variablen wieder unregister machen kann und das loginformular einblende!
-
Die Funktion session_is_registered() erledigt das:
if(session_is_registered('name')){
...
}
-
Hast du nicht gelesen, was ich (die PHP-Doku) auf der 1. Seite ganz unten geschrieben habe?
Du machst einfach eine Variable $_SESSION['logged_in'], die du auf true setzt, wenn der User erfolgreich eingeloggt wurde
-
@Flenders: ne sorry hatte ich überlesen gehabt.
Dafür habe ich mit deinem Tipp und ein paar kleinen Feinheiten diese nacht um vier einen echten Login/Logoutbereich programmiert. der mist funktioniert sogar.Ich habe allerdings noch eine frage!
Also wenn sie jetzt user a anmeldet, wird seine session begonnen.
was passiert denn mit seiner session wenn er ausm netz fliegt oder sein IE abkackt???
-
CarstenJ schrieb:
Die Funktion session_is_registered() erledigt das:
nein, die funktion isset macht das:
isset($_SESSION['name'])
-
@ Peter:
Das hängt von diesen Einstellungen ab:
session.gc_probability
session.gc_dividend
session.gc_maxlifetimeSiehe hier:
http://www.develnet.org/31.html