Session-Inhalt wird nicht "übergeben" bzw. ist leer...??

  • PHP

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ereza.

    Session-Inhalt wird nicht "übergeben" bzw. ist leer...??

    Hi liebes Forum!

    ich habe 2 Dateien... Datei1.php und eine befragung.php

    Die sehen so aus:

    Datei1.php:

    PHP-Quellcode

    1. if ($Moeglichkeit_1 == 1)
    2. {
    3. // username wird aus der SESSION mitgenommen...
    4. $_SESSION['username']=$username;
    5. //echo nl2br(print_r($_SESSION,true));
    6. //$test=$_SESSION['username'];
    7. //echo $test;
    8. echo readfile("https://localhost/projekt/befragung.php");
    9. }


    befragung.php:

    PHP-Quellcode

    1. <?php
    2. //session_name();
    3. session_start();
    4. echo nl2br(print_r($_SESSION,true));
    5. //session_start();
    6. //$test=$_SESSION['username'];
    7. //echo $test;
    8. ?>


    Ich versuche gerade den username von Datei1.php der über die Session gespeichert wurde, in befragung.php auszugeben...

    aber das geht nicht!!

    Das "Session-Array" ist leer:

    Array
    (
    )


    ich weiß aber nicht warum... ?(

    ich habe zuerst in Datei1.php getestet ob der username auch wirklich übergeben wird mit:

    PHP-Quellcode

    1. $test=$_SESSION['username'];
    2. echo $test;


    und das funktioniert eindeutig!! - Das heißt bis dahin... wenn ich $test ausgebe... ist die session noch erhalten...

    aber dann wenn ich mit:

    PHP-Quellcode

    1. echo readfile("https://localhost/projekt/befragung.php");

    die befragung.php aufrufe...

    ist meine session leer!!??! - ich breche die session aber auch nicht ab...!

    laut php.net/manual/de/function.session-start.php sollte ja die vorherige session weiterverwendet werden...

    ich weiß einfach nicht warum das nicht funktioniert...

    könnt ihr mir da bitte weiterhelfen bzw. erklären, woran das liegt?

    Vielen Dank!

    LG Tim
    Wenn du readfile aufrufst mach meines Wissens nach der Server die Request zur URL und gibt dann nur das HTML an den Client weiter... du musst also den Client anderst weiterleiten (Header, Metatag oder JS)

    Lg Mokki
    ​Smartnotr - ein intelligentes Notizprogramm
    zum Thread

    Hi Mokki!

    Du bist Spitze!!! Vielen, vielen Dank!! es hat geklappt... habe jz:

    PHP-Quellcode

    1. $_SESSION['username']=$username;
    2. header("Location: https://localhost/projekt/befragung.php");
    3. exit;


    und das funktioniert tadellos!!

    dann in der befragung.php hole ich mir wieder meinen username:

    PHP-Quellcode

    1. <?php
    2. // setze session von davor (datei1.php) fort...
    3. SESSION_START();
    4. // übergebe aus vorheriger session den username an die Variable $username...
    5. $username=$_SESSION['username'];


    und wenn ich ihn mit:

    PHP-Quellcode

    1. //echo $username;


    ausgebe, haut das voll hin! cool!! :thumbsup:

    und das beste, wieder was gelernt dabei...

    Vielen Dank nochmals!

    LG Tim
    Hi,

    ist vielleicht noch dazuzusagen, dass du Zugriff auf die Session nur dort hast, wo die Session mit session_start() gestartet wird. Deswegen macht's auch Sinn, einen Single-Point-Of-Entry zu definieren und den dynamischen Inhalt einer Seite anhand der via GET übergebenen Argumente (z.B. /index.php?page=Datei1) über includes/require reinzuladen. Dann braucht man das session_start() nämlich nur einmal zu schreiben und hat in der gesamten Applikation Zugriff darauf.

    Link :thumbup:
    Hello World