formulaire simple en php

WRInaute discret
bonjour j'ai fait un formulaire coté client qui à l'air correct en html et javascript

mais coté php donc traitement du formulaire j'ai des erreurs que je comprends pas

coté client :
Code:
<form action="contact.php" onSubmit="return check()" method="post" enctype="text/plain" name="contact" align="center"class="gris" id="contact">
					     <p align="left">
				         <label for="nom">Nom *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</label>
				         <input type="text" size="20" maxlength="20" name="nom" id="nom" required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
				         <br /><p align="left">
				         <label for="prenom">Prénom *&nbsp;:&nbsp;</label>
				         <input type="text" size="20" maxlength="20" name="prenom" id="prenom" required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
					     <br /><p align="left">
						 <label for="e-mail">E-mail *&nbsp;: &nbsp;&nbsp;&nbsp;</label>
						 <input type="text" size="20" maxlength="40" name="email" id="email" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
					     <br /><p align="left"><label for="e-mail">Tel *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="text" size="20" maxlength="20" name="tel" id="tel" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
					     <br /><p align="left">
					       <label for="sujet">Sujet *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
					       <input name="sujet" type="text" class="center" id="sujet" size="40" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire"/>
					     </p>
					     <br /><p align="left">
						   <label for="message">Message *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
						   <br /><br />			       
					       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
					       <textarea name="message" cols="40" rows="6" id="message" value="Message" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire"></textarea>
					     </p>
						 
					     <p align="center">&nbsp;</p>
					     <p align="center">
					       <input type="submit" value="Envoyer" onClick="return check();"/>
				         </p>
					   </form>
					   <script type=text/javascript>
function check() {
  if (document.contact.nom.value == '') {
    alert('Veuillez remplir tous les champs du formulaire');
    return false;
  }
  if (document.contact.prenom.value == '') {
    alert('Veuillez remplir tous les champs du formulaire');
    return false;
  }
  if (document.contact.email.value == '') {
    alert('Veuillez remplir tous les champs du formulaire');
    return false;
  }
  if (document.contact.tel.value == '') {
    alert('Veuillez remplir tous les champs du formulaire');
    return false;
  }
  if (document.contact.sujet.value == '') {
    alert('Veuillez remplir tous les champs du formulaire');
    return false;
  }
  if (document.contact.message.value == '') {
    alert('Veuillez remplir tous les champs du formulaire');
    return false;
  }
  return true;
  }
</script>

coté serveur :

Code:
<?php

//Vérifier que tous les champs ont été correctement remplis
$tvar=array($_POST['name'],$_POST['prenom'],$_POST['email'],$_POST['tel'],$_POST['sujet'],$_POST['message']);
foreach($tvar as $var)
	{
	if(!isset($var) OR is_null($var))
		exit('Vous n\'avez pas rempli correctement le formulaire.');
	}

//Destinataire, sujet, expéditeur, message
$destinataire='e-mail@yahoo.fr';
$sujet=$_POST['sujet'];
$header='expediteur:'.$_POST["nom"].' '.$_POST["prenom"].' '.'<'.$_POST["email"].'>'.$_POST["tel"];
$msg=$_POST['message']);

//Envoi du mail
if(mail($dest,$sujet,$header,$msg)) { 
	echo 'Le message a &eacute;t&eacute; transmis.';
} else { 
	echo 'D&eacute;sol&eacute;, une erreur est survenue, le message n\'a pas &eacute;t&eacute; transmis.';
}
?>

merci pour votre aide
 
WRInaute discret
daccord quelle est la solution svp

ça doit pas être compliqué pour quelqu'un qui connait le php
 
WRInaute discret
vous connaissez un site web ou l'on peut acheter des scripts php pour formulaire, livre d'or ... ce sera plus simple
 
WRInaute discret
c'est mieux de créer deux documents un contact.html pour le formulaire et un contact.php pour traiter les données du formulaires (en insérant dans le contact.html :<form method="post" action="contact.php">)

ou de tout regrouper dans le même document contact.php avec comme cible la même page ( action="contact.php")
 
