Session Variable setzen

  • PHP

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von MB-Tech.

    Session Variable setzen

    Hallo :)

    Habe einen kleinen Internen Bereich auf meiner Seite gebaut. Hierzu wird ein Code eingegeben. Dieser wird übergeben (POST) und auf der Seite oben geprüft.
    Wurde ein richtiges Codewort eingegeben, so wird man auf eine bestimmte Seite weitergeleitet. (Mittels Header: (Location: ))

    Das Ganze sieht wie folgt aus:

    PHP-Quellcode

    1. if(isset($_POST["code"]) == true)
    2. {
    3. if(strlen($_POST["code"]) < 3)
    4. {
    5. $error_code=1;
    6. $p = "intern";
    7. }
    8. else
    9. {
    10. switch ($_POST["code"])
    11. {
    12. case "code1":
    13. $_SESSION["intern"] = "code1"
    14. header ('Location: http://www.xyz.de/index.php?p=seite1');
    15. break;
    16. case "code2":
    17. $_SESSION["intern"] = "code2"
    18. header ('Location: http://www.xyz.de/index.php?p=seite2');
    19. break;
    20. default:
    21. $error_code=1;
    22. $p = "intern";
    23. }
    24. }
    25. }


    Folgendes Problem:

    Auf jeder "Seite" schütze ich diese mit einer Abfrage, ob Session gesetzt ist inkl. dem richtigen Code.

    Drücke ich auf der Internseite auf Anmelden, dann kommt leider die Fehlermeldung, dass ich keinen Zugriff auf die Seite hätte. Aktualisiere ich meine Startseite und gebe den Code erneut ein, dann klappt es. Ich vermute, dass die Session Variable nicht richtig gesetzt wird, wenn man dann mit "Header" eine neue Seite aufruft. Oder wo sollte sonst der Fehler liegen?

    LG

    MB-Tech
    @Reeker ich kann doch nicht zulassen dass hier jemand Spaß hat! :D

    @MB-Tech was mir noch aufgefallen is (nur am Rande): in Zeile zwei brauchst du isset nicht explizit auf true abfragen, weil isset so oder so einen boolean returned.
    Und btw. ich sehe jetzt in deinem Code keine Zeile mit session_start() - ich vermute das hast du woanders? Weil irgendwo muss das angegeben sein damit du überhaupt mit Sessions arbeiten kannst.


    Link :thumbup:
    Hello World
    Das mit den ; war durch das einfügen hier im Board, da wurden die beim Ändern der Links ausversehen gelöscht. Das war nicht das Problem.
    session_start() steht ganz oben.

    Das Problem ist jetzt behoben. Habe bei header: location: index.php?p=seite anstatt domain.de/index.php?p=seite.

    Weiß nicht warum das so ist, aber jetzt klappt es...?

    LG

    MB