Formulaire avec champs obligatoires

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire avec champs obligatoires

Re: Formulaire avec champs obligatoires

par orell1 » 21 févr. 2011, 19:46

Bonsoir,

Je le laisse essayer ça :
<?php
$nom = $_POST['nom'];
$mail = $_POST['mail'];
$telephone = $_POST['telephone'];
$sujet = $_POST['objet'];
//-----------------------------------------------------------------------------------------

//---------------si les variables n'existe pas afficher message information----------------
    if (!$mail || !$nom || !$telephone || $_POST['hidden'])  // CONTROLE DE TES CHAMPS OBLIGATOIRES
  {
    echo "<h1> TAPE ICI TON MESSAGE D'ERREUR</h1>";
        echo "<br />[  <a href=\"javascript:history.back()\">Retour au formulaire</a>  ]</div><br />";
  	
    exit();
  }

//------------------------------------ Envoi du mail --------------------------------------
 $to = "[email protected]"; // TAPE TON MAIL ICI

 $header = "MIME-Version:1.0" . "\r\n" ;
 $header .= "Content-Type:text/html;charset=ISO-8859-1" . "\r\n";
 // more Header
 $header .= "From: $mail" . "\r\n" ;
 $header .= "<b>Nom :</b> $nom" . "<br>" ;
 $header .= "<b>Téléphone :</b> $telephone" . "<br><br>" ; 
	 

     if (@mail($to, $sujet, $message, $header))
    {
	echo "Message envoyé! Redirection sur la page d'accueil";
	echo '<meta http-equiv="refresh" content="1; url=../index.html" />';

      exit();	
    }

//-------------------------------- si echec de l'envoi ------------------------------------
     else
    {
    echo "<h1> TAPE ICI TON MESSAGE D'ERREUR</h1>";
    echo "<br />[  <a href=\"javascript:history.back()\">Retour au formulaire</a>  ]</div><br />";

      exit();
    }
  
?>
Pour l'installation c'est très simple:

Tu indiques dans ton formulaire (ton php est le code ci-dessus):
<form action="NOM_DU_PHP_QUI_RECUPERE_TES_CHAMPS_ET_ENVOIE_TON_MAIL.php" method="post">
Voila, de ce fait lorsque quelqu'un poste un message via le formulaire, ton PHP récupère les infos, contrôle si les champs obligatoires ont été remplis et envoie le message!
Bon courage.
:wink:

Re: Formulaire avec champs obligatoires

par Quel con!!! » 21 févr. 2011, 19:43

Merci à ceux qui ont cherché, mais j'ai trouvé....
Un truc bête comme d'hab ;-)

Formulaire avec champs obligatoires

par Gilles12 » 21 févr. 2011, 19:19

Bonjour,
j'ai créé un formulaire simple avec envoi des données recueillies par mail. Pour vérifier quelques champs obligatoires, j'ai placé required devant mes noms de champs. Mais il semblerait que cela empèche les données de figurer dans mon mail. Ainsi, les champs sont bien obligatoires, mais je reçois le mail sans les données des champs obligatoires...
Qui a une idée?

Mon script :
<script>function checkrequired(which){
var pass=true
if (document.images){
for (i=0;i<which.length;i++){
var tempobj=which.elements
if (tempobj.name.substring(0,8)=="required"){
if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&tempobj.selectedIndex==-1)){
pass=false
break
}
}
}
}
if (!pass){
alert("Certains champs de ce formulaire sont obligatoires, merci de bien vouloir les renseigner")
return false
}
else
return true
}
</script>

Mon code formulaire :
form method='post' action='inc_php/contact.inc.php' onSubmit="return checkrequired(this)" >
<table style="float:left; margin-top:20px;">
<tr><td><b>*Nom:</b></td><td><td><input type='text' size='50' name='requirednom' onchange="verif(this.value, 'nom')" id='nom' /></td><td><span id="error_nom"></span></td></td></tr>
<tr><td><b>E-mail:</b></td><td><td><input type='text' size='50' name='mail' onchange="verifmail(this.value, 'mail')" id='mail' /></td><td><span id="error_mail"></span></td></td></tr>
<tr><td><b>*Telephone:</b></td><td><td><input type='text' size='50' name='requiredtelephone' onchange="verif(this.value, 'telephone')" id='telephone' /></td><td><span id="error_telephone"></span></td></td></tr>
<tr><td><b>&nbsp;&nbsp;Objet:</b></td><td><td><input type='text' size='50' name='objet' onchange="verif(this.value, 'objet')" id='objet' /></td><td><span id="error_objet"></span></td></td></tr>
<tr style="text-align:top;"><td><b>&nbsp;&nbsp;Message:</b></td><td><td><TEXTAREA rows='10' onchange="verif(this.value, 'message')" cols='38' id="message" name='message'></TEXTAREA></td><td><span id="error_message"></span></td></td></tr>
<tr><td></td><td></td><td><input type='submit' value='Envoyer' /></td></tr>
</table>
</form>
<b>&nbsp;&nbsp;* Champs obligatoires</b>

et enfin mon petit php :
<?php

$nom = $_POST['nom'];
$mail = $_POST['mail'];
$telephone = $_POST['telephone'];
$sujet = $_POST['objet'];
$message="Un nouveau message est arrivé \n
Nom : $nom \n
Email : $mail \n
Telephone : $telephone \n
Message: $message";
$message .= $_POST['message'];


mail("[email protected]",$sujet,$message);
echo "Message envoyé! Redirection sur la page d'accueil";
echo '<meta http-equiv="refresh" content="1; url=../index.html" />';

?>

Merci de votre aide