[RESOLU] Contrôle des champs formulaire

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 : [RESOLU] Contrôle des champs formulaire

Re: Contrôle des champs formulaire

par ikarytos » 19 nov. 2015, 11:50

Un grand merci à tous.

Re: Contrôle des champs formulaire

par sirakawa » 18 nov. 2015, 14:30

<?php

/* Comme $_POSt['Preview'] est testé partout avec des & on peut le mettre en premier*/
if(isset($_POST['Preview']) && ($_POST['nom_exp'] == "") ){ echo "$erreur1"; }
if(isset($_POST['Preview']) && ($_POST['nom_dest'] == "") ){ echo "$erreur2"; }
if(isset($_POST['Preview']) && ($_POST['email_exp'] == "") ){ echo "$erreur3"; }
if(isset($_POST['Preview']) && ($_POST['email_dest'] == "") ){ echo "$erreur4"; }
if(isset($_POST['Preview']) && ($_POST['message'] == "") ){ echo "$erreur5"; }

else

exit();

if(isset($_POST['Preview'])){
$nom_exp=$_POST['nom_exp'];
$nom_dest=$_POST['nom_dest'];
$email_exp=$_POST['email_exp'];
$email_dest=$_POST['email_dest'];
$message=$_POST['message'];
$rb1=$_POST['rb1'];
$rb2=$_POST['rb2'];
$rb3=$_POST['rb3'];

echo ''.$nom_exp.'<br/>'.$nom_dest.'<br/>'.$email_exp.'<br/>'.$email_dest.'<br/>'.$message.'<br/><br/><IMG SRC='.$rb1.'><br/><br/><IMG SRC='.$rb2.'><br/><br/><IMG SRC='.$rb3.'>';
}

?>
$compte_rendu = array();
$tout_ok = TRUE;
if (isset($_POST['Preview']))
{

if ($_POST['nom_exp'] == "")
{
$compte_rendu[] = $erreur1;
$tout_ok = false;
}
else
{
if ($_POST['nom_dest'] == "")
{
$compte_rendu[] = $erreur2;
$tout_ok = false;
}
else
{
if ($_POST['email_exp'] == "")
{
$compte_rendu[] = $erreur3;
$tout_ok = false;
}
else
{
if ($_POST['email_dest'] == "" )
{
$compte_rendu[] = $erreur4;
$tout_ok = false;
}
else
{
if ($_POST['message'] == "")
{
$compte_rendu[] = $erreur5;
$tout_ok = false;
}
else
{

}
}
}
}
}
if ($tout_ok == TRUE)
{

}
else
{
//afficher $compte_rendu
}
}
else
{
//je ne sais pas quoi faire
}

