Bonjour à tous.
Voila je cherche partout (et j'ai trouvé plein de chose) comment rendre les champs du formulaire obligatoire et de mettre en place un systeme anti spam sous forme de question simple.
Tout ce que j'ai lu m'est très confus et je n'avance a rien.
Quelqu'un peut il me mettre sur la voie, ou m'aider a mettre cela en place sur mon formulaire?


<form id="form2" action="/formmail.php" method="post">	
         
         <h3><span>Contact</span></h3>
         
         <fieldset><legend>Contact form</legend>
           <p class="first">
             <label for="name">Name</label>
             <input type="text" name="name" id="name" size="30" />
            </p>
           <p>
             <label for="email">Email</label>
             <input type="text" name="email" id="email" size="30" />
             </p>
           <p>
             <label for="web">Website</label>
             <input type="text" name="web" id="web" size="30" />
             </p>																					
           <p>
             <label for="message">Message</label>
             <textarea name="message" id="message" cols="30" rows="10"></textarea>
             </p>					
           
           <p class="submit"><button type="submit">Send</button></p>		
           
          </fieldset>					
         
        </form>	    


et mon formmail



<?php 
$TO = "toto@toto.fr"; 
$Sujet = "Message du site Kor";
$h = "From: " . $TO; 
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) { 
$message .= "$key : $val\n"; 
} 
mail($TO, $subject, $message, $h); 
@Header("Location:   http://");  ?>


Merci pour votre aide.
Modifié par korigann (09 Oct 2010 - 17:35)
Tu ne trouves pas ta réponse sur la toile ?

Moi, j'ai mis ce système sur mon site et ça marche nickel.

A l'époque, j'avais trouvé la solution sur le net.

Attention, il faut taper des lignes de codes et adapter tes lignes à ton formulaire.

Courage.

Marc
C'est bien mon problème, j'ai lu plein de choses, essayer d'adapter encore et encore et ca ne fonctionne pas.
Taper ne me dérange pas c surtout savoir ou les mettre, dans quel sens?
Salut,

pour rendre tes champs obligatoire et securiser ton code, tu peux faire comme ca:



function checkEmail($email){
	$syntaxe='#^[a-z0-9]+([_|\.|-|\+]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$#i';
	if(preg_match($syntaxe,$email)){return true;}else{return false;}
}

$comment='';
$confirm=false;
$test=true;

if(isset($_POST['send'])){

	foreach($_POST as $key=>$value){ $_POST[$key]=htmlentities($value); if($value==''){$test=false; $comment.='remplir champs '.$key.'<br/>';} }

	if($test){
	
		if(checkEmail($_POST['email'])){
			$to = "toto@toto.fr";
			$sujet = "Message du site Kor"; 
			$h = "From: " . $_POST['email'];  
			$message = ""; 
			foreach($_POST as $key=>$value){ $message .= "$key : $value\n"; }  
			if(mail($to, $sujet, $message, $h)){$confirm=true; $comment='Message envoyé: '.$message;}else{$comment='Erreur envoi message.';}
		}else{$comment='Adresse email incorrecte.';}
		
	}

}else{$_POST=array('message'=>'','name'=>'','email'=>'','web'=>'');}


echo '<p>'.$comment.'</p>';

if(!$confirm){
	echo '
		<form id="form2" action="" method="post">     
				 
			 <h3><span>Contact</span></h3> 
			  
			 <fieldset><legend>Contact form</legend> 
			   <p class="first"> 
				 <label for="name">Name</label> 
				 <input type="text" name="name" id="name" size="30" value="'.$_POST['name'].'" /> 
				</p> 
			   <p> 
				 <label for="email">Email</label> 
				 <input type="text" name="email" id="email" size="30" value="'.$_POST['email'].'" /> 
				 </p> 
			   <p> 
				 <label for="web">Website</label> 
				 <input type="text" name="web" id="web" size="30" value="'.$_POST['web'].'" /> 
				 </p>                                                                                     
			   <p> 
				 <label for="message">Message</label> 
				 <textarea name="message" id="message" cols="30" rows="10">'.$_POST['message'].'</textarea> 
				 </p>                     
				
			   <p class="submit"><input type="submit" name="send" value="envoyer" /></p>
				
			  </fieldset>                     
			  
		</form>  
	';
}



J'ai corrigé une petite erreur ( if(mail...) au lieu de if(!mail...) )
et rajouté le "from: $_POST['mail']".
Modifié par davidito (13 Oct 2010 - 21:32)
Bon je suis une bille!
J'ai essayé de coller le code mais je ne sais pas quelle partie coller dans le html et quelle partie mettre dans le php?
bon galère!!!
Salut,

voila une solution simple :

1. Sur ta page contact.php :



<h1>Formulaire de contact</h1> 
    
