Ankündigung

Einklappen
Keine Ankündigung bisher.

php mit formularen

Einklappen

Neue Werbung 2019

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

  • php mit formularen

    tag, ich mal wieder ^^
    die Syntax von JS und PHP ist ja so ziemlich ähnlich, also dürfte doch auch der Funktionsaufbau so sein, wie bei JS oder?
    also:
    Code:
    <?
    function pruefen() {
    
    if (zahl < 25) {
    echo "richtig";
    } else {
              echo "falsch";
              }
    }
    ?>
    
    <form method="post" action="andere_seite.php">
      <input type="submit" value="senden" onClick="pruefen()">
    </form>
    (das ist jetzt nur ein Beispiel, also keine richtige Anwendung)

    weil ich will eine if abfrage machen und erst wenn sie "true" ist, soll eine andere Seite aufgerufen werden. das mit der anderen Seite dürfte ja durch das attribut "action='andere-seite.php' " geschehen oder? (wenn ich das so richtig verstanden habe)
    kann mir vielleicht jemand den code dafür geben, für so eine richtige if anweisung, die geht, dass ich etwas habe, wo ich mal "nachschlagen" kann?!
    oder anders gefragt, wie kann ich es in php machen, dass man auf eine bestimmte Seite weiter geleitet wird, erst "nachdem" die if funktion erfüllt worden ist. wie kann ich das einem Button (oder Submit) mitteilen?
    Rollt nen Ball und die Ecke und ist weg!

  • #2
    Das geht nicht, PHP greift erst wieder beim Laden der nächsten Seite. Sowas kannst du nur mit JS oder einer anderen clientseitigen Sprache lösen. Und wenn du JS sowieso kannst, dann weißt du ja, wie dein Problem zu lösen ist. Das Blöde dabei ist nur, dass es überhaupt keine Prüfung gibt, wenn man JS deaktiviert hat.

    Kommentar


    • #3
      hm.. ich sachen JS hab ich auch keine ahnung, nur so ein bisschen, wie jetzt das mit der einfachen if funktion und so nen paar kleinigkeiten.
      also eher mangelhaft

      edit: und welche Lösung gibt es dann in PHP dafür? wenn es überhaupt eine gibt
      Rollt nen Ball und die Ecke und ist weg!

      Kommentar


      • #4
        Du schickst das Formular ab und überprüfst die Eingaben auf der nächsten Seite.

        Kommentar


        • #5
          also erst ganz normal das Formular erstellen, ohne PHP, dies dann abschicken und auf der nächsten Seite kann ich dann wo ich die Daten stehen habe aus dem Formular diese IF Funktion erstellen?!
          also abfragen ob die Daten alle richtig sind oder ob ggf. welche fehlen?!
          Rollt nen Ball und die Ecke und ist weg!

          Kommentar


          • #6
            ein kleines, sich eigentlich selbst erklärenden beispiel:
            PHP-Code:
            <?php
               
               session_start
            ();

               if( isset(
            $_POST['sent']) )
               {
                    
            /**
                      *   Irgendwelche Funtkionen aufrufen und eventuell irgendwohin
                      *   weiterleiten oder so .. z.B. per header() 
                      *   auf genau diese Seite, um in den ELSE-Zweig zu kommen.
                      */

                    
            if( strcmp(trim($_POST['foo']),'') == 
                        
            ||
                        
            strcmp(trim($_POST['bar']),'') == )
                    {
                        
            $_SESSION['foo'] = $_POST['foo'];
                        
            $_SESSION['bar'] = $_POST['bar'];

                        
            header'Location: ' $_SERVER['PHP_SELF'] . '?error=' );
                    }

                    
            /**
                      *   noch irgendwas machen .. eventuell auch noch ein innerer
                      *   ELSE-Zweig. Ist jedem selbst überlassen und hängt davon ab,
                      *   was eigentlich geschehen soll.
                      */

               
            }
               else
               {
                    
            /**
                      *   z.B. das Formular anzeigen
                      *   Bei einer inkorrekten Eingabe erscheint eine Fehlermeldung.
                      */        

                    
            if( isset($_GET['error']) )
                    {
                         echo 
            '<strong style="color:#ff0000;">Fehler. Überprüfen Sie die Eingaben.[/b]';
                    }

                    
            printf'<form method="post" action="%s">
                              <input type="text" name="foo" value="%s" />
                              <input type="text" name="bar" value="%s" />
                              <input type="hidden" name="sent" value="1" />
                              <input type="submit" name="absenden" value="weg damit" />'
            ,
                           
            $_SERVER['PHP_SELF'],
                           
            $_SESSION['foo'],
                           
            $_SESSION['bar']); 
                    
                    
            session_destroy(); 
               }
               

            ?>
            grüße ben
            [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

            Kommentar


            • #7
              vielleicht nicht ganz so "selbsterklärend" für einen, der noch kaum ahnung von php hat. also so zum teil isses klar, was passiert/passieren soll, nur so ein paar Befehle sagen mir noch gar nichts, müsste ich selbst erst alle nachgucken, so wie:
              strcmp
              trim(das heíß ja soweit ich weiß irgendwas mit anpassen?!)
              $_SESSION
              header (denke, dadurch kommt man dann auf eine andere seite, wenn man das "location" sieht in der Klammer)
              printf
              $_SERVER
              session_start/"_destroy (da denke ich mal, dass das die "Funktion" sein soll, wo sie beginnt und aufhört)

              MfG
              Rollt nen Ball und die Ecke und ist weg!

              Kommentar


              • #8
                Zitat von kampfnickel
                müsste ich selbst erst alle nachgucken
                dafür gibt es das manual
                http://php.net/funktionsname

                Zitat von kampfnickel
                strcmp
                vergleicht zwei zeichenketten.
                man könnte auch schreiben
                Code:
                if( $var1 == $var2 )
                aber dagegen sträube ich mich.

                Zitat von kampfnickel
                trim
                schneidet alle leerzeichen am anfang und am ende der variable ab.

                Zitat von kampfnickel
                $_SESSION
                das superglobale array $_SESSION.
                das ist keine funktion.
                über sessions kannst du hier ne menge nachlesen:
                http://php.net/session

                Zitat von kampfnickel
                header
                hat verschiedene anwendungsbereiche. einer davon ist die weiterleitung.
                beachte den manualeintrag .. du wirst zu 98% eine fehlermeldung erhalten. einfach mal nach diese fehlermeldung im forum oder auf http://php-faq.de suchen .. du wirst fündig.

                Zitat von kampfnickel
                printf
                eine form der strukturierten, formatierten ausgabe. ich hätte auch alles per echo ausgeben lassen können .. das ist mir aber zu unübersichtlich.

                Zitat von kampfnickel
                $_SERVER
                erstelle eine datei mit folgendem inhalt
                PHP-Code:
                <?php

                   phpinfo
                ();

                ?>
                da findest du ganz unten den inhalt des arrays $_SERVER .. schau mal rein

                Zitat von kampfnickel
                session_start/"_destroy
                startet und beendet eine session.
                session destroy habe ich hier nur verwendet, damit ich die arrayelemente $_SESSION['foo'] und $_SESSION['bar'] nicht immer einzelnd zurücksetzen muss, wenn ich nen neuen test mache

                das mal so in kürze .. der rest steht im manual.

                grüße ben.
                [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                Kommentar


                • #9
                  danke
                  dann werde ich mich da mal ordentlich dahinter setzen und versuchen zu verstehen was ich lese ^^
                  Rollt nen Ball und die Ecke und ist weg!

                  Kommentar


                  • #10
                    bei fragen .. weißt du ja wo du hilfe finden kannst
                    [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                    Kommentar


                    • #11
                      Zitat von Ben
                      Zitat von kampfnickel
                      strcmp
                      vergleicht zwei zeichenketten.
                      man könnte auch schreiben
                      Code:
                      if( $var1 == $var2 )
                      aber dagegen sträube ich mich.
                      Und warum sträubst du dich dageegn, wenn man fragen darf? Hat strcmp irgendwelche Vorteile oder sieht es nur anders aus?

                      Kommentar


                      • #12
                        jeder anfänger schreibt bei zeichenketten vergleichen $string1 == $string2 ..
                        ich habe mit Java wirklich angefangen zu programmieren und da ist das falsch ..

                        da heißt es
                        string1.equals(string2);

                        und irgendwie .. ich weiß auch nicht .. ist das so in meinem kopf drin
                        [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                        Kommentar


                        • #13
                          bei fragen .. weißt du ja wo du hilfe finden kannst
                          ich werde mich dann einfach an dich wenden :P
                          Rollt nen Ball und die Ecke und ist weg!

                          Kommentar


                          • #14
                            Zitat von Ben
                            jeder anfänger schreibt bei zeichenketten vergleichen $string1 == $string2 ..
                            ich habe mit Java wirklich angefangen zu programmieren und da ist das falsch ..

                            da heißt es
                            string1.equals(string2);

                            und irgendwie .. ich weiß auch nicht .. ist das so in meinem kopf drin
                            Und ich dachte schon an $var1 == $var2 wäre etwas falsch .. puuh

                            Kommentar


                            • #15
                              Zitat von maxi
                              Und ich dachte schon an $var1 == $var2 wäre etwas falsch .. puuh
                              wenn du mich fragst, dann ist es auch falsch

                              @nickel:
                              ich meinte das forum, gelle?
                              [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

                              Kommentar

                              Lädt...
                              X