Array $_SESSION[] Problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Array $_SESSION[] Problem

    Hi
    Ich habe wiedermal ein Problem und hoffe auf eure Hilfe :)
    Und zwar:
    Ich habe über ein Loginscript das Array $_SESSION['ID'] mit der UserID aus einer Datenbank gefüllt.
    Die Loginbox, die das Formular enthält, soll, wenn das $_SESSION['ID'] vorhanden is, also man angemeldet ist, Links wie Profil editieren ... anzeigen und nicht mehr das Formular.
    Das ganze Funktioniert auch gut, solange man sich auf der Seite bewegt, auf der ich $_SESSION['ID'] erstellt habe.
    Sobald ich aber auf eine andre Seite gehe, wird wieder das Formular angezeigt.
    Wenn ich dann wieder die Seite, in der $_SESSION['ID'] erstellt wurde, öffne, werden wieder die Links angezeigt ohne dass ich mich wieder anmelden muss.
    Ich bin also immer noch angemeldet, aber zwischenzeitlich registriert das mein Code anscheinend nicht.

    Quellcode

    1. <?php
    2. if(isset($_SESSION['ID'])) {
    3. echo "<p ><a href=\"?show=user&".SID."\"><b>Usercenter</b></a></p>\n";
    4. echo "<p><a href=\"?show=user&mode=logout&".SID."\"><b>LogOut</b></a></p>\n";
    5. }else{
    6. echo "<a href=\"?show=register\" class=\"register\">Register</a> - <a href=\"?show=lostpw\" class=\"register\">Lost Password</a><br />\n";
    7. echo "<br />\n";
    8. echo "<form action=\"?show=user\" method=\"post\">\n";
    9. echo " <input type=\"text\" value=\"Loginname\" name=\"login\" align=\"middle\" class=\"login\" />\n";
    10. echo " <input type=\"password\" value=\"Passwort\" name=\"pw\" class=\"login\" /><br />\n";
    11. echo " <br />\n";
    12. echo " <input type=\"submit\" value=\"Login\" name=\"submit\" class=\"loginbutton\" />\n";
    13. echo "</form>\n";
    14. }
    15. ?>
    Alles anzeigen


    Könnt ihr mir helfen?

    MfG
    venum
  • RE: Array $_SESSION[] Problem

    Kleiner Tipp, was die Ausgabe von Text angeht, die Heredoc-Syntax:

    Quellcode

    1. if(isset($_SESSION['ID'])) {
    2. $session_id = SID;
    3. echo <<<LOGIN
    4. <p><a href="?show=user&{$session_id}"><b>Usercenter</b></a></p>
    5. <p><a href="?show=user&mode=logout&{$session_id}"><b>LogOut</b></a></p>
    6. LOGIN;
    7. }else{
    8. echo <<<LOGIN
    9. <a href="?show=register" class="register">Register</a> - <a href="?show=lostpw" class="register">Lost Password</a><br />
    10. <br />
    11. <form action="?show=user" method="post">
    12. <input type="text" value="Loginname" name="login" align="middle" class="login" />
    13. <input type="password" value="Passwort" name="pw" class="login" /><br />
    14. <br />
    15. <input type="submit" value="Login" name="submit" class="loginbutton" />
    16. </form>
    17. LOGIN;
    18. }
    Alles anzeigen


    In solchen Fällen würde ich dir jedoch noch eher empfehlen, die alternative Syntax der Kontrollstrukturen zu benutzen. Hier im ersten Beispiel: php.net/manual/de/control-structures.alternative-syntax.php