session
-
habe bis jetzt wenig erfahrung mit php, aber woran könnte es liegen das nichts in der session steht. php version 4.4.0
// temp1.php session_start(); $_SESSION["var1"] = "foo"; $_SESSION["var2"] = "bar"; header("Location: temp2.php"); // temp2.php session_start(); var_dump($_SESSION);
im array steht nichts. bräuchte ein paar tipps
-
miller_m schrieb:
habe bis jetzt wenig erfahrung mit php, aber woran könnte es liegen das nichts in der session steht. php version 4.4.0
im array steht nichts. bräuchte ein paar tipps
und so?
// temp1.php session_start(); $_SESSION["var1"] = "foo"; $_SESSION["var2"] = "bar"; header("Location: temp2.php" . (SID != "" ? "?" . SID : "" ) ); // temp2.php session_start(); var_dump($_SESSION);
-
bringt nix SID == null
-
Vielleicht hast du eine falsche Einstellung in der php.ini ?
-
//temp1.php // Session initialisieren session_start(); $_SESSION["var1"] = "foo"; $_SESSION["var2"] = "bar"; // Generierte Session-ID merken $sid = session_id(); // Session-ID mitgeben header( 'Location: temp2.php?sid=' . $sid ); //temp2.php // Übergebene Session-ID verwenden session_id( $_GET['sid'] ); // Session mit dieser ID initialisieren session_start(); var_dump($_SESSION);
Sollte eigendlich so funktionieren.
-
cppguy schrieb:
Vielleicht hast du eine falsche Einstellung in der php.ini ?
oder das verzeichnis für die sessiondaten ist schreibgeschützt, voll oder absent.
-
cppguy schrieb:
Vielleicht hast du eine falsche Einstellung in der php.ini ?
wie gesagt etwas unerfahren mit php, auf welche müsste ich achten?
@herrman
id wird mit übergeben, aber das array ist immer noch leervolkard schrieb:
oder das verzeichnis für die sessiondaten ist schreibgeschützt, voll oder absent.
erklärung
welches ist das verzeichniss
-
Mach mal ein:
<?php phpinfo(); ?>
Dort gibt es einen Session-Block. Vielleicht ist bei dir ja die Session-Unterstützung abgeschaltet. Den Pfad für die Sessiondateien findest du da auch.
-
wird der phpcode überhaupt nach dem header abgebrochen?
Denke nein.
Du sendest also eine Header mit der Session als Cockie.Danach startest du die Session nochmals was zum auslesen des Headers führt. Da diene Anfrage an die Seite aber noch keine Sessiondaten und somit keie SessionID hatte wird das Sessionfile auch nicht ausgelesen.
Somit sind dann bei vardump keine Daten da.
Erst beim nächsten aufruf der Seite sollten sie da sein. Man sollte nie 2 Mal sessionstart in einer Seite aufrufen.
-
Herrmann schrieb:
Dort gibt es einen Session-Block. Vielleicht ist bei dir ja die Session-Unterstützung abgeschaltet. Den Pfad für die Sessiondateien findest du da auch.
Session Support enabled Registered save handlers files user Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 Off Off session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 1000 1000 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path ist richtig gesetzt /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid Off Off
Unix-Tom schrieb:
wird der phpcode überhaupt nach dem header abgebrochen?
im bespiel ja, im reelen code natürlich nicht aber das problem ist das selbe
Unix-Tom schrieb:
Danach startest du die Session nochmals was zum auslesen des Headers führt. Da diene Anfrage an die Seite aber noch keine Sessiondaten und somit keie SessionID hatte wird das Sessionfile auch nicht ausgelesen.
Somit sind dann bei vardump keine Daten da.entzieht sich meinen verständniss, ich habe doch schon eine id bekommen und diese gebe ich jetzt weiter, wie hermann es geschrieben hat.
Unix-Tom schrieb:
Erst beim nächsten aufruf der Seite sollten sie da sein. Man sollte nie 2 Mal sessionstart in einer Seite aufrufen.
es sind doch zwei files ?!?
-
jetzt sehe ich es erst das es 2 dateien sind.
Es kann sein das Cookies im Browser off sind dann wird auch keine Sessionid an den Server zurückgesendet. Da müsste man dann die SID an die URL weitergeben.
-
Unix-Tom schrieb:
Es kann sein das Cookies im Browser off sind dann wird auch keine Sessionid an den Server zurückgesendet. Da müsste man dann die SID an die URL weitergeben.
habe ich gemacht, wie hermann es beschrieben hatte. sid wird auch übergeben aber das session array ist immer noch null