Ankündigung

Einklappen
Keine Ankündigung bisher.

submit abfangen

Einklappen

Neue Werbung 2019

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

  • submit abfangen

    hi,
    ist es möglich mit php ein formular bei submit abzufangen wenn keine Inhalte in den type fields sind und einen entsprechenden Fehlercodeanzugeben?

    Ich finde im Forum nichts passendes dazu, auch in tuts auf verschiedenen Seiten sehe ich nichts vergleichbares.

    Hatte eine ähnliches problem heute Morgen mit checkboxen, aber da habe ich es mit nem einfachen checked gelöst.
    Hier weiss ich nicht weiter

    Geht mein Vorhaben in php überhaupt?


  • #2
    Code:
    <form action="datei2.php" method="post">
    <input type="text" name="text">
    <input type="hidden" name="sent" value="true">
    <input type="submit" value="send">
    </form>
    datei2.php:
    Code:
    <?php
        if($_POST['sent']=='true') {
            $text = trim($_POST['text']);
                 if(empty($text)) {
                     die('Textfeld ist leer!');
                 } else {
                     print('alles klar!');
                 }
        }
    ?>

    Kommentar


    • #3
      also man kanns mit php machen und zwar: wenn wichtige felder leergeblieben sind einfach das form ausgeben und die breits übermittelten daten eintragen.

      geht aber auch per js
      mfg Floh

      Programmers don't die, they GOSUB without RETURN

      Kommentar


      • #4
        na du schickst das z.b. an die gleiche datei und überprüfst ob die felder leer sind

        Code:
        <?php
          if ( $_POST['submit'] and (empty($_POST['name']) or empty($_POST['ort'])) ) { 
            echo "Bitte alle Felder ausfüllen";
          }
        ?>
        <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
        <input type="text" name="name" value="<?php echo $_POST['name'] ?>">
        ... 
        <input type="submit" name="submit" value="Ok">
        </form>

        Kommentar


        • #5
          Besser (und vor allem Traffic-schonender) isses, wenn du vor dem Abschicken das Formular mit javaScript überprüfst...
          Code:
          <script>
          function pruefen()
          {
            if (...) Deine Bedingungen
              return true;
            else
            {
              alert("Fehler");
              return false;
            }
          }
          </script>
          
          <form .... onSubmit="return pruefen()">

          Kommentar


          • #6
            und prüfen kannste damit:
            Code:
            document.<formname>.<feldname>.value = ""

            Kommentar


            • #7
              @thice

              hi,
              das habe ich auch,
              generell funktionieren die Abfragen auch.
              Nur mein script trägt dann trotzdem was ein. Auch wenn es nur ne leere Zeile ist.

              Ich habe 2 dateien. in der einen das formular
              Code:
              <?php
              
              
              if($HTTP_SESSION_VARS[loggedin]) { ?>
              
              <form action="<?=$PHP_SELF."?".SID."&s=u_add2"?>" method="post">
              <table width="100%" border="0" cellspacing="2" cellpadding="2">
              <tr>
              	<td valign="top"width="80">[img]../img/user.gif[/img]</td>
              	<td class="header">
              <?=$lang[addUsr]?></td>
              </tr>
              <tr><td colspan="2"></td></tr>
              </table>
              Hier können Sie bei Bedarf User in Ihren Verteiler aufnehmen.
              
              Bedenken Sie jedoch, dass dies nur im Einverständnis der User 
              
              erfolgen darf, da es sonst rechtliche Folgen nach sich ziehen kann. 
              
              
              </p>
              
              
                <table width="400" border="0" cellspacing="2" cellpadding="2">
                  <tr>
                    <td>E-Mail:</td>
                    <td><input type="text" name="email"></td>
                  </tr>
                  <tr>
                    <td>Name:</td>
                    <td><input type="text" name="name">
              	  <input type="hidden" name="sent" value="true"> </td>
                  </tr>
                </table>
                
              
                
              
                <table width="400" border="0" cellspacing="2" cellpadding="2">
                <tr><td colspan="2"></td></tr>
                  <tr>
              	  <tr><td colspan="2">Legen Sie bitte fest, welche der zur Auswahl stehenden 
              Kategorien der User abonieren soll.
              
              </td></tr>
                  <tr>
              	
                    <td width="40"></td>
                    <td><input type="checkbox" name="cat[]" class="box" value="all" checked>Alle</td>
                  </tr>
              	<?
              include($other."/mysql.php");
              $dbres=@mysql_query("select * from ".$cfg[dbpre]."cat") or error(mysql_error());
              @mysql_close($conn);
              
              if($error=="") {
                     while($row=mysql_fetch_array($dbres,MYSQL_ASSOC)) {
                           echo "<tr><td></td><td><input class=\"box\" type=\"checkbox\" name=\"cat[]\" value=\"$row[id]\">".stripslashes($row[name])."</td></tr>";                       
                     }
                     mysql_free_result($dbres);
              } else {
                    echo $lang[follErr].": ".$error;
              }
              
              ?>
                  <tr>
                    <td></td>
                    <td></td>
                  </tr>
                </table>
                
              
              
              
              
              
              
              <input type="submit"  class="butt" value="<?=$lang[add]?>">
              </form>
              <?php
              } else {
                echo "Access Denied - Zutritt verboten!!!";
              }
              ?>

              und in der anderen die Meldungen
              Code:
              <?php
              
              
              if($HTTP_SESSION_VARS[loggedin]) {
              
                  if($_POST['sent']=='true') {
                      $text = trim($_POST['text']);
                           if(empty($text)) {
                               die('Textfeld ist leer!');
                           } else {
                               print('alles klar!');
                           }
                  }
              	
              if($cat[0]!="all") {
                $kat="|".implode("|",$cat)."|";
              } else {
                $kat=$cat[0];
              }
              
              include($other."/mysql.php");
              
              
              @mysql_query("insert into ".$cfg[dbpre]."user(email, cat, acc, acceptid, name) values ('".addslashes($email)."','$kat','y','".md5(uniqid(time()))."','$name')") or error(mysql_error());
              @mysql_close($conn);
              
              
              ?>
              <table width="100%" border="0" cellspacing="2" cellpadding="2">
              <tr>
              	<td valign="top"width="80">[img]../img/user.gif[/img]</td>
              	<td class="header">
              <?=$lang[addUsr]?></td>
              </tr>
              <tr><td colspan="2"></td></tr>
              </table>
               
              <? 
              if($error=="") { 
                    echo $lang[usrCAdded];
              } else {
                    echo $lang[follErr].": ".$error;
              }
              
              ?>
              <?php
              } else {
                echo "Access Denied - Zutritt verboten!!!";
              }
              ?>
              Als newbie der das gerade mal 5 tage macht steh ich kurz davor mir ne Kugel zu geben. Wo ist der Wurm drin?

              Kommentar


              • #8
                nur eine überprüfung mit js ist sch***e, wenn beim client z.b. js deaktiviert ist

                außerdem traffic-schonend? die paar bytes...

                Kommentar


                • #9
                  Zitat von unknownsoul
                  nur eine überprüfung mit js ist sch***e, wenn beim client z.b. js deaktiviert ist

                  außerdem traffic-schonend? die paar bytes...
                  Naja also wenn du eine Community mit über 100.000 Usern betreust und jeder von denen täglich durschn. 10 Beiträge postet und doppelt soviele Messages verschickt, kommt da ordentlich was zusammen.

                  In PHP muss natürlich auch geprüft werden, is ja kklar!

                  Kommentar


                  • #10
                    Ich habe jetzt alle Variationen von euch durch.
                    Ich bekomme es einfach net hin.

                    Die abfragen greifen alle- nur übermitteln tuts denoch.
                    da kann ich soviel abfragen wie ich will, selbst bei Javascript.
                    Warum? kann mir das einer erklären?

                    Kommentar


                    • #11
                      habs hinbekommen, ich hatte versehentlich ne falschen inputfield angesprochen.

                      Vielen Dank euch allen für eure hilfe

                      Kommentar

                      Lädt...
                      X