Je viens pour la première fois sur ce forum, débutant en php, je réalise un thème pour mon blog (wordPress) et je bute sur le formulaire de contact.
J' ai réalisé un captcha mais je n'arrive pas a l'intégrer dans mon formulaire.
Mon formulaire ressemble a ça :
Nom:
Email:
Message:
Validation code captcha:
recevoir une copie du mail:
Envoyer:
Je précise, mon formulaire contiens une fenêtre cacher (pot de miel)
et j'aimerais aussi rajouter un upload pour pièce jointe(mais là...je bug complet!)
C'est pourquoi je viens vous demander conseil!
voici mon code:
__________________________________________________________________________________________________________________________________________________________
//contact-form.php
<?php
session_start();
//Si le formulaire est soumis
if(isset($_POST['submitted'])) {
//Vérifiez si le champ captcha pot de miel a été rempli
if(trim($_POST['checking']) !== '') {
$captchawarning = true;
} else {
//Assurez-vous que le champ nom n'est pas vide
if(trim($_POST['contactName']) === '') {
$namewarning = ' Indiquez votre nom :';
$haswarning = true;
} else {
$name = trim($_POST['contactName']);
}
//Assurez-vous que l'adresse email est valide
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']);
}
//Assurez-vous que les commentaires ont été saisies
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']);
}
}
//Assurez-vous que le code du captcha ont été saisies et correct
if(trim($_POST['code']) === '') {
$codewarning = ' Manque-t-il le code? :';
$haswarning = true;
} else if(trim($_POST['code']) && $code != $_SESSION['rand_code']) {
$codewarning = ' Mauvais code rejouez! :';
$haswarning = true;
} else {
$code = trim($_POST['code']);
}
//S'il n'y a pas d'avertissement, envoyer l'e-mail
if(!isset($haswarning)) {
$emailTo = '[email protected]';
$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 : <[email protected]>';
mail($email, $subject, $body, $headers);
}
$emailSent = true;
}
}
} ?>
<?php get_header(); ?>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/contact-form.js"></script>
<div id="me-contacter">
<div id="forms-top"><h1>Formulaire de contact</h1></div>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks">
<h1>Merci, <?=$name;?></h1>
<p>votre e-mail a été envoyé avec succès.</p>
<div id="thanks-bot"></div>
</div>
<?php } else { ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if(isset($haswarning) || isset($captchawarning)) { ?>
<p class="erreur">Erreur veuillez recommencer<p>
<?php } ?>
<form action="<?php the_permalink(); ?>" method="post">
<ol class="forms">
<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><label for="code">Code:</label>
<?php if($codewarning != '') { ?>
<span class="warning"><?=$codewarning;?></span>
<?php } ?>
<input type="text" name="code" id="code" value="<?php if(isset($_POST['code'])) echo $_POST['code'];?>" class="requiredField code" />
</li>
<div id="captcha">
<p><img src="captcha.php"/></p>
</div>
<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"></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>
<div id="forms-bot"><h1>Pour l'envoi de pièce, jointe je vous ferai parvenir mon e-mail.</h1></div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php } ?>
<?php get_footer(); ?>
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//captcha.php
<?php
session_start();
$string = '';
for($i=0;$i<5;$i++)
{
$string .= chr(rand(97,122));
}
$_SESSION['rand_code'] = $string;
$dir = 'fonts/';
$image = imagecreate(150,70);
$black = imagecolorallocate($image, 0,0,0);
$color = imagecolorallocate($image, 255,150,0);
$white = imagecolorallocate($image, 255,255,255);
imagefilledrectangle($image,0,0,150,70,$white);
imagettftext($image,20,3,10,30,$color,$dir.'slant.ttf',$_SESSION['rand_code']);
header('content-type: image/png');
imagepng($image);
?>