Redirect naar bedankingspagina werkt niet
Bij het correct invullen van het contactformulier zou ik de klant willen doorsturen naar een bedankingspagina. (zo kan ik ook een doel instellen via Google Analytics).
Dit lukt me voorlopig niet. Contactformulier waarmee ik werk stuurt nu een echo berichtje bij het al dan niet correct invullen. Het doorsturen naar een bedankingspagina lukt me niet, heb al geprobeerd met header('Location: http://www.mijnsite.be/bedankt.html'); zonder succes.
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
52
53
54
55
56
57
58
59
60
61
62
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
57
58
59
60
61
62
<?php
if($_POST) {
$to = "[email protected]"; // Your email here
$subject = 'Bericht verstuurd van mijn site'; // Subject message here
}
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
header('Location: http://www.mijnsite.be/bedankt.html');
exit();
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
//Check e-mail validation
function check_email($email){
if(!preg_match("/^[_.\da-z-]+@[a-z\d][a-z\d-]+\.+[a-z]{2,6}$/i", $email)) {
return false;
} else {
return true;
}
}
//Get post data
if(isset($_POST['name']) and isset($_POST['mail']) and isset($_POST['onderwerp']) and isset($_POST['comment'])){
$name = $_POST['name'];
$mail = $_POST['mail'];
$onderwerp = $_POST['onderwerp'];
$website = $_POST['website'];
$comment = $_POST['comment'];
if($name == '') {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw naam in te vullen."));
exit();
} else if($mail == '' or check_email($mail) == false){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve een geldig emailadres in te vullen."));
exit();
} else if($onderwerp == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw onderwerp in te vullen."));
exit();
} else if($comment == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw bericht in te vullen."));
exit();
} else {
//Send Mail
$headers = 'From: ' . $mail .''. "\r\n".
'Reply-To: '.$mail.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
send_mail($to, $subject, $comment . "\r\n\n" .'Naam: '.$name. "\r\n" .'Onderwerp: '.$onderwerp. "\r\n" .'Email: '.$mail, $headers);
}
} else {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve alle velden in te vullen."));
}
?>
if($_POST) {
$to = "[email protected]"; // Your email here
$subject = 'Bericht verstuurd van mijn site'; // Subject message here
}
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
header('Location: http://www.mijnsite.be/bedankt.html');
exit();
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
//Check e-mail validation
function check_email($email){
if(!preg_match("/^[_.\da-z-]+@[a-z\d][a-z\d-]+\.+[a-z]{2,6}$/i", $email)) {
return false;
} else {
return true;
}
}
//Get post data
if(isset($_POST['name']) and isset($_POST['mail']) and isset($_POST['onderwerp']) and isset($_POST['comment'])){
$name = $_POST['name'];
$mail = $_POST['mail'];
$onderwerp = $_POST['onderwerp'];
$website = $_POST['website'];
$comment = $_POST['comment'];
if($name == '') {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw naam in te vullen."));
exit();
} else if($mail == '' or check_email($mail) == false){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve een geldig emailadres in te vullen."));
exit();
} else if($onderwerp == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw onderwerp in te vullen."));
exit();
} else if($comment == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw bericht in te vullen."));
exit();
} else {
//Send Mail
$headers = 'From: ' . $mail .''. "\r\n".
'Reply-To: '.$mail.'' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
send_mail($to, $subject, $comment . "\r\n\n" .'Naam: '.$name. "\r\n" .'Onderwerp: '.$onderwerp. "\r\n" .'Email: '.$mail, $headers);
}
} else {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve alle velden in te vullen."));
}
?>
Html code contactform:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<form id="contact-form" method="post" action="contact.php">
<div class="row contact-row">
<div class="col-md-6 contact-name">
<input name="name" id="name" type="text" placeholder="Uw naam*" required>
</div>
<div class="col-md-6 contact-email">
<input name="mail" id="mail" type="email" placeholder="Uw emailadres*" required>
</div>
</div>
<input name="onderwerp" id="onderwerp" type="text" placeholder="Onderwerp*" required>
<textarea name="comment" id="comment" placeholder="Uw bericht*" required></textarea>
<input type="submit" class="btn btn-lg btn-color btn-submit" value="Verstuur uw vraag" id="submit-message">
<div id="msg" class="message"></div>
</form>
<div class="row contact-row">
<div class="col-md-6 contact-name">
<input name="name" id="name" type="text" placeholder="Uw naam*" required>
</div>
<div class="col-md-6 contact-email">
<input name="mail" id="mail" type="email" placeholder="Uw emailadres*" required>
</div>
</div>
<input name="onderwerp" id="onderwerp" type="text" placeholder="Onderwerp*" required>
<textarea name="comment" id="comment" placeholder="Uw bericht*" required></textarea>
<input type="submit" class="btn btn-lg btn-color btn-submit" value="Verstuur uw vraag" id="submit-message">
<div id="msg" class="message"></div>
</form>
Bedankt alvast voor de hulp!
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 12/01/2017 20:09:08 door - Ariën -
Zet de errors eens aan als die nog niet aan staan, en voet het eens uit?
Het enige wat er fout kan zijn is dat er HTML of witruimte voor je PHP-code zou staan. Maar zonder foutmeldingen is het nu nog gissen.
Code (php)
kan korter:
Code (php)
$_POST['website'] => ik zie geen name="website" in het formulier.
Mailheaders zijn niet correct => http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders
Gewijzigd op 12/01/2017 21:03:33 door - SanThe -
Ik heb de code aangepast en opgefrist, maar nog altijd geen actie bij het invullen van het mailform, zelfs de foutmeldingen bij het niet volledig invullen krijg ik niet te zien...
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
<?php
ini_set('display_errors', 'On');
ini_set('display_startup_errors', 'On');
error_reporting(E_ALL);
if($_POST) {
$to = "[email protected]"; // Your email here
$subject = 'Bericht verstuurd van mijn site'; // Subject message here
}
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
header('Location: http://www.mijnsite.be/bedankt.html');
exit();
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
//Check e-mail validation
function check_email($email){
if(!preg_match("/^[_.\da-z-]+@[a-z\d][a-z\d-]+\.+[a-z]{2,6}$/i", $email)) {
return false;
} else {
return true;
}
}
//Get post data
if(isset($_POST['name'],$_POST['mail'],$_POST['onderwerp'],$_POST['comment'])){
$name = $_POST['name'];
$mail = $_POST['mail'];
$onderwerp = $_POST['onderwerp'];
$comment = $_POST['comment'];
if($name == '') {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw naam in te vullen."));
exit();
} else if($mail == '' or check_email($mail) == false){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve een geldig emailadres in te vullen."));
exit();
} else if($onderwerp == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw onderwerp in te vullen."));
exit();
} else if($comment == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw bericht in te vullen."));
exit();
} else {
//Send Mail
$headers = 'From: <' . $mail . '>' . "\r\n";
'Reply-To: ' . $name . ' <' .$mail. '>' . "\r\n";
'X-Mailer: PHP/' . phpversion() . "\r\n";
send_mail($to, $subject, $comment . "\r\n\n" .'Naam: '.$name. "\r\n" .'Onderwerp: '.$onderwerp. "\r\n" .'Email: '.$mail, $headers);
}
} else {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve alle velden in te vullen."));
}
?>
ini_set('display_errors', 'On');
ini_set('display_startup_errors', 'On');
error_reporting(E_ALL);
if($_POST) {
$to = "[email protected]"; // Your email here
$subject = 'Bericht verstuurd van mijn site'; // Subject message here
}
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
header('Location: http://www.mijnsite.be/bedankt.html');
exit();
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
//Check e-mail validation
function check_email($email){
if(!preg_match("/^[_.\da-z-]+@[a-z\d][a-z\d-]+\.+[a-z]{2,6}$/i", $email)) {
return false;
} else {
return true;
}
}
//Get post data
if(isset($_POST['name'],$_POST['mail'],$_POST['onderwerp'],$_POST['comment'])){
$name = $_POST['name'];
$mail = $_POST['mail'];
$onderwerp = $_POST['onderwerp'];
$comment = $_POST['comment'];
if($name == '') {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw naam in te vullen."));
exit();
} else if($mail == '' or check_email($mail) == false){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve een geldig emailadres in te vullen."));
exit();
} else if($onderwerp == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw onderwerp in te vullen."));
exit();
} else if($comment == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw bericht in te vullen."));
exit();
} else {
//Send Mail
$headers = 'From: <' . $mail . '>' . "\r\n";
'Reply-To: ' . $name . ' <' .$mail. '>' . "\r\n";
'X-Mailer: PHP/' . phpversion() . "\r\n";
send_mail($to, $subject, $comment . "\r\n\n" .'Naam: '.$name. "\r\n" .'Onderwerp: '.$onderwerp. "\r\n" .'Email: '.$mail, $headers);
}
} else {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve alle velden in te vullen."));
}
?>
Frederic D op 13/01/2017 09:21:45:
Hoe zet ik die errors aan?
Met jouw ini_set's kan je dit voor jouw script aanzetten.
Quote:
Ik vind via phpinfo.php de versie 7.0.13 en waar het ini bestand staat, usr/local/php70/lib/php.ini, maar waar kan ik dit precies terug vinden? Moet ik hiervoor naar controlpanel / hosting kijken? Ini bestand zit niet in mijn mapje waar mijn website staat.
Die genoemde locatie is alleen bereikbaar als je beheerder over de server bent, daar staan de globale instellingen van PHP over de hele server voor PHP 7 ingesteld. Als je shared-hosting hebt of geen beheerdersrechten hebt, dan kan je met .htaccess ook je error-reporting aan en uit zetten. Soms moet dit met aparte ini-bestanden, maar dat wordt dan wel duidelijk gemaakt in phpinfo() waarin staat in welke directories van jouw onder de 'additional directories' voor ini-files. In het eerste grote blokje staat dat daar vermeld.
Quote:
Ik heb ook de display errors in mijn php bestand ingevuld, maar geen reactie te zien.
Roep het bestand wat alles verwerkt eens handmatig aan. Wat gebeurt er dan?
De vraag is eigenlijk of er echt wel een fout in de PHP-code zit die het uitvoeren verhindert. Als de opbouw okee is en er zit een fout in de structuur omdat er een variabele vergeten is, waarbij hij op een 'false' uitkomt, dan is dat iets wat je niet kan aanrekenen tot een fout die PHP zelf zal aangeven.
Gewijzigd op 13/01/2017 11:24:05 door - Ariën -
waarom echo't dit script zoveel json? Wordt het soms via Ajax aangeroepen?
{"info":"error","msg":"Gelieve alle velden in te vullen."}
PHP heeft zelf functies (filter_var, filter_input) om te controleren of het een emailadres lijkt.
Deze regel accepteert bijvoorbeeld [email protected]
Wat me geevn valide adres lijkt
Terwijl [email protected] niet geaccepteerd wordt, noch [email protected]
om maar te zwijgen over [email protected] of andere "nieuwe" domein-extensies
Toevoeging op 13/01/2017 11:38:42:
{"info":"error","msg":"Gelieve alle velden in te vullen."}
dan post je dus kennelijk niet alle velden?
Als ajax: je wilt niet de aanroeper van het huidige script (een javascript ajax proces) door verwijzen naar bedankt.html, maar de pagina waarin je de ajax call doet.
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
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
var submitContact = $('#submit-message'),
message = $('#msg');
submitContact.on('click', function(e){
e.preventDefault();
var $this = $(this);
$.ajax({
type: "POST",
url: 'contact.php',
dataType: 'json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
}
}
});
});
})(jQuery);
message = $('#msg');
submitContact.on('click', function(e){
e.preventDefault();
var $this = $(this);
$.ajax({
type: "POST",
url: 'contact.php',
dataType: 'json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
}
}
});
});
})(jQuery);
Dan zie je meteen wat er allemaal verstuurd wordt.
Ik zou het dan eerst zonder je jQuery proberen, zodat direct ziet wat je formulier verstuurt.
Gewijzigd op 13/01/2017 11:53:38 door - Ariën -
De redirect zou ik plaatsen in het jquery script op de regel na 19
window.location('bedankt.html');
De berichten (foutmeldingen) zijn terug te zien, en ik krijg mailtjes met de ingevulde content. Alles werkt dus goed. Mijn fout was de verkeerde locatie van url: 'contact.php', in het js bestand.
Het enigste wat nog altijd niet lukt is de redirect naar een bedankingspagina.
Die window.location('bedankt.html'); onder regel 19 werkt niet.
Ivm email validation: moet ik alles van regel 18 tot 25 verwijderen?
Verder raad ik aan om regel 18 t/m 25 te verwijderen, en aan te passen naar:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
function check_email($email){
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
return true;
} else {
return false;
}
}
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
return true;
} else {
return false;
}
}
Dan zullen mailadressen zoals [email protected] ook werken.
Gewijzigd op 13/01/2017 15:20:05 door - Ariën -
- Ariën - op 13/01/2017 13:07:29:
Verder raad ik aan om regel 18 t/m 25 te verwijderen, en aan te passen naar:
<knip>
<knip>
Of gewoon
Code (php)
1
2
3
2
3
function check_email($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}
Want
(en vice versa) is nogal dubbelop.
En een ! aan het begin van een moeilijke/lange expressie kan over het hoofd worden gezien dus als je deze kunt vermijden is dat een pre.
Gewijzigd op 13/01/2017 15:14:30 door Thomas van den Heuvel
Ik houd alles leesbaar voor hulp. Beter meerdere regels dan een enkele regel die ze niet direct snappen of verkeerd schrijven of intepreteren. Die ! was ook niet nodig.
Gewijzigd op 13/01/2017 15:21:15 door - Ariën -
Heb nu al tiental pogingen ondernomen met verschillende opties voor de doorverwijzing naar de bedanktpagina. Lukt nog altijd niet.
Code (php)
1
2
3
4
2
3
4
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val(''); message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow').window.location('bedankt.html');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val(''); message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow').window.location('bedankt.html');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
of
Code (php)
1
2
3
4
5
2
3
4
5
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val(''); message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
window.location('bedankt.html');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val(''); message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
window.location('bedankt.html');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
en in de PHP
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
echo json_encode(array('info' => 'success', 'msg' => "Uw bericht is verzonden, bedankt! We nemen zo spoedig mogelijk contact met u op."));
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
?>
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
echo json_encode(array('info' => 'success', 'msg' => "Uw bericht is verzonden, bedankt! We nemen zo spoedig mogelijk contact met u op."));
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
?>
Kan anders eens wat data.info in een alert toont.
Als je een form afhandelt via (een) AJAX(-callback) dan zou JavaScript moeten redirecten, niet PHP :).
De AJAX POST verwacht een JSON respons. Als je mail slaagt redirect je naar een andere pagina. Da's geen AJAX respons. De mail zal wel verzonden zijn, maar je redirect-constructie werkt niet.
Daarnaast probeer je dingen uit de brievenbus te halen die er mogelijk helemaal niet zijn. Controleer eerst of er gePOST wordt (if ($_SERVER['REQUEST_METHOD' == 'POST') { ... }), en probeer dan pas de POST variabelen te inspecteren. Een andere volgorde heeft geen zin.
Ook hoort het versturen van mail en een terugkoppeling via JSON niet echt thuis in dezelfde functie. Je zou een wrapperfunctie kunnen schrijven voor het versturen van de mail, en de return-value van deze functie kunnen laten bepalen wat er moet gebeuren, maar rol dat niet in dezelfde functie. Scheid de taken/verantwoordelijkheden.
Is een combinatie van foutmeldingen (JSON Uw bericht is niet verzonden / Gelieve een geldig mailadres in te vullen / ...) niet mogelijk met een redirect na het invullen van een contactformulier?
Moet deze regel bovenaan in mijn php file komen? (if ($_SERVER['REQUEST_METHOD' == 'POST') { ... })
Of dien ik die $.ajax code te verwijderen? Deze constructie is misschien ingewikkeld, maar aangekocht via een template. Het werkt perfect voor die foutmeldingen. Enkel bij het redirecten vind ik geen oplossing.
Dit is de scripts.js file:
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
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
var submitContact = $('#submit-message'),
message = $('#msg');
submitContact.on('click', function(e){
e.preventDefault();
var $this = $(this);
$.ajax({
type: "POST",
url: 'contact.php',
dataType: 'json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
window.location.href = 'http://www.mijnsite.be/bedankt.html';
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
}
}
}
});
});
})(jQuery);
message = $('#msg');
submitContact.on('click', function(e){
e.preventDefault();
var $this = $(this);
$.ajax({
type: "POST",
url: 'contact.php',
dataType: 'json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
window.location.href = 'http://www.mijnsite.be/bedankt.html';
if(data.info !== 'error'){
$this.parents('form').find('input[type=text],input[type=email],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow').delay(5000).fadeOut('slow');
}
}
}
});
});
})(jQuery);
Dit is de 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
if($_POST) {
$to = "[email protected]"; // Your email here
$subject = 'Bericht verstuurd van mijn website xxx'; // Subject message here
}
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
echo json_encode(array('info' => 'success', 'msg' => "Uw bericht is verzonden, bedankt! We nemen zo spoedig mogelijk contact met u op."));
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
//Check e-mail validation
function check_email($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}
//Get post data
if(isset($_POST['name'],$_POST['mail'],$_POST['onderwerp'],$_POST['comment'])){
$name = $_POST['name'];
$mail = $_POST['mail'];
$onderwerp = $_POST['onderwerp'];
$comment = $_POST['comment'];
if($name == '') {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw naam in te vullen."));
exit();
} else if($mail == '' or check_email($mail) == false){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve een geldig emailadres in te vullen."));
exit();
} else if($onderwerp == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw onderwerp in te vullen."));
exit();
} else if($comment == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw bericht in te vullen."));
exit();
} else {
//Send Mail
$headers = 'From: <' . $mail . '>' . "\r\n";
'Reply-To: ' . $name . ' <' .$mail. '>' . "\r\n";
'X-Mailer: PHP/' . phpversion() . "\r\n";
send_mail($to, $subject, $comment . "\r\n\n" .'Naam: '.$name. "\r\n" .'Onderwerp: '.$onderwerp. "\r\n" .'Email: '.$mail, $headers);
}
} else {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve alle velden in te vullen."));
}
?>
if($_POST) {
$to = "[email protected]"; // Your email here
$subject = 'Bericht verstuurd van mijn website xxx'; // Subject message here
}
//Send mail function
function send_mail($to,$subject,$message,$headers){
if(@mail($to,$subject,$message,$headers)){
echo json_encode(array('info' => 'success', 'msg' => "Uw bericht is verzonden, bedankt! We nemen zo spoedig mogelijk contact met u op."));
} else {
echo json_encode(array('info' => 'error', 'msg' => "Uw bericht is niet verzonden. Er is iets verkeerd gegaan. Probeer het nog eens."));
}
}
//Check e-mail validation
function check_email($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
}
//Get post data
if(isset($_POST['name'],$_POST['mail'],$_POST['onderwerp'],$_POST['comment'])){
$name = $_POST['name'];
$mail = $_POST['mail'];
$onderwerp = $_POST['onderwerp'];
$comment = $_POST['comment'];
if($name == '') {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw naam in te vullen."));
exit();
} else if($mail == '' or check_email($mail) == false){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve een geldig emailadres in te vullen."));
exit();
} else if($onderwerp == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw onderwerp in te vullen."));
exit();
} else if($comment == ''){
echo json_encode(array('info' => 'error', 'msg' => "Gelieve uw bericht in te vullen."));
exit();
} else {
//Send Mail
$headers = 'From: <' . $mail . '>' . "\r\n";
'Reply-To: ' . $name . ' <' .$mail. '>' . "\r\n";
'X-Mailer: PHP/' . phpversion() . "\r\n";
send_mail($to, $subject, $comment . "\r\n\n" .'Naam: '.$name. "\r\n" .'Onderwerp: '.$onderwerp. "\r\n" .'Email: '.$mail, $headers);
}
} else {
echo json_encode(array('info' => 'error', 'msg' => "Gelieve alle velden in te vullen."));
}
?>
Gewijzigd op 16/01/2017 17:10:05 door Frederic D
Dus ik zou dan dit gebruiken: