PHP vérif champ facultatif renseigné

Résolu/Fermé
callahan75 Messages postés 28 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 1 juillet 2009 - 11 mars 2008 à 18:26
callahan75 Messages postés 28 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 1 juillet 2009 - 13 mars 2008 à 01:35
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 mars 2008 à 18:51
Tu fais un test:

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

}
0
callahan75 Messages postés 28 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 1 juillet 2009
12 mars 2008 à 13:45
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > callahan75 Messages postés 28 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 1 juillet 2009
12 mars 2008 à 18:01
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 mercredi 21 novembre 2007 Statut Membre Dernière intervention 1 juillet 2009 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
13 mars 2008 à 01:35
Ok...ça ouvre des perspectives.
Merci à toi.
0