[PHP] Verification d'un champs

Fermé
laetitia - 9 nov. 2007 à 14:19
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 - 17 août 2011 à 22:30
Bonjour,
J'ai un formulaire que je traite en PHP et je fais des vérifications sur les données entrées par l'internaute avant l'insertion en base de donnée.
J'arrive a faire toutes mes verifications sauf 2 :(
- un des champs ne doit contenir que des chiffres (soit 9 chiffres soit 14 chiffres);
-un des champs doit comporter 4 caractéres composés de cette facon : 3 chiffres + 1 lettre;

je sais verifier la longueur des ces champs
1/
$nb_caractere_champs1=strlen($champs1);
2/
$nb_caractere_champs2=strlen($champs2);

Donc pour le 1/ une fois que j'ai verifié que la longueur est bien de 9 ou 14 comment je fais a verifier que c'est que des chiffres ?
Et pour le 2/ que les 3 premiers sont des lettres (de a à z) et le 4 eme un chiffre (0-9) ??

Je dois faire cette vérification obligatoirement en PHP, sans utiliser de fonction javascript.

Si quelqu'un sait comment faire, ou pourrait m'orienter vers une fonction genre str.... cela m'aiderait énormement !

Merci à vous tous.

Laetitia
A voir également:

3 réponses

naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
10 nov. 2007 à 03:21
Bonsoir ( ou bonjour ) ,

Pour ton probleme tu devrais utiliser les expressions régulieres .

par exemple pour ton cas :

if (preg_match("#[0-9]#", $champs1 )) //si le $champs1 contient que des chiffres
{
echo 'Il y a bien que des chiffres dans le champ 1'; //c'est vrai
}
else
{
echo 'Le champ 1 contient un ou des caractere(s) interdit' ; //sinon c'est faux
}

Pour plus d'info :

https://openclassrooms.com/fr/courses
https://openclassrooms.com/fr/courses
3
Bonjour, petite intervention pour dire que: if (preg_match("#[0-9]#", $champs1 )), n'interdit absolument les lettres si elles sont accompagnées de chiffres.
0
Luxerails Messages postés 159 Date d'inscription jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 41
17 août 2011 à 16:23
Oui, la regex #[0-9]# ne sufit pas. Il faudra utiliser la regex #^[0-9]$#.
0
Luxerails Messages postés 159 Date d'inscription jeudi 14 avril 2011 Statut Membre Dernière intervention 24 décembre 2012 41
17 août 2011 à 16:29
Pour le 1/ :
if (preg_match('#^[0-9]$#', $nombre_a_verifier))
{
     echo 'c\'est bon';
}


Pour le 2/
if (preg_match('#^[a-z]{3}[0-9]$#', $nombre_a_verifier2))
{
     echo 'c\'est bon';
}
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
17 août 2011 à 22:30
Bonjour,

Concernant: un des champs ne doit contenir que des chiffres (soit 9 chiffres soit 14 chiffres);

C'est un numéro SIRET/SIREN

1) faire test de cohérence avec algorithme dit "clé de Luhn"

Solution ici:
https://codes-sources.commentcamarche.net/

A+
0