login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Contact formulieren > Eenvoudig contactformulier

Eenvoudig contactformulier

Auteur: Tuinstoel - 31 januari 2009 - 14:22 - Gekeurd door: marten - Hits: 23456 - Aantal punten: 4.00 (3 stemmen)



Als je geen verstand hebt van php enzo: Gewoon copy pasten, paar dingen in de bovenste regels veranderen, en hij werkt.

Ik heb het zo simpel mogelijk gehouden, ik heb 4/5 jaar geleden ook een contactformulier gemaakt maar deze is weer een stukje nieuwer .

Code:
  1. <?php
  2. class SimpelMail {
  3.  
  4. var $aAan = array(
  5. array('Piet Jansen','piet@jansen.ext'),
  6. array('Jan Pietersen','jan@piet.ext')
  7. );
  8. /* Een lijstje met personen waar je naartoe kan sturen. Dat kan natuurlijk ook gewoon 1 persoon zijn, dan gooi je de 2e array gewoon weg en dan komt het allemaal goed */
  9.  
  10. var $aVelden = array(
  11. // Velden die er in moeten komen:
  12. // naam || verplicht (1=ja, 0=nee) || 0=text,1=textarea
  13. array('Onderwerp',1,0), // LET OP, ONDERWERP MOET ER ALTIJD IN, oP NR 0!!!!! (dus gewoon laten staan)
  14. array('Naam',1,0), // LET OP OOK LATEN STAAN!
  15. array('E-mailadres',1,0),
  16.  
  17. // vanaf hier costum fields toevoegen! //
  18.  
  19. array('Website',0,0),
  20. // tot hier
  21.  
  22. array('Bericht',1,1)
  23. );
  24.  
  25. var $sPrefix = '[form]: '; // wat er standaard voor het onderwerp moet komen te staan (kun je dus ook leeglaten)
  26. var $iSpam = 300; // stukje beveiliging dat je neit elke 1 seconde mail krijgt van dezelfde personen. Dit is in seconden.
  27. var $sPage; // alleen veranderen als je pagina iets is zoals ?pagina=contact
  28. var $bIsGelukt;
  29.  
  30. function Formulier() {
  31. ?>
  32. <h1>Contact</h1>
  33. <form method="post" action="<?= $this->sPage; ?>">
  34. <table>
  35. <?php
  36. if(count($this->aAan) > 1)
  37. {
  38. ?><tr><td>Aan:</td><td><select name="iAan"><?php
  39. foreach($this->aAan as $iNr => $aData)
  40. { echo '<option value="'.$iNr.'">'.$aData[0].'</option>'; }
  41. ?></select></td></tr><?php
  42. }
  43. foreach($this->aVelden as $iKey=>$aValue) {
  44. $sVal = (isset($_POST[$iKey])) ? htmlspecialchars($_POST[$iKey]) : '';
  45. ?><tr><td><?= $aValue[0]; ?>:</td><td><?php
  46. if($aValue[2]==1) {
  47. echo '<textarea name="'.$iKey.'" cols="60" rows="8">'.$sVal.'</textarea>';
  48. }
  49. else {
  50. echo '<input type="text" name="'.$iKey.'" value="'.$sVal.'" />';
  51. }
  52. ?></td></tr>
  53. <?php
  54. }
  55. ?>
  56. <tr><td colspan="2"><input type="submit" value="Verzenden" /></td></tr>
  57. </table>
  58. </form>
  59. <?php
  60. }
  61.  
  62. function Mailen() {
  63. $aErr = array();
  64.  
  65. if(isset($_SESSION['iSpam']) && $_SESSION['iSpam'] > time())
  66. { $aErr[] = 'Om spam tegen te gaan kunt u slechts 1 maal e-mailen in '.$this->iSpam.' seconden.'; }
  67.  
  68. foreach($this->aVelden as $iKey => $aVeld) {
  69. if($this->aVelden[$iKey][1]==1) {
  70. if(strlen(trim($_POST[$iKey])) == 0)
  71. { $aErr[] = 'Je bent het veld '.$aVeld[0].' vergeten.'; }
  72. }
  73. }
  74.  
  75. if(count($aErr)>0) {
  76. echo 'Het volgende ging fout:<ul>';
  77. foreach($aErr as $sFout)
  78. { echo '<li>'.$sFout.'</li>'; }
  79. echo '</ul>';
  80. }
  81. else {
  82. if(count($this->aAan)==1)
  83. { $sAan = $this->aAan[0][1]; }
  84. else
  85. { $sAan = $this->aAan[$_POST['iAan']][1]; }
  86.  
  87. $sHeader = "To: ".$sAan."\r\n";
  88. $sHeader .= "From: ".$_POST[1]." <".$_POST[2].">\r\n";
  89.  
  90. $sMail = '';
  91. foreach($this->aVelden as $iKey => $aVeld)
  92. { $sMail .= $aVeld[0].': '.$_POST[$iKey]."\n"; }
  93.  
  94. if(!@mail($sAan,$this->sPrefix.$_POST[0],$sMail,$sHeader))
  95. { echo 'Mailen niet gelukt.';}
  96. else
  97. {
  98. echo 'De mail is verzonden. ';
  99. $_SESSION['iSpam'] = time()+$this->iSpam;
  100. $this->bIsGelukt = true;
  101. }
  102. }
  103. }
  104.  
  105. function Contact() {
  106. if($_SERVER['REQUEST_METHOD']=='POST') {
  107. $this->Mailen();
  108. }
  109.  
  110. if(!$this->bIsGelukt) {
  111. $this->Formulier();
  112. }
  113. }
  114. }
  115. ?>
  116. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  117. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
  118. <head>
  119. <title>Contact</title>
  120. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  121. </head>
  122. <body>
  123. <?php
  124. $aClass = new SimpelMail;
  125. $aClass->sPage = $_SERVER['PHP_SELF'];
  126. $aClass->Contact();
  127. ?>
  128. </body></html>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

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