login  Naam:   Wachtwoord: 
Registreer je!
 Forum

form validatie

Offline elian - 11/08/2008 06:10 (laatste wijziging 11/08/2008 08:00)
Avatar van elianLid Hoi,
ik heb een form, waar je naam en mail adres moet invullen.
Met de submit, word eerst nagezien, of het mail adres niet in de dbase staat, dan word die erbij geplaatst.
Nu zou ik willen, dat ook de invulvelden nagezien worden voor geen tags, alsook geen leeg veld, alsook dat het een degelijk mail adres is die ingevuld is.
Nu mijn vraag, hoe en waar moet ik dat verwezelijken?
Ik heb al zitten zoeken op het internet, zelf al veel uitgeprobeerd, maar het lukt me niet.

het formulier:

  1. ?php
  2. include("header.php");
  3.  
  4.  
  5. ?>
  6.  
  7. <div id="Layer3" style="position:absolute; width:598px; height:115px; z-index:3; left: 160px; top: 19px; font-weight: bold;">
  8. <h1 align="center" class="style2" style="font-size: 48; color: #0D6031">Inschrijven voor de nieuwsbrief</h1>
  9. </div>
  10.  
  11. <div id="Layer2" style="position:absolute; width:283px; height:541px; z-index:2; left: 338px; top: 204px;">
  12.  
  13. <form action="indb.php" method="POST">
  14. <table width="500" border="0" cellspacing="2" cellpadding="2">
  15. <tr>
  16. <td width="232" class="kleiner" style="color: #0D6031">Naam :<br>
  17.  
  18. <input type="text" name="naam" size="35">
  19. </td>
  20. </tr>
  21. <tr>
  22. <td width="232" class="kleiner"style="color: #0D6031">Voornaam :<br>
  23. <input type="text" name="voornaam" size="35">
  24. </td>
  25. </tr>
  26. <tr>
  27. <td width="232" class="kleiner"style="color: #0D6031">E-mail adres :<br>
  28. <input type="text" name="email" size="35">
  29. </td>
  30. </tr>
  31.  
  32. <tr>
  33. <td colspan="2">
  34. <div align="lift">
  35. <input type="submit" name="Submit" value="Verzenden"style="color: #0D6031">
  36. </div>
  37. </td>
  38. </tr>
  39. </table>
  40. </form></div>


de verwerking: indb.php

  1. <?php
  2.  
  3. include('connect.php');
  4.  
  5. $naam = $_POST['naam'];
  6. $email = $_POST['email'];
  7. $voornaam = $_POST['voornaam'];
  8.  
  9. $qry = mysql_query("SELECT COUNT(email) FROM mailing WHERE email = '".mysql_real_escape_string($_POST['email'])."'");
  10. if (mysql_result($qry, 0) == 0)
  11. {
  12. $query ="INSERT INTO `mailing` (`naam`,`voornaam`, `email` ) VALUES ('$naam', '$email', '$voornaam'";
  13. mysql_query($query) or die (mysql_error());
  14. header("Location:welkom.php");
  15. }
  16. else {header("Location: was.php");
  17. }
  18.  
  19.  
  20.  
  21. ?>

kan er mij iemand tips geven aub?
met dank





2 antwoorden

Gesponsorde links
Offline ThAlmighty - 11/08/2008 10:22
Avatar van ThAlmighty HTML beginner ik gebruik zelf altijd alleen checks voor leeg ofniet. Verder doe ik alles wat in de database staat PHP.net: mysql_real_escape_string en PHP.net: htmlentities. Zo heb je een robuust genoeg systeem. Verder zou ik je even een stukje code geven:
  1. // Hiervoor komt jouw database check
  2. (!$naam) ? $error[] = 'U heeft geen naam ingevuld' : NULL;
  3. (!$email) ? $error[] = 'U heeft geen emailadres ingevuld' : NULL;
  4. (!$voornaam) ? $error[] = 'U heeft geen voornaam ingevuld' : NULL;
  5.  
  6. if(is_array($error)){
  7. // Hier doe je wat er moet gebeuren met error's
  8. // Bijvoorbeeld ze laten zien aan de gebruiker
  9. echo 'Er waren fouten bij het invullen';
  10. foreach($error as $row){
  11. echo $error.'<br />';
  12. }
  13. }else{
  14. // Doe hier wat je moet doen als het goed gaat
  15. }

Dit lijkt misschien lang, maar hou altijd in je achterhoofd dat 95% van alle code gemaakt is voor als het fout gaat, en slechts 5% voor als het goed gaat .

Nog een tip, als mensen een formulier fout invullen, vinden ze het altijd fijn dat wat er goed ingevuld was blijft staan.
Succes
Offline elian - 12/08/2008 07:29
Avatar van elian Lid bedankt voor je reactie
 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.236s