login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Toch weer eenvraag over een contact formulier.. (Opgelost)

Offline Hagen74 - 26/10/2014 13:59
Avatar van Hagen74Nieuw lid Sorry, alvast..
Want ja, toch weer een vraag over een contact formulier.
Ik gebruik al een tijdje een voor mij standaard maar prima contact formulier, maar nu krijg ik m niet meer verzonden nu ik een nieuwe site heb gebouwd.

Voor mij dus 2 mogelijkheden:
A) Of een formulier van hier gaan gebruiken.
B) Of het probleem takelen.

A) Nu vond ik hier div mooie formulieren die ik prima kon gebruiken alleen zijn deze allemaal in de site mee genomen, en het liefst wil ik hem via een link toevoegen. Kan dit gewoon?

B) Hierbij mijn huidige formulier die dus niet werkt
  1. <?php
  2. $naar = 'mijn@adres.nl'; // Waar moet het naartoe?
  3. $onderwerp = 'Reactie vanaf uw website'; // Het onderwerp van het bericht
  4.  
  5. // Header instellen, zodat nl2br() werkt
  6. $headers = "MIME-version: 1.0\r\n";
  7. $headers .= "content-type: text/html;charset=utf-8\r\n";
  8.  
  9. if(isset($_POST['versturen'])) // Als het formulier verzonden is door op de verzend knop te klikken
  10. {
  11. $naam = trim($_POST['naam']); // Alle overbodige spaties uit het naam veld verwijderen
  12. $onderwerp = trim($_POST['onderwerp']); // Alle overbodige spaties uit het Onderwerp veld verwijderen
  13. $email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen
  14. $bericht = trim($_POST['bericht']); // Alle overbodige spaties uit het bericht veld verwijderen
  15. $fout = false; // Om te kijken straks of er wat fout is
  16.  
  17. if(empty($naam)) // Als het naam veld niet is ingevuld
  18. {
  19. print '<p>Helaas, het naam veld is verplicht maar is nu niet ingevuld!</p>';
  20. $fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
  21. }
  22. if(empty($onderwerp)) // Als het onderwerp veld niet is ingevuld
  23. {
  24. print '<p>Helaas, het onderwerp veld is verplicht maar is nu niet ingevuld!</p>';
  25. $fout = true;
  26. }
  27. if(empty($email)) // Als het email veld niet is ingevuld
  28. {
  29. print '<p>Helaas, het email veld is verplicht maar is nu niet ingevuld!</p>';
  30. $fout = true;
  31. }
  32. if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
  33. {
  34. print '<p>Helaas, het email adres is niet correct!</p>';
  35. $fout = true;
  36. }
  37. if(empty($bericht)) // Als het bericht veld niet is ingevuld
  38. {
  39. print '<p>Helaas, het bericht veld is verplicht maar is nu niet ingvuld!</p>';
  40. $fout = true;
  41. }
  42.  
  43. if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)
  44. {
  45. $headers .= 'From: ' . $naam . ' <' . $email . '> ' . $onderwerp . ''; // Een afzender instellen zodat je kan reageren.
  46.  
  47. if(mail($naar, $onderwerp, nl2br($bericht), $headers))
  48. {
  49. print '<p>Het bericht is succesvol verzonden!</p>';
  50. }
  51. else
  52. {
  53. print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
  54. }
  55. }
  56. }
  57. ?>

  1. <div class="contact-form">
  2. <form method="post" name="contactform" id="contactform" action="php/formulierverzenden.php">
  3. <p>
  4. <input name="naam" type="text" id="name" placeholder="Naam">
  5. </p>
  6. <p>
  7. <input name="email" type="text" id="email" placeholder="Email">
  8. </p>
  9. <p>
  10. <input name="onderwerp" type="text" id="subject" placeholder="Onderwerp">
  11. </p>
  12. <p>
  13. <textarea name="bericht" id="comments" placeholder="Vraag"></textarea>
  14. </p>
  15. <input type="submit" class="mainBtn" name="versturen" id="submit" value="Verzenden">
  16. </form>
  17. </div> <!-- /.contact-form -->


Alvast hartelijk dank voor de te nemen moeite!!

2 antwoorden

Gesponsorde links
Offline Thomas - 26/10/2014 15:30
Avatar van Thomas Moderator
Citaat:
Hierbij mijn huidige formulier die dus niet werkt
Welke melding krijg je terug? Is dit
Citaat:
Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.
? In dat geval retourneert je mail()-functie false. Of lijkt het erop alsof alles goed gaat, maar ontvang je geen e-mail?
In het eerste geval (mail() retourneert false) zal het gaan gebruiken van een ander script waarschijnlijk geen soelaas bieden, omdat die hoogstwaarschijnlijk ook de mail() functie gebruikt.

In het tweede geval wordt het lastig: naar alle waarschijnlijkheid is je e-mail wel verstuurd, maar is er ergens iets misgegaan. Let erop dat als mail() true retourneert dat dit alleen wil zeggen dat de mail succesvol verstuurd is. Vergelijk dit met het op de post doen van een papieren brief. Het feit dat je hem in de brievenbus hebt gedeponeerd is geenszins een garantie dat de brief ook aankomt bij zijn eindbestemming. Maar PHP heeft dan zijn werk gedaan en is het in principe uit jouw handen.

Even een aantal zaken voor de goede orde: je zegt dat je een nieuwe site hebt gebouwd. Waar staat deze site? Op je eigen laptop of PC, of ergens online? Bij welke host staat deze site? Ondersteunt het type hosting wat je hebt het versturen van e-mail? Heb je al geprobeerd een supersimpel mailtje te versturen via een los script? Krijg je uberhaupt een melding bij het versturen van het formulier wat er op kan duiden dat de e-mail in eerste instantie niet verstuurd wordt? Wordt het bericht uberhaupt wel verstuurd (PHP stuurt de mail meestal door naar het proces dat de e-mail verder verwerkt geloof ik, de e-mail wordt dan in een wachtrij geplaatst. Als door het proces dat de e-mail verder zou moeten afhandelen deze wachtrij nooit controleert of hier iets in staat, dan blijft "de brief dus gewoon in de postbus zitten". Heb je aan de ontvangstzijde antispam-software draaien? Mogelijk wordt je bericht voor spam aangezien.

Voor het oplossen van het probleem is een heldere situatieschets nodig zodat we precies de vinger op de zere plek kunnen leggen.
Offline Hagen74 - 27/10/2014 14:43
Avatar van Hagen74 Nieuw lid  

Als eerst super dank voor de snelle en uitgebreide reactie, ik ga proberen alle antwoorden te geven!

Zo , nou daar gaan we dan...

De site staat op een dedicated server, hosted door mijn broers bedrijf.
Ik zou daarvanaf mail moeten kunnen versturen volgens mij....

... 10 min later zijn we achter het probleem gekomen en hebben het gefixed!!  

Het lag dus aan de php.ini instelling die op deze server niet goed stond blijkbaar!

Hartelijk dank, door hjou vragen ben ik eindelijk achter het probleem gekomen!!

Je hebt mijn dag helemaal goed gemaakt!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s