Switch / Case

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

  • Switch / Case

    Möchte beim Usermanagement von Abraxax eine Erweiterung erstellen, damit die Benutzer ein neues Passwort anfordern können.
    Für dies habe ich die folgende Datei "forgotpassword.php" erstellt...

    PHP-Code:
    <?php

        session_start
    ();

        include(
    "inc/db.inc.php");
        include(
    "inc/user.inc.php");

        if (isset(
    $_POST['action']))
        {
            switch(
    $_POST['action']) {
                
                case 
    "senden":
                
                
    $actcode md5(uniqid(time()));
                
    $reciepent "test@test.com";
                
    ForgotPassword ($actcode$reciepent);
                break;
                
                case 
    "anfordern":
                echo 
    "Passwort angefordert";
                break;
            }
    }

    ?>
    <br>
    <form name="forgotpassword" method="post" action="forgotpassword.php">
      <input type="hidden" name="action" value="senden">
      Bitte Ihre Emailadresse eingeben.
      <br>
      Email:&nbsp;</td><td><input class="flat" type="text" name="email"><br>
      <input type="submit" value="Senden">
    </form>
    Wenn man nun den Button "Senden" klickt wird eine Mail mit dem folgenden Link an test@test.com gesendet...

    ../forgotpassword.php?action=anfordern&actcode=26dd74d298fe81ec61248333aca20b39

    Wenn der Benutzer nun auf den Link klickt, sollte eigentlich "Case "anfordern" abgearbeitet werden. Dies passiert aber leider nicht. Kann mir jemand einen Tipp geben, warum dies nicht passiert?

    Danke!

  • #2
    mach mal aus $_POST :
    $_REQUEST ...

    das dürfte es dann sein

    gruss
    iglo

    Kommentar


    • #3
      Zur Kurzerklärung.....

      Links werden immer über die Method get gesendet, Formulare für gewöhnlich mit method post.....

      Demzufolge gibt es ein $_GET und ein $_POST......

      Beide vereint + $_COOKIE.....
      Lassen sich in $_REQUEST finden.......

      Und da du nur auf $_POST Rücksicht nimmst wird das ganze übersprungen.......

      Das ganze wäre dir denke ich klarer wenn du einen Default: Block hinzufügst mit Ungültiger Parameter oder ähnliches den da würde er so immer landen bei einer Url...
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Original geschrieben von Payne_of_Death
        Formulare für gewöhnlich mit method post.....
        gewöhnlich ... ist relativ ... by default, d.h. ohne Angabe von method, immer per GET

        Kommentar


        • #5
          Original geschrieben von asp2php
          gewöhnlich ... ist relativ ... by default, d.h. ohne Angabe von method, immer per GET
          Sagen wir halt es gehört sich so
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar


          • #6
            Original geschrieben von Payne_of_Death

            Das ganze wäre dir denke ich klarer wenn du einen Default: Block hinzufügst mit Ungültiger Parameter oder ähnliches den da würde er so immer landen bei einer Url...
            ein Default würde ihm hier nix bringen, da er ja noch ein if(isset... ums switch gelegt hat.
            mfg
            marc75

            <Platz für anderes>

            Kommentar


            • #7
              Original geschrieben von marc75
              ein Default würde ihm hier nix bringen, da er ja noch ein if(isset... ums switch gelegt hat.
              auch wieder wahr.....

              bin unaufmerksam das verheißt nichts Gutes....
              [color=blue]MfG Payne_of_Death[/color]

              [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
              [color=red]Merke:[/color]
              [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

              Murphy`s Importanst LAWS
              Jede Lösung bringt nur neue Probleme
              Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
              In jedem kleinen Problem steckt ein großes, das gern raus moechte.

              Kommentar


              • #8
                Original geschrieben von Payne_of_Death

                bin unaufmerksam das verheißt nichts Gutes....
                das heisst Urlaub machen... habe gerade eine Woche hintermir....und nix gebrochen.
                mfg
                marc75

                <Platz für anderes>

                Kommentar


                • #9
                  Danke für die Antworten. Werde dies heute Abend mal ausprobieren. Eine Frage habe ich aber doch noch zum folgenden...

                  Beide vereint + $_COOKIE.....
                  Lassen sich in $_REQUEST finden.......
                  Gibt es einen Grund, warum man nicht einfach immer $_REQUEST benutzen sollte?

                  Kommentar


                  • #10
                    Original geschrieben von Powerplay
                    Danke für die Antworten. Werde dies heute Abend mal ausprobieren. Eine Frage habe ich aber doch noch zum folgenden...



                    Gibt es einen Grund, warum man nicht einfach immer $_REQUEST benutzen sollte?
                    wenn gleichbenannte Variablen in POST und GET unterschiedlich sind, oder weil REQUEST größer ist und damit das durchwühlen des gesamten Arrays langer dauert usw. nimm einfach das kleinste, was du benötigst!

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      wenn du dir sicher sein kannst, dass die variablen z.b. nur per post übergeben werden, ist es auch später klarer, woher das skript die vars beziehn ,wenn dann da $_POST...
                      steht


                      gruss
                      iglo

                      Kommentar


                      • #12
                        Naja wenn ich über das Formular entscheiden kann "mach das" und das auch via url möglich ist, trägt mögliches Risikopotential.

                        Da heisst es abwägen -> Seiten einbinden via $_REQUEST
                        Ansonsten explizit $_GET oder $_POST ansteuern.....

                        Abgesehen davon machts wie bereits gesagt wurde keinen Sinn ein riesen Array zu durchlaufen anstatt z.B. nur $_POST.....Das könnte sich sehr summieren je nach Situation....

                        der Rest steht ja eh bereits schon da.....
                        [color=blue]MfG Payne_of_Death[/color]

                        [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                        [color=red]Merke:[/color]
                        [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                        Murphy`s Importanst LAWS
                        Jede Lösung bringt nur neue Probleme
                        Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                        In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                        Kommentar

                        Lädt...
                        X