PHP vérif champ facultatif renseigné

Résolu
callahan75 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
callahan75 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous,

j'avance pas à pas dans mes scripts ! celui-là se comporte plutôt bien tout du moins en local ...
J'aurais quand même bien voulu sur le champ facultatif ["tel"] mettre au point quelque chose dans mon script...
me permettant, si et seulement si ce champ facultatif se trouvait renseigné, de le vérifier avec une Expression Reg genre (preg_match("/^[\d\s]{10,}$/",trim($_POST["tel"]))... évidemment sans qu'il me renvoit à "$erreur" si le champ n'était pas pris en compte (tout le problème étant là !). En résumé, pas d'action si "empty" mais contrôlé si "!empty".J'ai tenté des choses de mon "cru" qui ne fonctionnent pas... En tout cas un grand merci à ceux qui me répondent car c'est pertinent et je progresse !

<?php

function verif()
{

$erreur="";

if (!preg_match("mon_ExpReg",trim($_POST["nom"])))
$erreur .= "Merci de vérifier le format du champ <b>Nom</b><br/>";

if (!preg_match("mon_ExpReg",trim($_POST["prenom"])))
$erreur .= "Merci de vérifier le format du champ <b>Prénom</b><br/>";


if (!preg_match("mon_ExpReg",trim($_POST["email"])))
$erreur .= "Merci de vérifier le format du champ <b>E-mail</b><br/>";

if (!preg_match("mon_ExpReg",trim($_POST["ville"])))
$erreur .= "Merci de vérifier le format du champ <b>Ville</b><br/>";

if (strlen(trim($_POST["message"]))<10)
$erreur .= "Merci de vérifier votre <b>Message</b> (10 caractéres minimum)<br/>";

if (!empty($erreur)) {
print ($erreur);
return false;
}
else{
return true;
}
}
if (verif()==false) exit(0);
/*else {return true*/

print ("<b>Nom</b> : ".$_POST["nom"]."<br/>");
print ("<b>Prenom</b> : ".$_POST["prenom"]."<br/>");
print ("<b>tél</b> : ".$_POST["tel"]."<br/>");
print ("<b>E-mail</b> : ".$_POST["email"]."<br/>");
print ("<b>Ville</b> : ".$_POST["ville"]."<br/>");
print ("<b>Pays</b> : ".$_POST["pays"]."<br/>");
print ("<b>Message</b> :".$_POST["message"]."<br/>");
?>
A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Tu fais un test:

if(isset($_POST['tel'] AND !empty($_POST['tel'])){
  if(!pregmatch.......

}
0
callahan75 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Merci à toi Alain_42... après plusieurs essais, cela fonctionne sous cette forme:

if (!empty ($_POST['tel']) && !preg_match("/^[\d\s]{10,}$/",trim($_POST['tel'])))
$erreur .= "Merci de vérifier le format du champ <b>Tél</b><br/>";

Par contre je n'ai pas bien saisi le fonctionnement de l'action/condition if (!preg_match) contenue dans un autre if.
...ça viendra !
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894 > callahan75 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Tu peux imbriquer plusieurs conditions if

if(condition 1 AND condition2){
if(condition 3){
instructions....
}
if(condition 4){
instructions...
}


}
0
callahan75 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   > Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention  
 
Ok...ça ouvre des perspectives.
Merci à toi.
0