Vraag & Antwoord

Webdesign (HTML, CSS, Flash)

verplichte velden in formulier

12 antwoorden
  • ik ben een formuliertje aan het maken. De velden naam en telefoonnummer zouden verplichte velden moeten zijn, maar ik krijg dit niet voor elkaar. Kan iemand me helpen???? De code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>formulier</title> </head> <body style="background-color: rgb(255, 255, 255);"> <div align="center"> <center> <table style="width: 1000px; height: 100%;" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td bgcolor="#ffffff"></td> <td style="width: 500px; height: 516px;" colspan="2" bgcolor="#ffffff"> <table style="width: 971px; height: 549px;" border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td style="width: 969px;" background="images/backgr_vw.gif"> <div style="position: absolute; top: 193px; left: 240px;"></div> <br> <div align="center"> <center> <table border="0" cellspacing="1"> <tbody> <tr> <td align="center" bgcolor="#ffffff" width="100%"> <form method="post" action="contact.php"> <div align="center"> <center> <table background="images/pixel.gif" border="0" cellpadding="2" cellspacing="1" width="100%"> <tbody> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1); font-family: Helvetica,Arial,sans-serif;" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="339"><b><font size="2">Naam:</font></b><br> <input name="naam" size="50" type="text"></td> </tr> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1); font-family: Helvetica,Arial,sans-serif;" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="339"><font size="2">Adres:</font><br> <input name="adres" size="50" type="text"></td> </tr> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1); font-family: Helvetica,Arial,sans-serif;" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="339"><font size="2">Postcode en Woonplaats:</font><br> <input name="postcode_en_woonplaats" size="50" type="text"></td> </tr> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1); font-family: Helvetica,Arial,sans-serif;" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="339"><b><font size="2">Telefoonnummer:</font></b><br> <input name="telefoon" size="50" type="text"></td> </tr> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1); font-family: Helvetica,Arial,sans-serif;" id="table" background="images/pixel.gif" bgcolor="#ffec01" height="35" width="339"><font size="2">E-mail adres:</font><br> <input name="email" size="50" type="text"></td> </tr> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1); font-family: Helvetica,Arial,sans-serif;" id="table" background="images/pixel.gif" bgcolor="#f9e20a" width="339"><font size="2">Opmerking:</font><br> <textarea rows="6" name="opmerking" cols="50"></textarea></td> </tr> <tr> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="19"><font face="Verdana" size="2"> </font></td> <td style="background-color: rgb(255, 236, 1);" id="table" background="images/pixel.gif" bgcolor="#f9e20a" height="35" width="345"><font face="Verdana" size="2"><input value="Verzenden" type="submit"> <input value="Invoer wissen" type="reset"></font></td> </tr> </tbody> </table> </center> </div> <input name="recipient" value="info@venturefactory.nl" type="hidden"> <input name="required" value="naam, telefoon" type="hidden"> <input name="subject" value="Reactieformulier website " type="hidden"> <input name="redirect" value="bedankt.html" type="hidden"> <input name="missing_fields_redirect" value="missingfields.html" type="hidden"></form> </td> </tr> </tbody> </table> </center> </div> <br> </td> </tr> </tbody> </table> </td> <td bgcolor="#ffffff"></td> </tr> </tbody> </table> </center> </div> </body> </html>
  • Je zal dus op een of andere manier de invoer van de gebruiker moeten valideren. Dit kan client-side met behulp van javascript of server-side met behulp van bijvoorbeeld asp, php of jsp.
  • [quote:38167bbf5d="yendis"]Je zal dus op een of andere manier de invoer van de gebruiker moeten valideren. Dit kan client-side met behulp van javascript of server-side met behulp van bijvoorbeeld asp, php of jsp.[/quote:38167bbf5d] Dat doet dit formulier al. Hij gebruikt "contact.php". @TS: Je zou moeten kijken of in contact.php een validatie voor required velden in zit. Meestal neem je dan [code:1:38167bbf5d]<input type="hidden" name="required" value="veld1,veld2... etc">[/code:1:38167bbf5d]op
  • in contact.php staat: <?php mail("info@venturefactory.nl","Websiteformulier","Bericht vanaf de website","From: $email\n: Naam: $naam Adres: $adres Postcode & Woonplaats: $postcode_en_woonplaats Telefoonnummer: $telefoon Emailadres: $email Opmerking: $opmerking "); header("Location: bedankt.html"); ?> geen required code te vinden dus. kan je zeggen hoe die er in dit geval uit zou moeten zien??
  • Dat klopt. Aan deze routine heb je niet zoveel. Echter je kunt ook het perl script formmail gebruiken. Die staat [url=http://www.scriptarchive.com/formmail.html]hier[/url]
  • Ik heb even een kort scriptje geschreven die kijkt of de required velden zijn ingevuld. Zo niet, dan wordt er een melding op het scherm gegeven. Zo wel, dan wordt de mail verstuurd. Je moet dit wel even zelf combineren met je eigen script maar ik neem aan dat dat lukt.. [code:1:b0f6a12548] <?php if ($_SERVER['REQUEST_METHOD'] == "POST") { // Do some input validation here if ($_POST["Naam"]=="") { $error["name"] = "<font color=\"red\">Dit is een verplicht veld!</font>"; } if ($_POST["Telefoon"]=="") { $error["phone"] = "<font color=\"red\">Dit is een verplicht veld!</font>"; } if (!isset($error)) { // Send the email here header("Location: bedankt.html"); exit; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>formulier</title> </head> <body style="background-color: rgb(255, 255, 255);"> <form action="" method="POST"> <table> <tr> <td>Naam</td> <td><input type="text" name="Naam" value="<?= $_POST["Naam"] ?>" /></td> <td><?= $error["name"] ?></td> </tr> <tr> <td>Telefoon</td> <td><input type="text" name="Telefoon" value="<?= $_POST["Telefoon"] ?>" /></td> <td><?= $error["phone"] ?></td> </tr> <tr> <td>Postcode</td> <td><input type="text" name="Postcode" value="<?= $_POST["Postcode"] ?>" /></td> <td></td> </tr> <tr> <td>Email</td> <td><input type="text" name="Email" value="<?= $_POST["Email"] ?>" /></td> <td></td> </tr> <tr> <td></td> <td><input type="submit" value="Verstuur" /></td> <td></td> </tr> </table> </form> </body> </html> [/code:1:b0f6a12548] Succes ;)
  • Deprecated HTML met inline styles. *Auw* mijn arme ogen Zoiets kun je in je PHP doen Bijvoorbeeld: [code:1:d4fb9d9251] <?php if (!$_POST['naam'] or !$_POST['adres'] or !$_POST['woonplaats']) { header("Location: oepserdefloeps.html"); } ?> [/code:1:d4fb9d9251]
  • Zijn code is helemaal erg.. dus ik vond het niet echt relevant om daarop te gaan letten. Daarnaast geeft mijn oplossing duidelijk aan wat er fout is, waar jou oplossing enkel de gebruiker doorstuurt naar de volgende pagina..
  • [quote:2b9112abfb="yendis"]Zijn code is helemaal erg.. dus ik vond het niet echt relevant om daarop te gaan letten. Daarnaast geeft mijn oplossing duidelijk aan wat er fout is, waar jou oplossing enkel de gebruiker doorstuurt naar de volgende pagina..[/quote:2b9112abfb] Wat jij wil. 't is jou feesie joh.
  • Het feest is snel afgelopen als iemand het uit 2002 stammende formmail-script gaat gebruiken.. Ter aanvulling nog een client-side formuliervalidatie-voorbeeld: http://onlinetools.org/articles/unobtrusivejavascript/chapter5.html
  • [quote:edde9cdc00="boelieboelie"]... Ter aanvulling nog een client-side formuliervalidatie-voorbeeld: http://onlinetools.org/articles/unobtrusivejavascript/chapter5.html[/quote:edde9cdc00] Dit timmert de zaak redelijk goed dicht ja. Ook het format van het mail adres wordt met een regex gechecked. Welliswaar niet 'hack-proof' omdat het allemaal client-side gebeurt maar ik heb ook niet de indruk dat dat de reden is van de check. Bovendien, als je de invoer alleen maar doormailt is dat ook niet zo belangrijk. Mocht je om een of andere reden toch voor meer veiligheid gaan, dan bouw je nog een serverside scriptje er bij. Voorbeelden genoeg inmiddels. Als je om een of andere reden de invoer ook nog op het scherm wil tonen (vermoedelijk niet), dan zou ik er ook eventuele HTML uitfilteren (b.v. met htmlentities) Klinkt allemaal een beetje dubbelop (client side en serverside, en waarschijnlijk in jou geval ook niet nodig. Maar ik meld het even met het oog op het respecteren van server recources.
  • [quote:e7c57f7249="boelieboelie"]Het feest is snel afgelopen als iemand het uit 2002 stammende formmail-script gaat gebruiken.. Ter aanvulling nog een client-side formuliervalidatie-voorbeeld: http://onlinetools.org/articles/unobtrusivejavascript/chapter5.html[/quote:e7c57f7249] Aangepast werkt hij prima hoor. Uiteraard heb ik de depricated pagina's eruitgehaald en zwaar gemoderniseerd.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.