Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme bei meinem Logout Button

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme bei meinem Logout Button

    Hallo,
    ich beschäftige mich seid einer Woche mit PHP und versuche grade eine Login Maske mit einer Login und Logout Möglichkeit umzusetzen.
    Dafür habe ich mich an das Beispiel von dieser Seite gehalten.
    Das mit dem Login funktioniert auch gut nur wenn ich auf mein Logout Button drücke wird mir wieder mein Login-Formular angezeigt.Habe ein Login und ein Logout Formular. Bei beiden Formularen verwende ich als Übertragungsmethode "post".

    Hier mein Auslog Formular:
    <form method=post action= login.php>
    <b>Ausloggen</b>
    <input type="submit" name="logout" value="Ausloggen">
    </form>


    In meiner PHP Datei versuch ich beim Logout Button genau so wie beim Login Button, so auf eine Interaktion zu reagieren.
    if (!empty($_POST["logout"])){
    echo "komme ich bis hier hin????<br>";
    }


    Aber ich komme nicht bis zur Ausgabe. Sondern es wird gleich das Login Formular angezeigt. Und wenn ich versuche mir den Wert von $_POST["logout"] ausgeben zu lassen bekomme ich die Fehlermeldung Notice: Undefined index: logout in ..... den wert von meiner $_POST["login"] kann ich mir aber ohne Probleme ausgeben lassen.

    Kann mir wer mit den gegebenen Informationen helfen oder muss ich den vollen Code posten. Was auch nicht sehr viel wäre


  • #2
    Wozu so umständlich? Ein Link genügt doch. Dann aber auf eine logout.php, nicht aufs Loginformular.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Hallo, da das Tutorial noch die mysql_* Erweiterung nutzt, solltest du es lieber meiden. Dazu folgendes:
      Standardtext für die Datenbankverbindung:
      Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
      Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
      Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm

      Auf der Seite findest du auch weitere Tutorials, die dir helfen können dein Grundlagenwissen auf einen guten Stand zu bringen.

      Zu deinem Problem selbst lässt sich mit nur dem Formular nicht viel sagen, denke du hast ausversehen zu früh abgeschickt. Ich finde es allerdings sinnvoll Logout und Login über verschiedene Scripte zu verarbeiten.
      Relax, you're doing fine.
      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

      Kommentar


      • #4
        Könnte es vielleicht dran liegen dass bei
        Code:
        <form method=post action= login.php>
        die Anführungszeichen fehlen?

        -->
        Code:
        <form method="POST" action="login.php">
        Die mysql_* Erweiterung ist veraltet!
        Besser: mysqli_* oder (noch besser) PDO

        Kommentar


        • #5
          @ tkausl weil ich zum einen nicht weiß was du mit einem Link meinst und zum anderen Später Informationen in der Session löschen möchte bei einem Klick auf den Logout Button.

          @ VPh danke ich werde die Seite auch mal durch arbeiten. Und zum Injections Schutz nutze ich mysql_real_escape_string an allen stellen wo der Nutzer informationen übergeben kann.
          Ich schicke informationen doch erst ab wenn ich auf den Logout Button drücke was aber eigentlich keinen besonderen Effekt haben sollte da ich nur in der einen if Abfrage etwas von dem Logout möchte und zwar das es dann eine Ausgabe gibt.

          @ nameless97 ich habe "post" jetzt in Anführungszeichen gesetzt und es hat leider nicht geholfen sieht aber besser aus.

          Kommentar


          • #6
            hast du schonmal
            PHP-Code:
            if(isset($_POST['logout'])){
                echo 
            "bla";

            versucht?

            Also ich stimme tkausl mal zu, dass ein
            Code:
            <a href="logout.php">Logout</a>
            einfacher wäre.
            Wobei ich irgendwie der Meinung bin, dass das total egal ist.
            Die mysql_* Erweiterung ist veraltet!
            Besser: mysqli_* oder (noch besser) PDO

            Kommentar


            • #7
              Code bitte in den Tags posten.
              Und zum Injections Schutz nutze ich mysql_real_escape_string an allen stellen wo der Nutzer informationen übergeben kann.
              Bitte nur bei Datenbankinteraktionen. Beim Ausgeben von Daten dafür dann htmlentities();. Das die mysql_*-Erweiterung veraltet ist, gilt trotzdem.

              Du kannst var_dump() nutzen um mal zu gucken was denn übertragen wird.
              PHP-Code:
              var_dump($_POST); 
              Kann mir wer mit den gegebenen Informationen helfen oder muss ich den vollen Code posten. Was auch nicht sehr viel wäre
              Immer den ganzen Code posten, wir können sonst nicht wissen ob an anderer Stelle etwas dazwischenfunkt.
              Relax, you're doing fine.
              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

              Kommentar


              • #8
                Zitat von Mim Beitrag anzeigen
                @ tkausl weil ich zum einen nicht weiß was du mit einem Link meinst
                Dann wirds aber dringend Zeit für Grundlagen
                Zitat von nikosch
                Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                Kommentar


                • #9
                  @ nameless97 danke das hat mir erst mal weiter geholfen ich habe im Code zu früh das Script beendet. So das es an der Stelle schon abgewürgt wurde.

                  Kommentar

                  Lädt...
                  X