Php souci vérif case téléphone

Fermé
Utilisateur anonyme - Modifié par irongege le 9/02/2011 à 23:47
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 - 12 oct. 2010 à 18:55
Bonjour,
Bon bah après avoir cherché et testé je n'arrive pas :/
je me suis inspiré du code :
if(preg_match(''[0-9]{10}'',$numero_de_telephone));echo "C'est bon";

qui se trouve sur cette page :
https://forums.commentcamarche.net/forum/affich-4724603-verification-numero-de-telephone-form-php

pour l'inséré dans mon code pis sa veut vraiment pas donc comment vérifié mon input qui a bien 10 chiffres.

mon input :
<input name="tel" type="text" id="tel" />

Mon code de vérifie.

$mail = htmlentities($_POST['mail']);

if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) //Verifie que l'email entrée n'est pas une fausse.
{
$tel = htmlentities($_POST['tel']);
if(preg_match(''[0-9]{10}'',$tel))
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine); //On créé le code de confirmation

$pseudo = htmlentities($_POST['pseudo']); //On recupère les infos
$mdp = htmlentities($_POST['mdp']);
$verif_mdp = htmlentities($_POST['verif_mdp']);
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$pays = htmlentities($_POST['pays']);
$age = htmlentities($_POST['age']);



/*On Fait la variable contenant le mail de confirmation*/

$message1 = '<html><body>Bonjour ' . $pseudo . ' et bienvenue sur ' .$nom_site. '.</br>';
$message1 .= '</br>';
$message1 .= 'Vous venez de vous inscrire et nous sommes heureux<br>de pouvoir vous compter aujourd\'hui parmi nos membres.<br>';
$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement : <br><br>';
$message1 .= 'Votre Login : ' . $pseudo .'<br><br>';
$message1 .= 'Votre Mot de passe : ' . $mdp .'<br><br>';
$message1 .= 'Votre Mail : ' . $mail .'<br><br>';
$message1 .= 'Votre Nom : ' . $nom .'<br><br>';
$message1 .= 'Votre Prenom : ' . $prenom .'<br><br>';
$message1 .= 'Votre téléphone : ' . $tel .'<br><br>';
$message1 .= 'Votre adresse : ' . $pays .'<br><br>';
$message1 .= 'Votre age : ' . $age .'<br><br>';
$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br><br>';
$message1 .= 'Cliquez sur le lien de votre Clé d\'activation ou copiez le dans votre navigateur afin de valider votre compte.<br>';
$message1 .= '<a href="' .$url_script. '/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '">' .$url_script. '/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '</a><br><br>';
$message1 .= 'A très bientôt sur le site : <a href="' .$url_site. '">' .$url_site. '</a><br><br>';
$message1 .= 'L\'équipe <a href="' .$url_site. '">' .$nom_site. '</a>';

$sql = connect_sql(); //On se connecte à MySQL

