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)
 ), et je vous remercie d'avance pour votre patience.