login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Add nodig voor niet ingevulde hokjes form. (Opgelost)

Offline DieHard - 16/04/2008 14:31 (laatste wijziging 16/04/2008 14:32)
Avatar van DieHardPHP interesse Kan iemand mij uitleggen hoe ik ervoor kan zorgen via het php script dat deze het aangeeft als er een vakje niet ingevuld is en voor een geldig email address?

  1. <?php
  2. $to = "email@hotmail.com";
  3. $subject = $_POST['subject'] ;
  4. $bericht = $_POST['message'] ;
  5. $header = "From: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
  6. $header .= "Reply-To: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
  7. $header .= "X-Priority: 1";
  8. mail ($to, $subject, $bericht, $header);
  9. ?>
  10.  
  11. <SCRIPT language="JavaScript">
  12. <!--
  13. window.location="http://website.com";
  14. //-->
  15. </SCRIPT>


  1. <form id="form" action="contact.php" method="post">
  2. <table width="80%" border="0">
  3. <tr>
  4. <td>Name:</td>
  5. <td><input type="text" name="name" id="name" /></td>
  6. </tr>
  7.  
  8. <tr>
  9. <td height="23">Email Address:</td>
  10. <td><input type="text" name="email" id="email" /></td>
  11. </tr>
  12.  
  13. <tr>
  14. <td height="23">Subject:</td>
  15. <td><input type="text" name="subject" id="subject" /></td>
  16. </tr>
  17.  
  18. <tr>
  19. <td>Message:</td>
  20. <td><textarea name="message" id="textarea" cols="50" rows="6"></textarea></td>
  21. </tr>
  22.  
  23. <tr>
  24. <td height="23"><input type="submit" name="button" id="button" value="Send" />
  25. <td><input type="reset" name="button2" id="button2" value="Reset" /></td>
  26.  
  27. </form>

13 antwoorden