WRInaute passionné
C'est un choix personnel de développement.
Ca ne change rien hormis le fait qu'en séparant tu allèges la page affichée.
 
WRInaute discret
j'ai créer un formulaire en php sur une page. je le teste en local sur wamp et je n'ai pas de message d'erreur. bon début

par contre lorsque je remplis les champs et que j'oublie un champ il n'y a pas de message d'erreur comme prévu dans le code php.

je ne sais pas si c'est du au fait que je le teste en local pourriez vous me dire s'il y a une erreur dans le code et est ce que le formulaire est sécurisé ou pas.

en vous remerciant

Code:
<?php
 
//Vérifier que tous les champs ont été envoyés
if (!empty ($_POST)){
    //Extraire les variables postées
    extract($_POST);
    //variable permettant de valider l'envoi du formulaire
    $valid=true;
    //la variable nom n'est pas remplie message d'erreur
    if (empty ($nom)){
    $valid=false;
    $erreurnom="vous n'avez pas rempli votre nom";
    }
    //la variable prenom n'est pas remplie message d'erreur
    if (empty ($prenom)){
    $valid=false;
    $erreurprenom="vous n'avez pas rempli votre prenom";
    }
    //Vérifier que l'adresse e-mail n'est pas invalide
    if(!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i",$email)){
    $valid=false;
    $erreuremail="email non valide !";
    }
    //la variable email n'est pas remplie message d'erreur
    if (empty ($email)){
    $valid=false;
    $erreuremail="vous n'avez pas rempli votre email";
    }
    //la variable tel n'est pas remplie message d'erreur
    if (empty ($tel)){
    $valid=false;
    $erreurtel="vous n'avez pas rempli votre tel";
    }
    //la variable sujet n'est pas remplie message d'erreur
    if (empty ($sujet)){
    $valid=false;
    $erreursujet="vous n'avez pas rempli votre sujet";
    }
    //la variable message n'est pas remplie message d'erreur
    if (empty ($message)){
    $valid=false;
    $erreurmessage="vous n'avez pas rempli votre message";
    }
    //la variable question n'est pas remplie message d'erreur
    if (empty ($question)){
    $valid=false;
    $erreurmessage="vous n'avez pas rempli correctement le champs question";
    }
    if ($question != 6){
    $valid=false;
    $erreurmessage="vous n'avez pas rempli correctement le champs question";
    }
    //le formulaire est validé tous les champs sont remplis
    if($valid){
    //Vérifier que les variables sont protégées
    $nom=htmlspecialchars(addslashes($nom));
    $prenom=htmlspecialchars(addslashes($prenom));
    $email=htmlspecialchars(addslashes($email));
    $tel=htmlspecialchars(addslashes($tel));
    $sujet=htmlspecialchars(addslashes($sujet));
    $message=htmlspecialchars(addslashes($message));
    $question=htmlspecialchars(addslashes($question));
    //Définir les variables de la fonction mail
    $destinataire="e-mail@yahoo.fr<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script>";
    $sujet="Formulaire de contact";
    $msg="un nouveau message est arrivé \n
    Nom: $nom \n
    Prenom: $prenom \n
    Tel: $tel \n
    E-mail: $email \n
    Sujet: $sujet \n
    Message: $message";
    $entete="From: $nom \n Reply to: $email";
        if (mail($destinataire,$sujet,$msg,$entete)){
        $info="Votre message nous a bien été envoyé !";
        unset($POST, $nom, $prenom, $email, $tel, $sujet, $message);
        }
        else{
        $erreur="Erreur ! Veuillez remplir tous les champs du formulaire";
        }
    }
}
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
 
 
<style type="text/css">
<!--
 
body {
    background-color: #F9F9F9;
}
 
 
-->
</style>
</head>
 