<?php                    
        $title = 'Contact';
        $content = '';
		$mail_error='Vous devez saisir un mail';							
            // le formulaire
            $name = $mail = $object = $message = '';							
            if ( !isset($_POST['submit_mail']) )
                {	
                    include('xxx.php'); <!--  Autre page php ou apparait le formulaire -->	
                    $content = $formMail;
                }
            else
                {							
                    // les variables
                    $error = 0;
                    $msgError = '';							
                    // verification des données
                    $name = trim(stripslashes($_POST['name']));
                    $name = htmlspecialchars($name);
					$mail = trim(stripslashes($_POST['mail']));
                    $mail = htmlspecialchars($mail);
                    $object = trim(stripslashes($_POST['object']));
                    $object = htmlspecialchars($object);                    
                    $message = trim(stripslashes($_POST['message']));
                    $message = htmlspecialchars($message);							
                    
					if ( empty($mail) )
					{
						$error = 1;
						$msgError .= '<h3>Vous devez saisir un mail.</h3>';
					}
                    if ( empty($object) )
                        {
                            $error = 1;
                            $msgError .= '<h3>Vous devez saisir un objet.</h3>';
                        }
                    if ( empty($message) )
                        {
                            $error = 1;
                            $msgError .= '<h3>Vous devez saisir un message.</h3>';
                        }							
                    
                    // recherche par expression rationnelle insensible à la casse
                    // verification format de l'adresse mail
                    elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$", $mail))
                    { 
                        $error = 1;
                        $msgError .= '<p>Vous devez saisir un mail valide.</p>';
                    }
                    // contenu du mail
                    $text = $name ."\n";
                    $text .= $mail ."\n";
                    $text .= $message ."\n";							
                    // entete : de la part, adresse de réponse, format texte, encodage
                    $headers = 'From: '.$mail.' <'.$mail.'>'. "\n";
                    $headers .= 'Reply-To:'. $mail ."\n"; 
                    $headers .= 'Content-Type: text/plain; charset="iso-8859-1"' ."\n"; 
                    $headers .= 'Content-Transfer-Encoding: 8bit';
                    // pas d'erreur
                    if ($error == 0)
                    {
                        // envoie du mail
                        if(mail('TonAdresse@Mail', $object, $text, $headers)) 
                        { 
                            echo '<p>Le message a bien ete envoye.</p>'; 
                        } 
                        else 
                        { 
                            echo '<p>Le message n\'a pu etre envoye.<br />'; 
                        }  							
                    }
                        else
                        {							
                            // message d'erreur et formulaire
                            include ('xxx.php'); <!-- Autre page php ou apparait le formulaire -->							
                                $content = $msgError;
                                $content .= $formMail;							
                        }							
                }							
                echo $content;						
    ?>


2. Sur une autre page xxx.php :


<?php

	$formMail = '
<form action="" method="post">

		<div id="formulaire1">			
		
			<div id="mail_content">
				<div>
					<div class="subject">
						<label for="name"><h4>Nom/Prenom :</h4></label><br />
					</div>
					
					<div class="case">
						<input type="text" name="name" id="name" size="30" maxlength="50" value="'. $name .'" />
					</div>
				</div>				
				
				<div>
					<div class="subject">
						<label for="mail"><h4>Email :</h4></label><br />
					</div>
					
					<div class="case">
						<input type="text" name="mail" id="mail" size="30" maxlength="50" value="'. $mail .'" />
					</div>
				</div>	
				
				<div>
					<div class="subject">
						<label for="object"><h4>Objet :</h4></label><br />
					</div>
					
					<div class="case">
						<input type="text" name="object" id="object" size="30" maxlength="50" value="'. $object .'" />
					</div>
				</div>	
						
				<div>
					<div class="subject">
						<label for="message"><h4>Message :</h4></label><br />
					</div>
					
					<div class="case2">
						<textarea name="message" id="message" cols="30" rows="4" dir="ltr" lang="fr">'. $message .'</textarea>	
					</div>
				</div>
								
				<div id="submit">
					<br />
					<input type="submit" name="submit_mail" id="submit_mail" value="Envoyer" />
				</div>
				
			</div>
		
		</div>

</form>		
';

	
?>



Voila, cette methode est très simple et pratique, pour ce qui est du design, il suffit d'appeller ta feuille de style sur contact.php, et les balises sont déjà présentes.
Je comprends bien sur mais je crois que j'ai un gros probleme avec le php, un blocage, surement quelque chose qui remonte a mon enfance hihi. enfin j'ai fais tout mon site en html, exprès pour m'eviter le php et je retombe dedans avec ce fameux contacte.
quand on me parle php, je beug!!!
en tout cas merci a tout le monde pour toute l'aide que vous m'avez fourni.
Je suis tombé sur un lien qui m'a expliqué comment rendre les champs obligatoires avec dreamweaver.
Maintenant je me retrouve avec une fenêtre d'alerte windows complètement moche pour dire qu'il faut mettre son nom etc...
Je vais orienter maintenant mes recherches sur le moyen de changer cette fenêtre.
merci à tous.
pour voir le résultat de ma page de contacte, vous pouvez aller voir mon site.
www.korigann.net.