$verification = mysql_query("SELECT COUNT(*) FROM membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());

if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà
{
$reponse = 'Le login ou l\'email est déjà utilisé, merci d\'en choisir un(e) autre. <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
else
{
if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($age) || empty($tel)) //On verifie que les variables précédentes ne soient pas vide
{
$reponse = 'Un ou plusieurs champs ne sont pas remplis, ou votre téléphone ne comporte pas 10 chiffres <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
elseif( $mdp != $verif_mdp) //On verifie que les 2 pass sont identiques
{
$reponse = 'Les mots de passe ne sont pas identiques, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
else //Si tout est bon on entre les données dans la BDD et on envoye le mail
{
mysql_query("INSERT INTO membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$age', '$tel')");
$reponse = 'vous êtes maintenant inscrit sur ' .$nom_site. '. <br>Vous allez recevoir un mail pour activer votre compte. Attention il se peut que l\'email atterri dans votre courrier indésirable <br><a href="' .$url_site. '">Retour à l\'Accueil</a>';
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete);
}
}

mysql_close($sql); //On se deconnecte
}
else //Reponse si l'adresse e-mail est une fausse
{
$reponse = 'Votre adresse e-mail "' . $mail . '" n\'est pas correcte. <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
?>
<? echo $reponse; ?></p>




Donc comment intégré un code vérification téléphone qui et bien entrée dans mon input svp merci

Cordialement stéphane

2 réponses

canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
11 oct. 2010 à 22:17
if(preg_match("#^0[0-9]{9}$#"))
echo "<p>C'est bon !</p>


sinon j'ai trouvé ça comme regex :
if(preg_match("#^0[1-68]([-. ]?[0-9]{2}){4}$#"))
echo "<p>C'est bon !</p>
0
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
Modifié par canarder le 11/10/2010 à 22:21
au fait ton truc c'est faux puisque la regex commence et termine par un dièse ...
Les expressions régulières :
Partie 1
Partie 2

EDIT : la deuxième regex devrais être bon, puisqu'avec elle on commence le numéro par un 0, on met un chiffre de 1 à 6 ou un 8, puis on met 4 fois 2 chiffres de 0 à 9, en sachant qu'on peut mettre un tiret, un espace, un point ou rien tout les deux chiffres, donc utilise là, elle est bonne
0
Utilisateur anonyme
11 oct. 2010 à 22:26
bonsoir all,
merci de vos réponse ;)
bon j'ai testé se code y a aucune erreur mais sa vérifi pas le input
j'ai testé if(preg_match("#^0[0-9]{9}$#"))
echo "<p>C'est bon !</p>

########################################################

Signaler canarder - 11 oct 2010 à 22:18
au fait ton truc c'est faux puisque la regex commence et termine par un dièse ...
Les expressions régulières :

je connais et déjà suivie le tuto de t'es 2 parties mais sa veut pas :/

Cordialement stéphane
0
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
11 oct. 2010 à 22:29
si t'avais suivi tu v errais que j'ai oublié un truc : la variable à tester
if(preg_match("#^0[1-68]([-. ]?[0-9]{2}){4}$#"), $POST['tel'])
echo "<p>C'est bon !</p>
0
Utilisateur anonyme
11 oct. 2010 à 22:34
re canarder
Je parle du site du zero j'avais déja vue et suivie le tuto mais sa me dit erreur ligne xxx

et avec ton code :
if(preg_match("#^0[1-68]([-. ]?[0-9]{2}){4}$#"), $POST['tel'])
echo "<p>C'est bon !</p>

j'ai cette erreur : Parse error: syntax error, unexpected ',' in /home/web/www/membre/inscription2.php on line 90

Cordialement Stéphane
0
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
Modifié par canarder le 11/10/2010 à 22:40
ouai j'ai oublié une parenthèse !
if(preg_match("#^0[1-68]([-. ]?[0-9]{2}){4}$#"), $POST['tel'])) 
echo "<p>C'est bon !</p>
décidément c'est pas mon jour :p
0
CH4NCE Messages postés 620 Date d'inscription jeudi 7 décembre 2006 Statut Membre Dernière intervention 8 août 2013 707
11 oct. 2010 à 22:06
Bonjour,
supprimes tout ce qui n'est pas chiffre avec preg_replace
comptes le nombre de caracteres restant avec strlen et affiche une erreur si strlen($ton numero) n'est pas egal à 10
sinon c'est bon.
Enfin je vois ça comme ça.
-2
canarder Messages postés 1706 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
11 oct. 2010 à 22:24
preg_match est bien mieux, preg_replace est inutile pour ça
0
CH4NCE Messages postés 620 Date d'inscription jeudi 7 décembre 2006 Statut Membre Dernière intervention 8 août 2013 707
Modifié par CH4NCE le 11/10/2010 à 23:50
non car avec preg_replace tu vires les erreurs ou autre code malveillant et tu controles avec strlen.
Ca permet notemment de transformer 01.20.20.20.20 ou 01 20 20 20 20 ou 01²20202020 en 0120202020
0