PHP Script und Formular in einer Datei

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

  • PHP Script und Formular in einer Datei

    Habe ein Formular (html Datei) und einen PHP Script (PHP-Datei)



    kann man das in EINER Datei machen, ich möchte damit folgendes erreichen


    1. Das eingegebene im Formularfeld auswerten, ob es den bestimmten Inhakt hat (z.B. 4-stellige Zahl, oder erste Stelle der Eingabe ist ein "?"
    2. wenn das Eingegebene nicht korrekt ist, dann soll das Formular angezeigt bleiben
    3. wenn die Eingabe richtig ist, dann soll der PHP Teil in der Datei ausgeführt werden


    Kann mir da bitte jemand helfen

  • #2
    Habe es mal versucht, aber es geht leider nicht.
    Wenn ich das Formular absende, kommt des echo nicht und es wird wieder das Formular angezeigt.


    Das Formular soll nur angezeigt bleiben, wenn das Eingegebene nicht korrekt ist (hab ich noch keine Abfrage gemacht)


    Und wenn alles stimmt, dann soll das Echo (oder der ganze PHP-Code ausgeführt werden


    <div>
    PHP-Code:
    <?php    
        
    //Formulareingabe prüfen 
        
    if ($_POST[submit] && $_POST[check] == "1") {
          
    //Das was passieren soll, wenn das Formular abgeschickt wurde ### 
       
          
    echo 'Formular abgesendet';
       
        } 
    // if Ende
       
      
    ?>
       
      <!DOCTYPE html>
      <html lang="en">
      <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Suche</title>
        <link rel="stylesheet" href="layout.css">
      </head>
      <body>
          <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="codeingabe">
            <input type="text" id="code" name="code" autofocus><br><br>
            <input type="submit" name="btnG" value="Suche">
            <input type="hidden" value="1" name="check">
            </form>
      </body>
      </html>

    Kommentar


    • #3
      Vergiss die Quotes nicht - dann brauchst du auf Check gar nicht mehr überprüfen.

      PHP-Code:
      <?php    
          
      //Formulareingabe prüfen 
          
      if ($_POST['submit']) {
            
      //Das was passieren soll, wenn das Formular abgeschickt wurde ### 
         
            
      echo 'Formular abgesendet';
         
          } 
      // if Ende
         
        
      ?>
         
        <!DOCTYPE html>
        <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Suche</title>
          <link rel="stylesheet" href="layout.css">
        </head>
        <body>
            <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="codeingabe">
              <input type="text" id="code" name="code" autofocus><br><br>
              <input type="submit" name="submit" value="Suche">
              <input type="hidden" value="1" name="check">
              </form>
        </body>
        </html>
      Achtung: der Submit-Button muss auch genauso heißen.

      Kommentar


      • #4
        1. Das Prinzip nennt sich Affenformular
        2. Array Indizes werden mit Quotes angegeben, sonst sind es Konstanten
        3. PHP_SELF solltest Du besser nicht verwenden
        4. Soll das Formular nach der Verareitung erneut angezeigt werden? Wenn nicht,benötigst Du ein exit. Evtl. zusammen mit einer header Umleitung

        Kommentar


        • #5
          Es geht leider nicht. Egal ob ich da was eingeben in das Formularfeld oder nicht. Beim Absenden bleibt immer das Formular stehen und das ECHO wird nicht ausgeführt

          Kommentar


          • #6
            Lass Dir als erstes mal ein var_dump($_POST) ausgeben, dann siehst Du, was im POST Kanal drin steckt.
            Beim ersten Aufruf führt das zu einem Warning, das ist normal, wichtig ist, dass Du nach dem Absenden etwas drin stehen hast.

            Kommentar


            • #7
              Zitat von ArneDrews Beitrag anzeigen
              1. Das Prinzip nennt sich Affenformular
              2. Array Indizes werden mit Quotes angegeben, sonst sind es Konstanten
              3. PHP_SELF solltest Du besser nicht verwenden
              4. Soll das Formular nach der Verareitung erneut angezeigt werden? Wenn nicht,benötigst Du ein exit. Evtl. zusammen mit einer header Umleitung

              Das Formular soll nur immer dann weiter angezeigt werden, wenn die Eingabe nicht stimmt (es soll z.B. immer eine 4-stellige, oder 8 stellige Zahl da rein und das mal mit "?" beginnend oder nur die Zahl:
              z.B. 1234 oder 12345678 oder ?1234 oder ?12345678


              wenn die Eingabe richtig ist, dann soll mein PHP-Code ausgeführt werden (im Beispiel hab ich nur ein ECHO) der richtige PHP-Code springt dann zu einer anderen Website mittels



              echo '<meta http-equiv="refresh" content="1; url=' . htmlspecialchars($url, ENT_COMPAT, 'UTF-8') . '">';

              Kommentar


              • #8
                Den Sprung zu einer anderen Website kannst Du auch mit header() machen, dazu brauchst Du keinen HTML Tag. Bei dem Meta-Tag werden ja Informationen an den Browser gesendet, das benötigst Du ja nicht.
                PHP-Code:
                header('location: https://www.example.com');
                exit; 
                Etwas zweck entfremdet, aber besser, wie das HTML Meta-Tag.

                Kommentar


                • #9
                  ich habe es derzeit alles in 2 Dateien und das funzt ja auch soweit gut.


                  • Habe ber noch keine Abfrage des INPUT Feldes auf die Eingaberichtigkeit
                  • wollte das in EINE Datei haben

                  also dass nur beim Absenden (und wenn die Eingabe einer Vorgabe entspricht)
                  --> mein PHP-Script abgearbeitet wird (der alleine geht wunderbar)
                  dabei dann das Formular nicht wieder angezeigt wird.


                  Und wenn die Eingabe nicht nach einer Vorgabe ist, soll das Formular weiter angezeigt werden mit evtl. einem Hinweis "Eingabe falsch oä."

                  Kommentar


                  • #10
                    Ja... und was ist mit #6 und #8?
                    Probiert, ignoriert oder nicht verstanden?

                    Wenn der Codeblock nicht ausgeführt wird, scheint die Bedingung der IF-Klause falsch zu sein, bzw. false zu ergeben. => #6

                    Ob in zwei oder einer Datei, eine direkte Umleitung über den Browser macht keinen Sinn => #8

                    Code, der funktioniert, ist nicht immer automatisch eine gute Lösung.

                    Kommentar


                    • #11
                      #6

                      [COLOR=#000000][FONT=-webkit-standard]array(3) { ["code"]=> string(4) "1234" ["submit"]=> string(5) "Suche" ["check"]=> string(1) "1" }[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]
                      [/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]Die Post-Eingabe funktioniert ja[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]
                      [/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]#8[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]weiß nicht wie ich das machen muss.[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]Ich habe derzeit diese Weiterleitung zur Googlesuche mit dem im PHP errechnetem Wert der an die Googlesuche angehangen ist .[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]Das geht alles wunderbar[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]
                      [/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]Sorry, bin leider blutiger Anfänger und möchte nun eben nur noch, dass ich die Eingabe des Wertes im Formular "kontrolliere" auf Richtigkeit.[/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]
                      [/FONT][/COLOR]
                      [COLOR=#000000][FONT=-webkit-standard]Das Beispiel aus #3 geht, habe da den namen erst falsch gehabt.
                      [/FONT][/COLOR]

                      Kommentar


                      • #12
                        Das submit ist im dump von $_POST ja ersichtlich, von daher sollte das auch funktionieren. Aber der Value ist "Suche" vom Typ string. Du benötigst aber einen bool:
                        PHP-Code:
                        if (isset($_POST['submit']))
                        {
                         echo 
                        'Formular abgesendet';

                        Kommentar


                        • #13
                          Zitat von ArneDrews Beitrag anzeigen
                          Das submit ist im dump von $_POST ja ersichtlich, von daher sollte das auch funktionieren. Aber der Value ist "Suche" vom Typ string. Du benötigst aber einen bool:
                          PHP-Code:
                          if (isset($_POST['submit']))
                          {
                           echo 
                          'Formular abgesendet';


                          danke, es lag am "name" der erst nicht "submit" war :-)


                          es funktioniert jetzt alles supi

                          Kommentar

                          Lädt...
                          X