ça ne marche toujours pas
Bonsoir tout le monde,
J'ai suivi l'excellent tutoriel proposé par Grafikart sur la réalisation d'un formulaire avec vérification en PHP et en jQuery.
J'ai revue le tutoriel à plusieurs reprises en apportant une double attention au code écrit mais je ne parviens pas à trouver la cause des dysfonctionnements.
Au moment de l'envoi du formulaire, j'ai ce message d'erreur qui semble indiqué que la variable "adresse" n'est pas initialisé :
Même si je supprime le champs caché pour flouter un robot, l’émail n'est pas envoyé, le message notifiant que l'émail à bien été reçu ne s'affiche pas au dessus du formulaire et je ne reçois rien dans ma boite mail spam compris.
Voici le code PHP
<?php
if(!empty ($_POST)){
extract($_POST);
$valid = true;
if($adresse != ""){
}
else{
if(empty($nom)){
$valid=false;
$erreurnom="Vous n'avez pas rempli votre nom et prénom !";
}
if(empty($prenom)){
$valid=false;
$erreurprenom="Vous n'avez pas rempli votre prénom !";
}
if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
$valid=false;
$erreuremail = "Votre email n'est pas valide !";
}
if(empty($email)){
$valid=false;
$erreuremail="Vous n'avez pas rempli votre email !";
}
if(empty($message)){
$valid=false;
$erreurmessage="Vous n'avez pas rempli votre message !";
}
if($valid){
$to = "adelkamel@hotmail.fr";
$sujet = "Un message en provenance du portfolio";
$header = "From: adelkamel@hotmail.fr \n";
$header = "Reply-To: $email";
$message = stripslashes($message);
$nom = stripslashes($nom);
if(mail($to,$sujet,$message,$header)){
$erreur ="Votre message nous ai bien parvenu";
unset($nom);
unset($prenom);
unset($email);
unset($message);
}
else{
$erreur ="Une erreur est survenue";
}
}
}
}
?>
Le code jQuery:
<script type="text/javascript">
$(document).ready(function() {
$("#adresse").hide();
$("#envoyer").click(function(){
valid=true;
if($("#nom").val()==""){
$("#nom").css("background-color","#fe9898");
$("#nom").next(".error-message").text("Vous n'avez pas rempli votre nom et prénom !");
valid=false;
}
else{
$("#nom").css("background-color","#c2ffc2");
$("#nom").next(".error-message").text("");
}
if($("#email").val()==""){
$("#email").css("background-color","#fe9898");
$("#email").next(".error-message").text("Veuillez entrer votre email !");
valid=false;
}
else{
if(!$("#email").val().match(/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i)){
$("#email").css("background-color","#fe9898");
$("#email").next(".error-message").text("Veuillez entrer un email valide !");
valid=false;
}
else{
$("#email").css("background-color","#c2ffc2");
$("#email").next(".error-message").text("");
}
}
if($("#message").val()==""){
$("#message").css("background-color","#fe9898");
$("#message").next(".error-message").text("Veuillez entrer un message !");
valid=false;
}
else{
$("#message").css("background-color","#c2ffc2");
$("#message").next(".error-message").text("");
}
return valid;
});
});
</script>
et enfin le code de mon formulaire :
<form action="contact.php" method="post" id="formulaire_contact" enctype="application/x-www-form-urlencoded">
<?php if(isset($erreur)){ echo "<p>$erreur</p>";} ?>
<fieldset>
<div class="etiquette"><!-- NOM -->
<label for="nom"><img src="img/contact/nom.png" alt="Nom et Prénom" title="Nom et Prénom"/></label>
<input type="text" class="icon_nom" id="nom" name="nom" value="<?php if(isset($nom)) echo $nom; ?>" tabindex="1"/>
<span class="error-message"><?php if(isset ($erreurnom)) echo $erreurnom; ?></span>
</div>
<input id="adresse" type="text"/>
<div class="etiquette"><!-- EMAIL -->
<label for="email"><img src="img/contact/email.png" alt="Email" title="Email"/></label>
<input type="text" class="icon_email" id="email" name="email" value="<?php if(isset($email)) echo $email; ?>" tabindex="3"/>
<span class="error-message"><?php if(isset ($erreuremail)) echo $erreuremail; ?></span>
</div>
<div class="etiquette">
<label for="message"><img src="img/contact/message.png" alt="Message" title="Message"/></label>
<textarea class="icon_msg" cols="30" rows="30" name="message" id="message" value="<?php if(isset ($message)) echo $message; ?>" tabindex="5"></textarea>
<span class="error-message"><?php if(isset ($erreurmessage)) echo $erreurmessage; ?></span>
</div>
<input class="envoyer" id="envoyer" name="envoyer" value="" type="image" />
</fieldset>
</form>
J'espère que vous pourrez me venir en aide.
Cordialement,
Adel
5 réponses
J'ai trouvé la solution :), merci quand même
Bonsoir PhiSyX
Bien vue, c'était bien cela qui causé l'erreur PHP par contre, je ne reçois pas le contenu du formulaire sur mon Émail et l'écho
<?php if(isset($erreur)){ echo "<p>$erreur</p>";} ?>
ne s'affiche toujours pas.
Essaye ceci :
<?php if(isset($erreur)){ echo "<p>".$erreur."</p>";} ?>
Hello, c'est parce qu'il manque l'attribut name="adresse" dans l'input#adresse