mwspimiento a écrit :
Pour ce qui est du mailto je sèche vraiment en php va falloir que je me penche dessus.
Allez hop : html + php prêt à l'emploi :
<?php
//If the form is submitted
if(isset($_POST['submitted'])) {
//Check to see if the honeypot captcha field was filled in
if(trim($_POST['checking']) !== '') {
$captchawarning = true;
} else {
//Check to make sure that the name field is not empty
if(trim($_POST['contactName']) === '') {
$namewarning = ' - indiquez votre nom :';
$haswarning = true;
} else {
$name = trim($_POST['contactName']);
}
//Check to make sure sure that a valid email address is submitted
if(trim($_POST['email']) === '') {
$emailwarning = ' - indiquez une adresse e-mail valide :';
$haswarning = true;
} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
$emailwarning = ' - adresse e-mail invalide.';
$haswarning = true;
} else {
$email = trim($_POST['email']);
}
//Check to make sure comments were entered
if(trim($_POST['comments']) === '') {
$commentwarning = ' - entrez votre message :';
$haswarning = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['comments']));
} else {
$comments = trim($_POST['comments']);
}
}
//If there is no warning, send the email
if(!isset($haswarning)) {
$emailTo = 'mail-a-mettre-ici@gmail.com';
$subject = 'Message de '.$name;
$sendCopy = trim($_POST['sendCopy']);
$body = "Nom: $name \n\nEmail: $email \n\nMessage: $comments";
$headers = 'De : mon site <'.$emailTo.'>' . "\r\n" . 'Répondre à : ' . $email;
mail($emailTo, $subject, $body, $headers);
if($sendCopy == true) {
$subject = 'Formulaire de contact';
$headers = 'De : <noreply@somedomain.com>';
mail($email, $subject, $body, $headers);
}
$emailSent = true;
}
}
} ?>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks">
<h1>Merci <?=$name;?></h1>
<p>Votre message a été envoyé avec succès.</p>
</div>
<?php } else { ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h1>Formulaire de contact</h1>
<?php if(isset($haswarning) || isset($captchawarning)) { ?>
<p class="warning">Une erreur est survenue lors de l'envoi de votre formulaire :<p>
<?php } ?>
<form action="<?php the_permalink(); ?>" method="post">
<ol>
<li><label for="contactName">Nom</label>
<?php if($namewarning != '') { ?>
<span class="warning"><?=$namewarning;?></span>
<?php } ?>
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField" />
</li>
<li><label for="email">E-mail</label>
<?php if($emailwarning != '') { ?>
<span class="warning"><?=$emailwarning;?></span>
<?php } ?>
<input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" class="requiredField email" />
</li>
<li class="textarea"><label for="commentsText">Message</label>
<?php if($commentwarning != '') { ?>
<span class="warning"><?=$commentwarning;?></span>
<?php } ?>
<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
</li>
<li class="inline"><label for="sendCopy">Recevoir une copie du message</label><input type="checkbox" name="sendCopy" id="sendCopy" value="true"<?php if(isset($_POST['sendCopy']) && $_POST['sendCopy'] == true) echo ' checked="checked"'; ?> /></li>
<li class="screenreader"><label for="checking" class="screenreader">Pour envoyer ce formulaire, ne saisissez rien dans ce champ</label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking'])) echo $_POST['checking'];?>" /></li>
<li class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><button type="submit"><span>envoyer</span></button></li>
</ol>
</form>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>
Il ne vous reste plus qu'à remplacer par votre mail ce truc : " mail-a-mettre-ici@gmail.com ".
Pour la css vous trouverez bien des idées. Il y a un champ caché pour tromper les robots spameurs à mettre en display:none. Méthode sans captcha, éprouvée et très efficace. Je l'utilise depuis longtemps et je n'ai jamais été spamé.
Modifié par Olivier C (11 Feb 2012 - 22:22)