Contactformulier werkt niet op HTML website
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!--====== CONTACT PART START ======-->
<section id="contact" class="contact-area">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6 col-md-10">
<div class="row">
<div class="col-lg-12">
<div class="contact-wrapper form-style-two pt-115">
<h4 class="contact-title pb-10"><i class="lni lni-envelope"></i>CONTACT<span>FORMULIER</span></h4>
<form id="contact-form" action="assets/contact.php" method="post">
<div class="row">
<div class="col-md-6">
<div class="form-input mt-25">
<label>Naam</label>
<div class="input-items default">
<input name="name" type="text" placeholder="Naam">
<i class="lni lni-user"></i>
</div>
</div> <!-- form input -->
</div>
<div class="col-md-6">
<div class="form-input mt-25">
<label>E-mail</label>
<div class="input-items default">
<input type="email" name="email" placeholder="E-mail">
<i class="lni lni-envelope"></i>
</div>
</div> <!-- form input -->
</div>
<div class="col-md-12">
<div class="form-input mt-25">
<label>Bericht</label>
<div class="input-items default">
<textarea name="massage" placeholder="Bericht"></textarea>
<i class="lni lni-pencil-alt"></i>
</div>
</div> <!-- form input -->
</div>
<p class="form-message"></p>
<div class="col-md-12">
<div class="form-input light-rounded-buttons mt-30">
<button class="main-btn light-rounded-two">Verzenden</button>
</div> <!-- form input -->
</div>
</div> <!-- row -->
</form>
</div> <!-- contact wrapper form -->
</div>
</div> <!-- row -->
</div> <!-- container -->
</section>
<!--====== CONTACT PART ENDS ======-->
<section id="contact" class="contact-area">
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6 col-md-10">
<div class="row">
<div class="col-lg-12">
<div class="contact-wrapper form-style-two pt-115">
<h4 class="contact-title pb-10"><i class="lni lni-envelope"></i>CONTACT<span>FORMULIER</span></h4>
<form id="contact-form" action="assets/contact.php" method="post">
<div class="row">
<div class="col-md-6">
<div class="form-input mt-25">
<label>Naam</label>
<div class="input-items default">
<input name="name" type="text" placeholder="Naam">
<i class="lni lni-user"></i>
</div>
</div> <!-- form input -->
</div>
<div class="col-md-6">
<div class="form-input mt-25">
<label>E-mail</label>
<div class="input-items default">
<input type="email" name="email" placeholder="E-mail">
<i class="lni lni-envelope"></i>
</div>
</div> <!-- form input -->
</div>
<div class="col-md-12">
<div class="form-input mt-25">
<label>Bericht</label>
<div class="input-items default">
<textarea name="massage" placeholder="Bericht"></textarea>
<i class="lni lni-pencil-alt"></i>
</div>
</div> <!-- form input -->
</div>
<p class="form-message"></p>
<div class="col-md-12">
<div class="form-input light-rounded-buttons mt-30">
<button class="main-btn light-rounded-two">Verzenden</button>
</div> <!-- form input -->
</div>
</div> <!-- row -->
</form>
</div> <!-- contact wrapper form -->
</div>
</div> <!-- row -->
</div> <!-- container -->
</section>
<!--====== CONTACT PART ENDS ======-->
en dit staat op contact.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
// Only process POST reqeusts.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Get the form fields and remove whitespace.
$name = strip_tags(trim($_POST["name"]));
$name = str_replace(array("\r","\n"),array(" "," "),$name);
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$message = trim($_POST["massage"]);
// Check that data was sent to the mailer.
if ( empty($name) OR empty($subject) OR empty($lname) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Set a 400 (bad request) response code and exit.
http_response_code(400);
echo "Please complete the form and try again.";
exit;
}
// Set the recipient email address.
// FIXME: Update this to your desired email address.
$recipient = "contactformtestgg@gmail.com";
// Set the email subject.
$subject = "New contact from $name";
// Build the email content.
$email_content = "First Name: $name\n";
$email_content .= "Email: $email\n\n";
$email_content .= "Message:\n$message\n";
// Build the email headers.
$email_headers = "From: $name <$email>";
// Send the email.
if (mail($recipient, $subject, $email_content, $email_headers)) {
// Set a 200 (okay) response code.
http_response_code(200);
echo "Thank You! Your message has been sent.";
} else {
// Set a 500 (internal server error) response code.
http_response_code(500);
echo "Oops! Something went wrong and we couldn't send your message.";
}
} else {
// Not a POST request, set a 403 (forbidden) response code.
http_response_code(403);
echo "There was a problem with your submission, please try again.";
}
?>
// Only process POST reqeusts.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Get the form fields and remove whitespace.
$name = strip_tags(trim($_POST["name"]));
$name = str_replace(array("\r","\n"),array(" "," "),$name);
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$message = trim($_POST["massage"]);
// Check that data was sent to the mailer.
if ( empty($name) OR empty($subject) OR empty($lname) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Set a 400 (bad request) response code and exit.
http_response_code(400);
echo "Please complete the form and try again.";
exit;
}
// Set the recipient email address.
// FIXME: Update this to your desired email address.
$recipient = "contactformtestgg@gmail.com";
// Set the email subject.
$subject = "New contact from $name";
// Build the email content.
$email_content = "First Name: $name\n";
$email_content .= "Email: $email\n\n";
$email_content .= "Message:\n$message\n";
// Build the email headers.
$email_headers = "From: $name <$email>";
// Send the email.
if (mail($recipient, $subject, $email_content, $email_headers)) {
// Set a 200 (okay) response code.
http_response_code(200);
echo "Thank You! Your message has been sent.";
} else {
// Set a 500 (internal server error) response code.
http_response_code(500);
echo "Oops! Something went wrong and we couldn't send your message.";
}
} else {
// Not a POST request, set a 403 (forbidden) response code.
http_response_code(403);
echo "There was a problem with your submission, please try again.";
}
?>
Edit:
In het vervolg graag [code]..[/code]-tags gebruiken om je script. Dat maakt het beter leesbaarder in het forum.
Gewijzigd op 31/01/2025 12:51:01 door - Ariën -
Okee. En wat is de vraag?
Mijn vraag is, weet iemand waar de probleem zit.
Wat gebeurt er precies? Wat doe je precies? Wat zie je precies?
Als je zulke vragen beantwoordt, dan is het makkelijker om je te helpen.
Gewijzigd op 30/01/2025 22:30:28 door - Ariën -
kan hij script2 niet vinden?
Is $_POST leeg?
Wordt de informatie in $_POST niet opgepikt?
Wordt de mail niet verstuurd?
Komt de mail niet aan?
Komt de mail in ongewenste-mail?
Zeker in combinatie met een FROM header waarin staat dat de mail van jantje@planet.nl komt en een server die staat bij mijnhosting.nl, is de kans groot dat een mailserver zegt: dat kan nooit kloppen.
De mail is ook niet from jantje, maar from jouwserver@mijnhosting.nl
Wel kun je daar een header reply-to aan toevoegen die dan wél naar jantje mag verwijzen.
Eenvoudiger wordt dit als je ipv mail() iets als phpmailer gebruikt, die wat doordachter om zal gaan met allerlei headers en zo.
Maar stap 1 is het debuggen of je überhaupt door je script heen gaat en ook bij het versturen van de mail uitkomt. (of kijken wat voor tekst er op het scherm komt nu al)
Toevoeging op 30/01/2025 22:35:39:
En de ontvangende server gmail is best streng en kan ook zomaar de mail weigeren zonder nadere foutmelding. Die dan trouwens sowieso hooguit naar jantje@planet zou gaan.
Welke melding? Wees a.u.b. zo volledig mogelijk, want het forum is ook een kennisbank die vaak door andere wordt geraadpleegd.
Please complete the form and try again
Dan kijk je in je script: dit is regel 15.
Daar kom je uit als de IF van regel 12 afgaat:
if ( empty($name) OR empty($subject) OR empty($lname) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
Dus $name is leeg
OF
$subject is leeg
OF
$lname is leeg
OF
$message is leeg
OF
$email is geen email adres.
Nu zie je eigenlijk meteen welke er niet gevuld wordt.
Verder vraag ik me af, of je zo'n examen beter maakt na een massage of dat je daar een message over kunt sturen
Gewijzigd op 31/01/2025 09:43:57 door Ivo P
De formulier verzend niks, ook al heb je alles ingevuld, naam, email en berciht.
De formulier is bedoel voor klanten die vragen hebben.
Ik weet het niet. Heb je een emailadres dan kan ik de complete zipbestand naar je sturen.
Ronald Smit op 30/01/2025 22:20:34:
Mijn vraag is, weet iemand waar de probleem zit.
Je script controleert of $subject empty is, maar als ik het contactformulier bekijk hoef ik alleen een Naam ($name), E-mail ($email) en Bericht ($message) in te vullen.
Dus logisch dat $subject op dat moment nog niet bestaat of gevuld is.
Ronald Smit op 31/01/2025 09:57:57:
Ik weet het niet. Heb je een emailadres dan kan ik de complete zipbestand naar je sturen.
Ik weet het niet. Heb je een emailadres dan kan ik de complete zipbestand naar je sturen.
Hoezo mailen? Het probleem is inmiddels toch geïsoleerd. ;-)
Het debuggen zou hier simpel moeten zijn.
- zet in je script
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo alle variabelen die je controleert in regel 12.
Daar moet iets tussen zitten wat niet de waarde heeft die je verwacht.
En door die error-reporting zou je ook nog een melding moeten krijgen over niet bestaande variabelen.
Verder is een typo in je textarea name (message of massage) een mogelijke bron voor bugs in de toekomst.
Ik heb zelf niet zo veel verstand van php. Dus ik kan de probleem zelf nie zo snel oplossen.
Probeer het eens. Dáár leer je van.
name, email en massage.
Op regel 12 van de code worden 5 velden gecontroleerd.
O.a $subject en $lname.
Deze zijn niet terug te vinden in het FORM.
Gewijzigd op 31/01/2025 11:03:40 door Adoptive Solution
if ( empty($name) OR empty($subject) OR empty($lname) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Set a 400 (bad request) response code and exit.
Gewijzigd naar
if (empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Set a 400 (bad request) response code and exit.