login  Naam:   Wachtwoord: 
Registreer je!
 Forum

HTML Contactformulier (met PHP) (Opgelost)

Offline cljb - 07/01/2012 14:40
Avatar van cljbLid Hallo

Ik heb diverse scripts gezien voor een contactformulier met PHP.
Allemaal geweldig, maar ik ben echt beginner en krijg het niet draaiend! 

Telkens is de tekst uit de PHP weer zichtbaar op mijn site.  ook al php bestand apart opgeslagen, maar dan werkt het formulier niet.

Wie kan, met zeer simpele uitleg , helpen?

CLJB

7 antwoorden

Gesponsorde links
Offline Aar - 07/01/2012 14:50
Avatar van Aar PHP interesse Hoe voer je hem uit? Kan je stap voor stap even vertellen wat je precies doet?
Offline cljb - 07/01/2012 18:09 (laatste wijziging 07/01/2012 18:51)
Avatar van cljb Lid [u]Aar,

Ik heb een form (in HTML) en ik heb een formulierverzenden.php.
Als ik in de html-kit de F8 (=test) indruk, ziet de pagina er prima uit!
Echter bij de test, krijg ik de tekst van de php te zien. Dat is dus niet de bedoeling, lijkt me.
Ik krijg dan ook niets in mijn mailbox.

Onderstaand de php:

  1. $naar = 'info@******.nl'; // Waar moet het naartoe?
  2. $onderwerp = 'Contactformulier ******.nl'; // Het onderwerp van het bericht
  3.  
  4. // Header instellen, zodat nl2br() werkt
  5. $headers = "MIME-version: 1.0\r\n";
  6. $headers .= "content-type: text/html;charset=utf-8\r\n";
  7.  
  8. if(isset($_POST['versturen'])) // Als het formulier verzonden is door op de verzend knop te klikken
  9. {
  10. $voornaam = trim($_POST['bedrijf']); // Alle overbodige spaties uit het voornaam veld verwijderen
  11. $achternaam = trim($_POST['contactpersoon']); // Alle overbodige spaties uit het achternaam veld verwijderen
  12. $email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen
  13. $telefoon = trim($_POST['telefoon']); // Alle overbodige spaties uit het telefoon 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($bedrijf)) // Als het bedrijf veld niet is ingevuld
  18. {
  19. print '<p>Het veld Bedrijf 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($contactpersoon)) // Als het contactpersoon veld niet is ingevuld
  23. {
  24. print '<p>Het veld Contactpersoon 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>Het veld Email 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>Het Emailadres is niet correct!</p>';
  35. $fout = true;
  36. }
  37. if(empty($telefoon)) // Als het telefoon veld niet is ingevuld
  38. {
  39. print '<p>Het veld Telefoon is verplicht maar is nu niet ingevuld!</p>';
  40. $fout = true;
  41. }
  42. if(empty($bericht)) // Als het bericht veld niet is ingevuld
  43. {
  44. print '<p>Het veld Bericht is verplicht maar is nu niet ingvuld!</p>';
  45. $fout = true;
  46. }
  47.  
  48. if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)
  49. {
  50. $headers .= 'From: ' . $bedrijf . ' ' . $contactpersoon . ' '<' . $email . '>' ' . $telefoon . '; // Een afzender instellen zodat je kan reageren.
  51.  
  52. if(mail($naar, $onderwerp, nl2br($bericht), $headers))
  53. {
  54. print '<p>Bedankt voor uw bericht. Wij beantwoorden uw bericht binnen 2 werkdagen!</p>';
  55. }
  56. else
  57. {
  58. print '<p>Er is iets fout gegaan tijdens het verzenden van het formulier.</p>';
  59. }
  60. }
  61. }
  62. ?>

Deze is dus opgeslagen als: formulierverzenden.php (niet in een aparte map, maar gewoon daar waar de andere pagina's van mijn website ook staan!

Hieronder de code in html:
  1. <form method="post" action="formulierverzenden.php">
  2. <ul>
  3. Bedrijfsnaam * </br></br>
  4. <input type="text" name="bedrijf" /> </br></br>
  5. Contactpersoon *</br></br>
  6. <input type="text" name="contactpersoon" /></br></br>
  7. E-mailadres * </br></br>
  8. <input type="text" name="email" /> </br></br>
  9. Telefoonnummer * </br></br>
  10. <input type="text" name="telefoon" /> </br></br>
  11. Je bericht *</br></br>
  12. <textarea cols="40" rows="20" name="bericht"></textarea>
  13. <input type="submit" name="versturen" value="Verstuur bericht" /> <input type="reset" value="Wis alle velden" />
  14. </ul>
  15. <p>Alle velden gemarkeerd met een * zijn verplicht.</p>
  16. </form>



Tja en ik het er dus totaal geen verstand van!
In de php staat dat er iets in de header moet (nl2br) geen idee wat dat is, waar dat staat of waar ik het moet aanpassen en of dit wel het probleem is.
Deze scripts van internet geplukt, waar mensen zeiden dat ze hem ook gebruiken en dus ook werkt.

HELLUP 
Offline icemar - 07/01/2012 21:08
Avatar van icemar Lid Als je dit local test heb je dan ook apache en php draaien ?
want zonder apache en php kan je niet goed local testen.

Indien je dit niet heb draaien dan kan je
wamp => http://www.wampserver.com/en/ of
xampp =>http://nl.wikipedia.org/wiki/XAMPP

Dan kan je dit beter testen.
Offline vinTage - 08/01/2012 03:10
Avatar van vinTage Nieuw lid Waarom vraag je het niet aan de schrijver ?

Maar de oplossing is (*bijna) wat icemar al aangeeft, je moet het op een php enabled server bekijken/testen.

*wamp ondersteund niet zomaar gelijk mail, je moet daarvoor de SMTP gegevens in php.ini aanpassen met de gegevens van je ISP.
Testen op een -fatsoenlijke- host zal makkelijker zijn.
Offline cljb - 08/01/2012 19:43
Avatar van cljb Lid Hooooo, stop.....

Zoals aangegeven ben ik al blij dat ik het tot zover heb gekregen.
Ik heb het nu in een test mapje online gezet, dat krijg ik de melding:
SERVERFOUT:
Er is een fout opgetreden toen de website http://www.flexiko.nl/test/formulierverzenden.php probeerde op te halen. De server kan offline zijn wegens onderhoud of kan onjuist zijn geconfigureerd.



Verder heb ik geen PHP-programma of zo iets, dacht dat dat niet nodig was. Mijn host (protagonist) ondersteunt wel PHP.

Zou dus graag een simpele oplossing c.q. een simpele uitleg van de oplossing voor mijn probleem krijgen!
Offline chth - 08/01/2012 20:09
Avatar van chth Lid als ik bovenstaande code even test op een local server (xampp) krijg ik de gewenste uitvoer, er lijkt niks mis mee te zijn, enkel een foutmelding.

je regel 50 moet worden aangepast naar dit:

  1. $headers .= 'From: ' . $bedrijf . ' ' . $contactpersoon . ' <' . $email . '> ' . $telefoon;
Offline cljb - 09/01/2012 08:30 (laatste wijziging 09/01/2012 18:26)
Avatar van cljb Lid OK Thanks, direct aangepast.

Alles werkt nu prima!!!

Ik ben superblij, hartelijk bedankt!  
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.291s