Bonjour à tous,
Je poste aujourd'hui, travaillant actuellement à la refonte de mon site web. Pour être bref, j'ai suivi ce tuto, après en avoir essayé plusieurs sans succès (lié il semblerait au fait que mon site soit "one-paged"...).
Celui-ci semble donc fonctionner plutôt bien (je reçois correctement les mails), à ceci près : les messages d'informations (succès/échec de l'envoi du mail) n'apparaissent pas, et ce pour une raison que j'ignore. Au-delà de l'importance de ces messages pour le visiteur, il y a aussi le problème de bon fonctionnement général du formulaire...
J'ai eu beau relire mes lignes, il me semble que tout a été correctement repris, d'après le tutoriel d'origine. Je vous appelle donc à l'aide, afin de pouvoir résoudre ce problème, et être sûr que mon formulaire fonctionne correctement, sans non plus de problème de sécurité...
Voici donc le lien de mon site-test. Vous trouverez ci-dessous les pages concernées par le code du formulaire.
Merci d'avance à vous tous !
header.php
contact.php
et enfin le script js :
Modifié par soykje (11 Mar 2013 - 11:16)
Je poste aujourd'hui, travaillant actuellement à la refonte de mon site web. Pour être bref, j'ai suivi ce tuto, après en avoir essayé plusieurs sans succès (lié il semblerait au fait que mon site soit "one-paged"...).
Celui-ci semble donc fonctionner plutôt bien (je reçois correctement les mails), à ceci près : les messages d'informations (succès/échec de l'envoi du mail) n'apparaissent pas, et ce pour une raison que j'ignore. Au-delà de l'importance de ces messages pour le visiteur, il y a aussi le problème de bon fonctionnement général du formulaire...
J'ai eu beau relire mes lignes, il me semble que tout a été correctement repris, d'après le tutoriel d'origine. Je vous appelle donc à l'aide, afin de pouvoir résoudre ce problème, et être sûr que mon formulaire fonctionne correctement, sans non plus de problème de sécurité...
Voici donc le lien de mon site-test. Vous trouverez ci-dessous les pages concernées par le code du formulaire.
Merci d'avance à vous tous !
header.php
<?php
error_reporting(E_ALL ^ E_NOTICE); // hide all basic notices from PHP
//If the form is submitted
if(isset($_POST['submitted'])) {
// Vérification du champ 'nom'
if(trim($_POST['name']) === '') {
$nameError = '*';
$hasError = true;
} else {
$name = trim($_POST['name']);
}
// Vérification du champ 'email'
if(trim($_POST['email']) === '') {
$emailError = '*';
$hasError = true;
} else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['email']))) {
$emailError = '*';
$hasError = true;
} else {
$email = trim($_POST['email']);
}
// Vérification du champ 'message'
if(trim($_POST['message']) === '') {
$commentError = '*';
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['message']));
} else {
$comments = trim($_POST['message']);
}
}
// upon no failure errors let's email now!
if(!isset($hasError)) {
$emailTo = 'soykje@gmail.com';
$subject = 'Message de '.$name.', depuis www.soykje.com';
$body = "$comments \n\nExpéditeur : $name ($email)";
$headers = 'From: ' .' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
mail($emailTo, $subject, $body, $headers);
// set our boolean completion value to TRUE
$emailSent = true;
}
}
?>
<!DOCTYPE html><html lang="fr">
<head>
<title><?php bloginfo('name') ?><?php if ( is_404() ) : ?><?php _e(', #404 !') ?><?php elseif ( is_home() ) : ?>, graphiste indépendant<?php else : ?><?php wp_title(', ') ?><?php endif ?></title>
<meta charset="<?php bloginfo('charset'); ?>" />
<meta name="description" content="Soykje, graphiste indépendant..." />
<link href='http://fonts.googleapis.com/css?family=Ubuntu:300|Playfair+Display:400italic' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php wp_head(); ?>
</head>
<body onLoad="initialize()">
<div id="page">
contact.php
<div id="contact-form">
<p class="presentation"><span class="premiermot">Vous avez une idée,</span> une question, ou simplement envie de dire bonjour ? Dans tous les cas, n’hésitez pas à me laisser un message : c’est avec plaisir que je vous lirais, et vous répondrais.</p><!--fin presentation-->
<?php if(isset($emailSent) && $emailSent == true) { ?>
<p class="info">Your email was sent. Huzzah!</p>
<?php } else { ?>
<form id="cform" action="contact.php" method="post">
<div id="col-1">
<input name="name" type="text" id="name" placeholder="votre nom *" required="required" class="requiredField" value="<?php if(isset($_POST['name'])) echo $_POST['name'];?>"/>
<?php if($nameError != '') { ?><span class="error"><?php echo $nameError;?></span><?php } ?>
<input name="email" id="email" type="email" required="required" class="requiredField" placeholder="votre adresse email *" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
<?php if($emailError != '') { ?><span class="error"><?php echo $emailError;?></span><?php } ?>
</div>
<div id="col-2">
<input name="subject" type="text" id="subject" required="required" class="requiredField" placeholder="le sujet de votre message *" />
<textarea name="message" id="message" required="required" placeholder="votre message *" class="requiredField"><?php if(isset($_POST['message'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['message']); } else { echo $_POST['message']; } } ?></textarea>
<?php if($commentError != '') { ?><span class="error"><?php echo $commentError;?></span><?php } ?>
<button name="envoyer" type="envoyer" class="subbutton">envoyer</button>
<input type="hidden" name="submitted" id="submitted" value="true" />
</div>
<div id="postscriptum">
<p class="ps">PS : Gardez un souvenir, en téléchargeant mon book (<span class="book"><a href="http://www.soykje.com/DEPOT/book2013.pdf" target="_blank" title="Télécharger mon book"><img src="<?php bloginfo('template_url');?>/images/extlink.png" alt="" /></a></span>), ou bien retrouvez-moi sur les réseaux sociaux (<a href="http://www.facebook.com/soykje" target="_blank" title="Soykje sur Facebook"><img src="<?php bloginfo('template_url');?>/images/fb.png" alt="" /></a>, <a href="https://plus.google.com/u/0/110972588813858771410/posts" target="_blank" title="Soykje sur Google+"><img src="<?php bloginfo('template_url');?>/images/g+.png" alt="" /></a>) !</p>
<p class="nb">* Champs obligatoires</p>
</div>
</form><!--fin du formulaire de contact-->
<?php } ?>
</div>
et enfin le script js :
$(document).ready(function(){
//Formulaire de contact
$('form#cform').submit(function() {
$('form#cform .error').remove();
var hasError = false;
$('.requiredField').each(function() {
if($.trim($(this).val()) == '') {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">*</span>');
$(this).addClass('inputError');
hasError = true;
} else if($(this).hasClass('email')) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if(!emailReg.test($.trim($(this).val()))) {
var labelText = $(this).prev('label').text();
$(this).parent().append('<span class="error">*</span>');
$(this).addClass('inputError');
hasError = true;
}
}
});
if(!hasError) {
var formInput = $(this).serialize();
$.post($(this).attr('action'),formInput, function(data){
console.log(data);
/*$('form#cform').slideUp("fast", function() {
$(this).before('<p class="tick"><strong>Thanks!</strong> Your email has been delivered. Huzzah!</p>');
});*/
});
}
return false;
});
});
Modifié par soykje (11 Mar 2013 - 11:16)