JeuWeb - Crée ton jeu par navigateur
[Résolu] Problème avec strlen - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Problème avec strlen (/showthread.php?tid=2586)



[Résolu] Problème avec strlen - clems31 - 21-05-2008

Bonjour, je suis en train de faire un petit formulaire mais, lors de la vérification des numéros de téléphone et du code postal, j'ai un petit problème. Je regarde si le nombre de caractère est suffisant pour correspondre avec un numéro de téléphone ou de code postal. Apparemment , ça ne fonctionne pas très bien...

Voici mon code:
Code PHP :
<?php 
if(strlen($_POST['faxe']) < 10 || !preg_match('`^(((100|[1-9]\d?)([,.][1-9]\d?)?)|0[,.][1-9]\d?)$`',$_POST['faxe']))
{
echo
strlen($_POST['faxe']);
echo
"<span style='color:red;'><b>Votre numéro de faxe n'est pas valide!</b></span><br />";
$nb_error++;
}


if(
strlen($_POST['portable']) < 10 || !preg_match('`^(((100|[1-9]\d?)([,.][1-9]\d?)?)|0[,.][1-9]\d?)$`',$_POST['portable']))
{
echo
strlen($_POST['portable']);
echo
"<span style='color:red;'><b>Votre numéro de portable n'est pas valide!</b></span><br />";
$nb_error++;
}


if(
$_POST['fixe'] =="" || strlen($_POST['fixe']) < 10 || !preg_match('`^(((100|[1-9]\d?)([,.][1-9]\d?)?)|0[,.][1-9]\d?)$`',$_POST['fixe']))
{
echo
strlen($_POST['fixe']);
echo
"<span style='color:red;'><b>Votre numéro de fixe n'est pas valide!</b></span><br />";
$nb_error++;
}

En ce moment, il ne me met aucun message d'erreur mais il me met toujours Votre numéro n'est pas valide...

J'espère que vous pourrez m'aider, merci Smile

++


RE: Problème avec strlen - Sephi-Chan - 21-05-2008

C'est là qu'on se dit que l'objet, ça a du bon pour coder proprement. Smile

Je pense que ce sont les !preg_match() qui altèrent le fonctionnement de tes contrôles.

Je t'invite à essayer après les avoir enlever, pour vérifier si c'est bien la longueur des chaînes qui pose problème.

Je te propose également de lire la documentation de preg_match et en particulier le chapitre sur les valeurs de retour.

Citation :Valeurs de retour

preg_match() retourne le nombre de fois où le masque pattern a été trouvé. Cela peut aller de 0 (pas de solution) à un 1 car preg_match() s'arrête dès qu'elle a trouvé une première solution. preg_match_all(), au contraire, va continuer jusqu'à la fin de la chaîne subject . preg_match() retourne FALSE si une erreur survient.


Sephi-Chan


RE: Problème avec strlen - clems31 - 21-05-2008

Ca marche Wink
J'ai remplacé les !preg_match par ctype_digit, je ne sais pas si c'est très bien mais en tout cas ça marche...

Merci à toi sephi Smile
++