OU (si je ne me suis pas trompé dans les parenthèses
if (($_POST['email_exp'] == "") and ( filter_var($_POST['email_exp'], FILTER_VALIDATE_EMAIL))
			{
				$compte_rendu[] = $erreur3;
				$tout_ok = false;
			}
			else
			{
				if ($_POST['email_dest'] == "" )
				{
					$compte_rendu[] = $erreur4;
					$tout_ok = false;
				}
				else
{

Re: Contrôle des champs formulaire

par sirakawa » 15 nov. 2015, 18:23

Re: Contrôle des champs formulaire

par ikarytos » 15 nov. 2015, 13:05

Je te remercie Or1 la gestion d’erreur fonction assez bien, j’ai juste une nouvelle complication au moment du contrôle des @ et des . dans les adresses mail la page s’affiche normalement mais avec une ligne

Notice: Undefined index: email_exp in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\S6\index2.php on line 83

Ce qui correspond à

Code : Tout sélectionner

$email = $_POST['email_exp'];
<?php

require_once 'erreur.php';


$email = $_POST['email_exp']; 
$point = strpos($email,"."); 
$aroba = strpos($email,"@"); 


$erreur = "";
if(isset($_POST['Preview']) && ($_POST['nom_exp'] == "") ){ $erreur ="$er1"; }
else if(isset($_POST['Preview']) && ($_POST['nom_dest'] == "") ){ $erreur ="$er1"; }
else if(isset($_POST['Preview']) && ($_POST['email_exp'] == "") ){ $erreur ="$er1"; }
else if(isset($_POST['Preview']) && ($_POST['email_dest'] == "") ){ $erreur ="$er1"; }
else if(isset($_POST['Preview']) && ($_POST['message'] == "") ){ $erreur ="$er1"; }

else if(isset($_POST['Preview']) && ($point=='') ){ $erreur ="$er2"; }

else if(isset($_POST['Preview']) && ($aroba=='') ){ $erreur ="$er3"; }


if($erreur != ""){
echo $erreur; 
exit();  
}

if(isset($_POST['Preview'])){
    $nom_exp=$_POST['nom_exp'];
    $nom_dest=$_POST['nom_dest'];
    $email_exp=$_POST['email_exp'];   
    $email_dest=$_POST['email_dest'];
    $message=$_POST['message'];    
    $rb1=$_POST['rb1'];   
    $rb2=$_POST['rb2'];   
    $rb3=$_POST['rb3'];  
        
    echo ''.$nom_exp.'<br/>'.$nom_dest.'<br/>'.$email_exp.'<br/>'.$email_dest.'<br/>'.$message.'<br/><br/><IMG SRC='.$rb1.'><br/><br/><IMG SRC='.$rb2.'><br/><br/><IMG SRC='.$rb3.'>';
}

?>

Re: Contrôle des champs formulaire

par usterin » 15 nov. 2015, 05:14

Mais je ne sais pas donc je laisse l'avis final à des expert ^^

Re: Contrôle des champs formulaire

par or 1 » 15 nov. 2015, 00:04

$erreur = "";
if(isset($_POST['Preview']) && ($_POST['nom_exp'] == "") ){ $erreur = "$erreur1"; }
else if(isset($_POST['Preview']) && ($_POST['nom_dest'] == "") ){ $erreur ="$erreur2"; }
...

if($erreur != ""){
echo $erreur; 
exit();  
}

Contrôle des champs formulaire

par ikarytos » 14 nov. 2015, 23:14

Bonjour à tous,

je rencontre des difficultés avec mon formulaire.

Depuis que j’ai placé un contrôle des champs avant prévisualisation des données je me retrouve avec des erreurs.

En fait dans le code si dessous si j’ai bien compris c’est le exit(); qui pose problème.
J’ai essayé de le placer à différant endroit j’obtiens des résultats différant ma pas ce que je veux.
Ce que je souhaite c’est qu’avant validation tous les champs soit rempli. Or souvent ça marche jusque au (email_dest) mais en revanche si je remplis uniquement le message il envoie en plus de message d’erreur 5 la prévisualisation.

Des idées ?
<?php

if(isset($_POST['Preview']) && ($_POST['nom_exp'] == "") ){ echo "$erreur1"; }
if(isset($_POST['Preview']) && ($_POST['nom_dest'] == "") ){ echo "$erreur2"; }
if(isset($_POST['Preview']) && ($_POST['email_exp'] == "") ){ echo "$erreur3"; }
if(isset($_POST['Preview']) && ($_POST['email_dest'] == "") ){ echo "$erreur4"; }
if(isset($_POST['Preview']) && ($_POST['message'] == "") ){ echo "$erreur5"; }
 
else

exit();  

if(isset($_POST['Preview'])){
    $nom_exp=$_POST['nom_exp'];
    $nom_dest=$_POST['nom_dest'];
    $email_exp=$_POST['email_exp'];   
    $email_dest=$_POST['email_dest'];
    $message=$_POST['message'];    
    $rb1=$_POST['rb1'];   
    $rb2=$_POST['rb2'];   
    $rb3=$_POST['rb3'];  
        
    echo ''.$nom_exp.'<br/>'.$nom_dest.'<br/>'.$email_exp.'<br/>'.$email_dest.'<br/>'.$message.'<br/><br/><IMG SRC='.$rb1.'><br/><br/><IMG SRC='.$rb2.'><br/><br/><IMG SRC='.$rb3.'>';
}

?>