login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Contact formulieren > Basis Contact Formulier

Basis Contact Formulier

Auteur: DenMette - 04 september 2013 - 21:51 - Gekeurd door: UpLink - Hits: 13358 - Aantal punten: 2.50 (1 stem)



* Het formulier is opgemaakt met Twitter Bootstrap (3.x)
* De PHP code laat ruimte voor uitbreidingen
* Het formulier + php code samen in 1 bestand zetten wegens de foutmelding en succes bericht.

[UPDATE]
Toevoeging: 'POST' === $_SERVER['REQUEST_METHOD']
Toevoeging: Onthouden van al reeds ingegeven waarden

[UPDATE-2]
Toevoeging: HTMLENTITIES
Wijziging: isSended naar isSent :S

Code:
  1. <?php
  2. // Ze zeggen dat je de gebruiker nooit mag vertrouwen
  3. // daarom gaan we direct wat meer controleren
  4.  
  5. // Een beetje configuratie
  6. $conf = array(
  7. 'mail' => 'jouw@mail.adres'
  8. );
  9.  
  10. // Deze functie doet een snelle check op lege waarden.
  11. // Zoals de naam beschrijft is een waarde vereist.
  12. function validate_required($value)
  13. {
  14. if (is_null($value)) {
  15. return false;
  16. } elseif (is_string($value) and trim($value) === '') {
  17. return false;
  18. }
  19. return true;
  20. }
  21.  
  22. // Ik kijk mijn drie specifieke velden na, ander zouden ze misschien
  23. // nog met iets anders kunnen afkomen. Ik ga niet nakijken of de knop
  24. // ingedrukt is.
  25. if ('POST' === $_SERVER['REQUEST_METHOD'] and isset($_POST['inputName'], $_POST['inputEmail'], $_POST['inputMessage'])) {
  26. // Even zorgen dat de overbodige spaties weggehaald worden.
  27. $name = trim($_POST['inputName']);
  28. $email = trim($_POST['inputEmail']);
  29. $message = trim($_POST['inputMessage']);
  30.  
  31. // Aanmaken van een array voor de foutmeldingen
  32. $errors = array();
  33.  
  34. if (!validate_required($name) or strlen($name) < 2) {
  35. $errors[] = "Gelieve een naam op te geven.";
  36. }
  37. if (!validate_required($email) or !filter_var($email, FILTER_VALIDATE_EMAIL)) {
  38. $errors[] = "Gelieve een geldige e-mail op te geven.";
  39. }
  40. if (!validate_required($message) or strlen($message) < 20) {
  41. $errors[] = "Gelieve een bericht op te geven dat langer is dan 20 karakters.";
  42. }
  43.  
  44. // Als het aantal errors 0 is dan kunnen we een mailtje versturen
  45. if (0 == count($errors)) {
  46. // Dit is voor een mooi mailtje te bekomen.
  47. $headers = 'From: ' . $name . ' <' . $email . '>' . "\r\n";
  48. $headers .= 'Reply-To: ' . $name . ' <' . $email . '>' . "\r\n";
  49. $headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
  50.  
  51. $isSent = mail($conf['mail'], 'Berichtje van je site', $message, $headers);
  52.  
  53. if ($isSent):
  54. ?>
  55. <div class="alert alert-success">
  56. Je berichtje is goed verzonden!
  57. </div>
  58. <?php else:
  59. ?>
  60. <div class="alert alert-danger">
  61. Er ging iets mis, probeer het straks nog eens.
  62. </div>
  63. <?php
  64. endif;
  65. } else {
  66. ?>
  67. <div class="alert alert-danger">
  68. <ul>
  69. <?php foreach ($errors as $error): ?>
  70. <li><?php echo $error; ?></li>
  71. <?php endforeach; ?>
  72. </ul>
  73. </div>
  74. <?php
  75. }
  76. }
  77. ?>


  1. <!--
  2. Het onderstaande formulier geeft je de mogelijkheid
  3. om de volgende gegevens van de gebruiker te vragen.
  4.  
  5. - Naam
  6. - E-mail
  7. - Bericht
  8.  
  9. Deze 3 velden zullen we dan met PHP bekijken of
  10. ze allemaal zijn ingevuld. Mocht dit oke lijken
  11. dan versturen we de mail.
  12. -->
  13. <form action="mail.php" method="post" class="form-horizontal" role="form">
  14. <div class="form-group">
  15. <label for="inputName" class="col-lg-2 control-label">Naam</label>
  16.  
  17. <div class="col-lg-10">
  18. <input type="text" class="form-control" id="inputName" name="inputName"
  19. placeholder="Maarten"
  20. value="<?php echo (isset($_POST['inputName']) and !is_null($_POST['inputName'])) ? htmlentities($_POST['inputName']) : ""; ?>"/>
  21. </div>
  22. </div>
  23.  
  24. <div class="form-group">
  25. <label for="inputEmail" class="col-lg-2 control-label">E-mail</label>
  26.  
  27. <div class="col-lg-10">
  28. <input type="email" class="form-control" id="inputEmail" name="inputEmail"
  29. placeholder="denmette@gmail.com"
  30. value="<?php echo (isset($_POST['inputEmail']) and !is_null($_POST['inputEmail'])) ? htmlentities($_POST['inputEmail']) : ""; ?>"/>
  31. </div>
  32. </div>
  33.  
  34. <div class="form-group">
  35. <label for="inputMessage" class="col-lg-2 control-label">Bericht</label>
  36.  
  37. <div class="col-lg-10">
  38. <textarea class="form-control" rows="3" id="inputMessage"
  39. name="inputMessage"><?php echo (isset($_POST['inputMessage']) and !is_null($_POST['inputMessage'])) ? htmlentities($_POST['inputMessage']) : ""; ?></textarea>
  40. </div>
  41. </div>
  42.  
  43. <div class="form-group">
  44. <div class="col-lg-offset-2 col-lg-10">
  45. <button type="submit" class="btn btn-default">Verstuur bericht</button>
  46. </div>
  47. </div>
  48. </form>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (6)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.036s