Formular sichern...

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Hennington, 15. August 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. August 2006
    Moin moin!
    Hab hier ein Formular, welches zur Bestellung von Servern dient.
    Jetzt kann man aber noch einfach das Formular abschicken, wenn Felder leer sind. Um den Usern auch die ständige Klickerei zu erspran hatte ich mir gedacht, dass man den Submit Button erst anklicken kann, wenn die Eingaben aller Felder richtig sind, oder dass man ihn schon anklicken kann, aber man bei falscher Eingabe nur ein Fenster mit einem Errortext kommt, und das Formular nicht gesendet wird.

    Da ich momentan noch PHP lerne und mit anderen Dateien für mein Script beschäftigt bin, wäre es nett, wenn mir das jemand soweit machen könnte.. Weiß nicht, ob das in Javascript oder etwas anderem am besten realisierbar ist, jedenfalls würde ich mich total freuen, wenn das jemand machen könnte, oder mir ein Beispiel für ein Feld und den Submit Button liefern könnte, sodass ich das bei den anderen Feldern dann copy & pasten kann..

    Hier der Quellcode:
    PHP:
    <html>
    <head>
    <script language="JavaScript">
    <!--
    function prf () {
      if(form.bdayd.value%1 != 0) {
        alert("keine ganze Zahl!");
        return false;
      }
    }
    //-->
    </script>
    </head>
    <div class="tooltip" id="1">
        Geben Sie in dieses Feld bitte<br> Ihren Nachnamen ein!
    </div>
    <div class="tooltip" id="2">
        Geben Sie in dieses Feld bitte<br> Ihren Vornamen ein!
    </div>
    <div class="tooltip" id="3">
        Bitte geben Sie uns Ihr Geburtsdatum an! <br>(z.B. 13.07.1954)
    </div>
    <div class="tooltip" id="4">
        Falls vorhanden bitte den IRC Channel hier<br> eintragen! (Mit # Zeichen)
    </div>                                                         
    <div class="tooltip" id="5">
        Bitte geben Sie uns hier Ihre Mailadresse an!
    </div>
    <div class="tooltip" id="6">
        Bitte wählen Sie ein einfaches Passwort! <br> Supporter können dieses einsehen!<br> Es dient nur zur Verifizierung beim<br> Support.
    </div>
    <script>
    <!--
    wmtt = null;

    document.onmousemove = updateWMTT;

    function updateWMTT(e) {
        x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
        y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
        if (wmtt != null) {
            wmtt.style.left = (x + 20) + "px";
            wmtt.style.top     = (y + 20) + "px";
        }
    }

    function showWMTT(id) {
        wmtt = document.getElementById(id);
        wmtt.style.display = "block"
    }

    function hideWMTT() {
        wmtt.style.display = "none";
    }
    //-->
    </script>
    </html>
    <?php
        
    echo  '<form name="form" action="index.php?site=orderit" onSubmit="prf()" method="post">' ;
        echo 
    '<table>' ;
        echo 
    '<tr>' ;
            echo 
    '<td colspan="3">' ;
                echo 
    '<h2><center>Bestellformular</center></h2>' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td width="100">' ;
                echo 
    'Nachname:' ;
            echo 
    '</td>' ;
            echo 
    '<td>' ;
                echo 
    '<input type="text" name="name">' ;
            echo 
    '</td>' ;
            echo 
    '<td valign="top">' ;
                echo 
    '<img src="img/help.gif" onMouseOver="showWMTT(\'1\')" onMouseOut="hideWMTT()">' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td>' ;
                echo 
    'Vorname:' ;
            echo 
    '</td>' ;
            echo 
    '<td>' ;
                echo 
    '<input type="text" name="vorname">' ;
            echo 
    '</td>' ;
            echo 
    '<td valign="top">' ;
                echo 
    '<img src="img/help.gif" onMouseOver="showWMTT(\'2\')" onMouseOut="hideWMTT()">' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td>' ;
                echo 
    'Geburtstag:' ;
            echo 
    '</td>' ;
            echo 
    '<td>' ;
                echo 
    '<input type="text" size="3" maxlength="2" value="dd" name="bdayd">' ;
                echo 
    '&nbsp;<input type="text" size="3" maxlength="2" value="mm" name="bdaym">' ;
                echo 
    '&nbsp;<input type="text" size="4" value="yyyy"maxlength="4" name="bdayy">' ;
            echo 
    '</td>' ;
            echo 
    '<td valign="top">' ;
                echo 
    '<img src="img/help.gif" onMouseOver="showWMTT(\'3\')" onMouseOut="hideWMTT()">' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td>' ;
                echo 
    'IRC Channel:' ;
            echo 
    '</td>' ;
            echo 
    '<td>' ;
                echo 
    '<input type="text" name="ircc">' ;
            echo 
    '</td>' ;
            echo 
    '<td valign="top">' ;
                echo 
    '<img src="img/help.gif" onMouseOver="showWMTT(\'4\')" onMouseOut="hideWMTT()">' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td>' ;
                echo 
    'Mail:' ;
            echo 
    '</td>' ;
            echo 
    '<td>' ;
                echo 
    '<input type="text" name="mail">' ;
            echo 
    '</td>' ;
            echo 
    '<td valign="top">' ;
                echo 
    '<img src="img/help.gif" onMouseOver="showWMTT(\'5\')" onMouseOut="hideWMTT()">' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td>' ;
                echo 
    'Passwort:' ;
            echo 
    '</td>' ;
            echo 
    '<td>' ;
                echo 
    '<input type="text" name="password">' ;
            echo 
    '</td>' ;
            echo 
    '<td valign="top">' ;
                echo 
    '<img src="img/help.gif" onMouseOver="showWMTT(\'6\')" onMouseOut="hideWMTT()">' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '<tr>' ;
            echo 
    '<td align="right" colspan="3" >' ;
                echo 
    '<input type="submit" value="Abschicken">' ;
                echo 
    '</form>' ;
            echo 
    '</td>' ;
        echo 
    '</tr>' ;
        echo 
    '</table>' ;
    ?>
    PS: Ich weiß mittlerweile auch dass das total umständlich isr, die Tabellen etc. mit echo auszugeben Also bitte nixmehr dazu.. Bin eben noch am lernen
     
  2. 15. August 2006
    Also erstma zu der Tabelle

    Prinzipiell mach ich das auch immer so nur du kannst:

    echo "<tr>",
    "<td>",
    ".......";

    Das heißt nur einma echo schreiben

    Nun zu deinem eigentlichen Problem, um einfach nur zu überprüfen ob die Felder leer sind machst du dir eine Reihe von abfragen, diese Abfragen kommen in deine orderit.php .

    $error = "";
    if(empty($_POST['irgendwas'])){
    $error .= "Das Feld \"irgendwas\" war leer !";}
    if(....){
    $error .= "blabla";}

    Immer so weiter, das machst du für jedes Formularfeld.
    Am ende, nämlich da wo die Daten dann eingetragen werden sollen oder was auch immer (weiß nicht ob du mySQL datenbank benutzt oder so, gehe mal davon aus) machst du einfach folgendes.

    if($error = ""){
    ## Formularverarbeitung
    } else {
    echo "leider ist ein fehler aufgetreten.";}

    Ich hoffe das ist einigermaßen nachzuvollziehen.
    Natürlich kann man das auch richtig schön machen, ist jetzt nur grundsatz, wenn du willst kann ich dir auch in ICQ mal weiterhelfen wenn du es nicht hinbekommst.
     
  3. 15. August 2006
    oder sohier:

    Code:
    <?php
    echo '<table>
    <tr>
    <td>';
    ?>
    
    oder du machst es ganz ohne php, also deine "index.php" gliederst du so:
    Wenn du ne Variable schreiben willst, dann mach das so, wie das rotmarkierte.
    Und außerdem: Weniger echo() --> kleinere Dateigröße --> weniger Traffic und mehr performance

    Nun Zu deinem Problem mit den Feldern:
    PHP:
    $name = $_POST [ "name" ];
    if (
    $name == "" )
    {
    echo 
    'Bitte Name angeben' ;
    include (
    "formular.php" );
    }
    .
    .
    .
    mit dem include ("formular.php"); fügst du dein formular unten wieder ein. Man kann das auch so machen, dass das fehlende feld z.Bsp. rot hinterlegt wird. und wenn man mit POST etwas rumspielt, kann man auch alle anderen Eintragungen drinn lassen, sonst muss der Benutzer wegen dem einem Feld alles nochmal eingeben.
     
  4. 15. August 2006

    Da hab ich schon einige Abfragen drin, ob schon Kunden mit der Mailadresse und Bestellungen von der IP Adresse vorhanden sind.
    Ich hab oben auch extra geschrieben, dass das vorm absenden überprüft werden soll, um den Usern die klickarbeit zu ersparen..
    Hab in meinem Beitrag auch schon ws zu dem Schreibstil geschrieben.. mache das mittlerweile anders, aber bei sonem großen Script hab ich (vorerst) keine Lust, das alles zu ändern..

    @ Tupperware:
    Najo, geht auch so.. stimmt eigentlich Soweit denk ich garnicht erst wenn ich noch mit anderen Dingen beschäftigt bin

    Danke an euch beide!
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.