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 leer 🙄

    volkard 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


Anmelden zum Antworten