• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

php session_start() liefert immer TRUE, was tun?

ags

New member
Hi,

mein Problem mit session_start() ist, dass es immer TRUE zurück liefert, selbst wenn in der php.ini session.use_only_cookies = 1 steht und accept-cookies im browser disabled ist. es liefert zwar immer TRUE, aber die session funktioniert dann trotzdem nicht (wie zu erwarten). was los? sollte doch dann FALSE zurück liefern, oder?

EDIT: hat sich erledigt.
 
Zuletzt bearbeitet:
Weil PHP in dem Moment noch gar nicht wissen kann ob der Client Cookies akzeptiert oder nicht.
 
session_start(); gibt immer true zurück, unabhängig vom Transportmechanismus der sessionid. Der Rückgabewert wird daher oft nicht benutzt. Ob der Client cookies zulässt, kann z.B. durch Abfrage der Konstante SID bei der Verarbeitung eines Formulars ermittelt werden. Ein Setzen eines Cookies als Test um dies herauszufinden ist m.E. überflüssig.
 
Da wird dann hald das Session-Cookie als Testcookie verwendet... einmal zum Client und zurück musst du trotzdem, wenn du es serverseitig detektieren willst.
 
Ist schon richtig, 1x Formular anfordern (-> Client) und abschicken (-> Server), dann kann ich die SID auswerten. Ich muß aber nicht extra ein Cookie (manuell) setzen.
 
Wenn man nur einen Hinweis auf der Seite anzeigne will, dass Cookies aktiviert sein müssen, kann man das auch ohne Formular machen: einfach eine dynamische CSS-Datei erzeugen, in der das Session-Cookie abgefragt wird und wenn es fehlt, wird der Hinweistext angezeigt (bzw. nicht durch das CSS versteckst).
 
Also es war so dass ich eine PHP version kleiner 5.3 hatte und davor liefert session_start() immer true. Ich habe dann zu PHP 5.3 umgestellt.
 
Zurück
Oben