<body oncontextmenu="return false">
<table width="510" border="0" align="center" cellspacing="0" bgcolor="#F9F9F9">
  <tr bordercolor="#99CCFF" bgcolor="#CCCCCC">
                         <th height="220" align="left" valign="top" bgcolor="#F9F9F9" class="Style47Copie" scope="row"><div align="justify">
                       <br />
                       <br />
                       <img src="titres/Contact.png" width="510" height="40" />
                       <blockquote>
                       
                       <p align="justify" class="bleuclair"><strong>
                       Pour nous Contacter</strong></p>
                       <br /><p align="justify" class="gris">Vous pouvez nous contacter par l'interm&eacute;diaire de ce formulaire :<br />
                       <br /></p>
                        
                       <?php
                       if(isset($erreur)){echo"<p>$erreur</p>";}
                       if(isset($info)){echo"<p>$info</p>";}
                       ?>
                        
                       <form method="post" action="article-contact.php" name="contact" align="center"class="gris" id="contact">
                         <p align="left">
                         <label for="nom">Nom *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</label>
                         <input type="text" size="20" maxlength="20" name="nom" id="nom" /><span class="error-message"><?php if(isset($erreurnom)) echo $erreurnom; ?></span></p>
                         <br /><p align="left">
                         <label for="prenom">Prénom *&nbsp;:&nbsp;</label>
                         <input type="text" size="20" maxlength="20" name="prenom" id="prenom" /><span class="error-message"><?php if(isset($erreurprenom)) echo $erreurprenom; ?></span></p>
                         <br /><p align="left">
                         <label for="e-mail">E-mail *&nbsp;: &nbsp;&nbsp;&nbsp;</label>
                         <input type="text" size="20" maxlength="40" name="email" id="email" /><span class="error-message"><?php if(isset($erreuremail)) echo $erreuremail; ?></span></p>
                         <br /><p align="left"><label for="e-mail">Tel *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="text" size="20" maxlength="20" name="tel" id="tel" /><span class="error-message"><?php if(isset($erreurtel)) echo $erreurtel; ?></span></p>
                         <br /><p align="left">
                           <label for="sujet">Sujet *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                           <input name="sujet" type="text" class="center" id="sujet" size="40"/>
                         <span class="error-message"><?php if(isset($erreursujet)) echo $erreursujet; ?></span></p>
                         <br /><p align="left">
                           <label for="message">Message *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                           <br /><br />               
                           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                           <textarea name="message" cols="40" rows="10" id="message" value="Message" ></textarea> <span class="error-message"><?php if(isset($erreurmessage)) echo $erreurmessage; ?></span></p>
                         <br /><p align="left">
                           <label for="e-mail">Question *&nbsp;: <br />
                           combien font 4 + 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                           <input type="text" size="20" maxlength="20" name="question" id="question" /><span class="error-message"><?php if(isset($erreurquestion)) echo $erreurquestion; ?></span></p>
                         <p align="center">&nbsp;</p>
                         <p align="center">
                           <input type="submit" value="Envoyer" id="envoyer" />
                         </p>
                       </form>
                        
                         
                       <p>&nbsp;</p>
                       <p align="center" class="gris">Ou directement par E-mail :  <br />
                         e-mail@yahoo.fr<script type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
</script><br />
                       <br />
                       <br />
                       <br />
                       <br />
                       </p>
                       <br />
                       </p>
                       </div></th>
  </tr>
</table>
<table width="780" border="0" align="center" cellspacing="0" bgcolor="#F9F9F9">
  <tr bordercolor="#99CCFF" bgcolor="#F9F9F9">
                         
  </tr>
</table>
</body>
</html>
 
WRInaute discret
lorsque je remplis tous les champs et que j'envoie j'ai ce message d'erreur:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www

et ça me retourne la variable $erreur="Erreur ! Veuillez remplir tous les champs du formulaire"

est ce qu'il y a une erreur dans le code du formulaire
 
WRInaute discret
non

peut être que ça marchera lorsque je mettrai le site web chez l'hébergeur

et mise à part les erreurs est ce que le formulaire est sécurisé ou dois je rajouter des instructions pour le sécuriser

le formulaire sera envoyé vers un web mail et les données n'iront pas vers une base de données
 
Discussions similaires
Haut