Sessions werden nicht übernommen

  • Hallo zusammen,

    Ich habe das Problem das bei mir einige Sessions mittels AJAX gesetzt werden dann aber auf der Main-Page nicht mehr verfügbar sind.


    Folgendes Szenario.

    Ich habe eine index.php Seite die bspw 2 weiter .php pages inkludiert ("login.php" & "shoutbox.php").

    Wenn ich in der login.php page auf meine login-button drücke, wird im hintergrund mittels AJAX ein Loginscript durchgeführt.
    Dort wird eine Session ("username") gesetzt.

    Nur leider ist die Session nun auf der index.php seite nicht verfügbar.
    wenn ich nun auf der shoutbox.php seite den button zum absenden einer message drücke, wird die shoutbox seite neu in die index.php seite reingeladen.
    Am Anfang der shoutbox.php Page soll nun überprüft werden ob die Session ("username") gesetzt ist.

    Leider ist dies NIE der Fall.
    Btw. die session-id ist übrigens immer die gleiche.


    Kann mir jemand weiterhelfen?


    grz

  • Schade. :)

    Also, beim Login wird folgende Ajax-Routine aufgerufen:


    die loginfuncton.php sieht dann i.e. so aus:

    So.. nun wurden die Sessions gesetzt.


    Wenn ich nun in der toolbox.php die gesetzten Sessions auslesen möchte, geht das leider nicht:

    PHP
    $websiteUSERID = $_SESSION['userID'];
    	$websiteISLOGGEDIN = $_SESSION['loggedIN'];

    die sind dann leer.
    toolbox.php ist in index.php inkludiert.
    Bei der index.php steht am Anfang 'session_start();'.

    Hilft das schon weiter?

    grz

  • Ist die Frage, WANN du die auslesen moechtest. Wann wird toolbox.php geladen? Versuch auch mal

    PHP
    print_r($_SESSION);

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Hmm ok..
    Das könnte das Problem sein.

    die toolbox.php wird jedesmal wenn der Senden Knopf ausgeführt wird neu in die Seite reingeladen.

    Ich kann bei der toolbox.php jedoch kein session_start(); setzen, weil die Page-Header bereits geladen wurden.
    Die toolbox.php wird ja irgendwo in index.php mittels AJAX neu reingeladen.

    cheers

  • Natuerlich. AJAX ist nichts anderes, als wenn du einen HTTP-Request sendest, sprich eine seite aufrufst. Nur der inhalt wird dann nicht im fenster angezeigt sondern an JS uebergeben. Probiers einfach aus ;)

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • du könntest auch ganz einfach mal prüfen was los is indem du das hier einbaust:

    PHP
    if(isset($_SESSION)){
        echo count($_SESSION);
        exit;
    }else{
        echo 'pff';
        exit;
    }

    liest du pff is keine session gesetzt :mrgreen:

    und ums dann etwas professioneller zu gestalten kannste ja das ganze so ändern, dass du, sofern keine session existiert, einfach ein session_start() abfeuerst