Gesponsorde links
Offline Berten - 16/04/2008 14:37 (laatste wijziging 16/04/2008 14:38)
Avatar van Berten PHP beginner Met deze if test kan je testen of een veld in is gevuld
  1. if($_POST['name'] == "") {
  2. echo "vul eerst je naam in";
  3. }
  4.  
  5.  
  6. // of gebruik
  7.  
  8. if(!isset($_POST['name']) {
  9. echo "vul eerst je naam in";
  10. }

Voor de email gebruiken we een Google.be: Reguliere expressie

Via google vond ik volgende functie die gebruik maakt van reguliere expressie
  1. /**
  2. *
  3. * PHP validate email
  4. * http://www.webtoolkit.info/
  5. *
  6. **/
  7.  
  8. function isValidEmail($email){
  9. return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
  10. }
  11.  
  12. if (!isValidEmail($_POST['email'])) {
  13. echo "Vul een geldig email adres in aub";
  14. }
Offline DieHard - 16/04/2008 15:09
Avatar van DieHard PHP interesse Waar moet ik die regels dan zetten in het php script onder wat ik al heb of er boven?
Offline Berten - 16/04/2008 15:31 (laatste wijziging 16/04/2008 15:32)
Avatar van Berten PHP beginner ik zou het volgende doen
  1. <?php
  2.  
  3.  
  4. if($_POST['name'] == "") {
  5. echo "vul eerst je naam in";
  6. } elseif (!isValidEmail($_POST['email'])) {
  7. echo "Vul een geldig email adres in aub";
  8. } else {
  9. $to = "email@hotmail.com";
  10. $subject = $_POST['subject'] ;
  11. $bericht = $_POST['message'] ;
  12. $header = "From: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
  13. $header .= "Reply-To: " . $_POST['name'] . " <" . $_POST['email'] . ">\n";
  14. $header .= "X-Priority: 1";
  15. mail ($to, $subject, $bericht, $header);
  16. }
  17. ?>
Offline DieHard - 16/04/2008 15:47
Avatar van DieHard PHP interesse Als ik doe wat jij zegt dan doet hij het niet meer. Als ik wel alles invul en als ik hem leeg verstuur dan zegt ie alleen de 1e keer vul uw naam in daarna niet meer  
Offline DieHard - 16/04/2008 16:49 (laatste wijziging 16/04/2008 16:50)
Avatar van DieHard PHP interesse Dat werkt ook niet en nu heb ik mijn eigen mail gespammed. 75 emailtjes ontvangen in 1 minuut  

ps. ik heb niet 75 keer gedrukt lol
Offline DieHard - 16/04/2008 16:57 (laatste wijziging 16/04/2008 17:07)
Avatar van DieHard PHP interesse Nee dat had ik niet veranderd inderdaad, gelukkig heb ik er maar 75 binnen gekregen. Volgens mij is het nu wel automatisch even geblokkeerd hierdoor dus ik kan niet meer testen nu.

Edit:// Ik heb het nu omgezet naar ander email adress.

Het werkt nu wel ja de message als er geen email adress instaat,
maar als ik nu alles geldig invoer en verstuur dan loopt ie vast op form.php en verstuurd ie nix.
Offline DieHard - 16/04/2008 17:08 (laatste wijziging 16/04/2008 17:12)
Avatar van DieHard PHP interesse Ja dat wil ik ook, maar als ik alles nu goed invul verstuurd hij het niet eens. Dan blijft ie hangen op .php.

Dat heb ik gemaakt nu.

Maar er komt nu geen email meer aan.
Offline DieHard - 16/04/2008 17:21 (laatste wijziging 16/04/2008 18:00)
Avatar van DieHard PHP interesse Beide email adressen doen het niet meer nu, ik wacht wel af en probeer het later nog wel.

Edit:// hij doet het weer dus ik ga verder testen.

in regel 6 staat naaml, moet dat niet zonder die l zijn?
Offline DieHard - 16/04/2008 19:16
Avatar van DieHard PHP interesse Maarja het werk nu, maar als je geen email address invuld staat er van vul je email adress in. En daarna laad ie door en krijg ik wel een leeg emailtje.
Offline DieHard - 16/04/2008 19:29 (laatste wijziging 16/04/2008 20:21)
Avatar van DieHard PHP interesse Dat is niet het probleem. Met alle velden leeg kan je 1000x op send drukken en er komt geen foutmelding.

Er komt alleen een fout melding als je iets invult bij email of een fout email adress, maar als je het leeg houd komt er geen fout melding?

  1. <?php
  2. function isValidEmail($email){
  3. return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
  4. }
  5.  
  6. if (isset($_POST['email']) and $_POST['email']!="" and !isValidEmail($_POST['email'])) {
  7.  
  8. echo "Fill in a valid Email Address!";
  9. header("Refresh: 3; URL=contact.html"); //het e-mail formulier
  10. exit();
  11.  
  12.  
  13. }
  14.  
  15. $to = "email@hotmail.com";
  16. $subject = $_POST['subject'] ;
  17. $bericht = $_POST['message'] ;
  18. $header = "From: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
  19. $header .= "Reply-To: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
  20. $header .= "X-Priority: 1";
  21. mail ($to, $subject, $bericht, $header);
  22. header("location: go.php"); //bewerk dit stukje naar een pagina die je zelf wilt.
  23. ?>


Dit heb ik nu.
Offline DieHard - 16/04/2008 20:49 (laatste wijziging 16/04/2008 21:09)
Avatar van DieHard PHP interesse Hij is perfect nu en geen problemen meer!
Dit is 'em

Bedankt voor de hulp!!   

  1. }
  2.  
  3.  
  4. if (isset($_POST['email']) and $_POST['email']!="" and !isValidEmail($_POST['email'])) {
  5.  
  6. echo "Fill in a valid Email Address!";
  7. header("Refresh: 3; URL=contact.html"); //het e-mail formulier
  8. exit();
  9.  
  10. }
  11.  
  12. // configureren van de gegevens
  13. $to = "email@hotmail.com";
  14. $subject = $_POST['subject'] ;
  15. $bericht = $_POST['message'] ;
  16. $message = " boxmessage ".$_POST['boxmessage'] . ">\n";
  17. $message .= " name ".$_POST['name'] . ">\n";
  18. $header = "From: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
  19. $header .= "Reply-To: " . $_POST['email'] . " <" . $_POST['email'] . ">\n";
  20. $header .= "X-Priority: 1";
  21.  
  22. //een array 'faults' maken
  23. $faults = array();
  24.  
  25. if (isset($_POST['button'])) // als je op verzenden klikt
  26. {
  27. if (empty($_POST['subject'])) // het veld subject moet ingvult zijn
  28. {
  29. $fouten [] = "* You need to fill in the subject!";
  30. }
  31. if (empty($_POST['email'])) // het veld email moet ingevult zijn
  32. {
  33. $fouten [] = "You need to fill in a valid Email Address!";
  34. }
  35. if (empty($_POST['message'])) // het veld bericht met ingevult zijn
  36. {
  37. $fouten [] = "You need to fill in a message!";
  38. }
  39.  
  40. if (count($fouten)==0) // als er 0 fouten zijn moet die het verzenden
  41. {
  42. mail ($to, $subject, $bericht, $header);
  43. header("location: go.php"); //bewerk dit stukje naar een pagina die je zelf wilt.
  44. }
  45. else{
  46. echo "Couldn't send the message! Next errors have accured: ";
  47. foreach($fouten as $fout)
  48. echo "<br />" . $fout;
  49. echo "<br /><br />";
  50. }
  51.  
  52. }
  53. ?>
Offline TotempaaltJ - 17/04/2008 07:46
Avatar van TotempaaltJ PHP interesse (Opgelost knopje)
Offline DieHard - 18/04/2008 20:37 (laatste wijziging 18/04/2008 20:37)
Avatar van DieHard PHP interesse
Sandernerd schreef:
Graag gedaan. Wat was de fout?


Nouja eingelyk was de fout niet opgelost maar heb ik een gedeelte van een ander topic erbij gevoegd of vervangen en daardoor werkte het wel 

Ik heb hele werkende script er nu neergezet, dus die kan dan gewoon gebruikt worden.

Maarja opgelost inderdaad  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.265s