Interrogation sur expression reguliere
Résolu
jupiler
-
jupiler -
jupiler -
Bonjour,
A votre avis ici
if (preg_match("^[0-9]{15}$^", $ss))
signifie bien que la variable $ss doit avoir 15 caractères mini et maxi compris entre 0 et 9 ?
Merci
A votre avis ici
if (preg_match("^[0-9]{15}$^", $ss))
signifie bien que la variable $ss doit avoir 15 caractères mini et maxi compris entre 0 et 9 ?
Merci
Configuration: Windows Vista Firefox 3.5.2
13 réponses
-
Bonjour,
Non, l'expression est incorrecte, je viens de la tester, et cela dit si la chaine contient 15 chiffres à la suites. si on en met 16 ça dit vrai et si on met 15 chiffres et une lettre (ou plus) au début ou à la fin ça dit vrai aussi.
en revanche, j'ai testé avec ça: if (preg_match("#^[0-9]{15}$#", $ss)) et ça n'a pas bugué. -
-
Es-tu bien sûr d'avoir enlevé le dernier "^"?
dans mes tests avec 16 chiffres ça ne marche pas... -
quand j enlv le chapeau a ma syntaxe initial voila l erreur
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in W:\patient.php on line 32 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
N'oublie pas les "#" en début et fin de chaine alors ^^
-
j comprends pas voila ce que j ai mis ca devrait fonctionenr mais il me le prend pas il ajoute encore
if (preg_match("#^[0-9]{15}$#", $ss)) -
Etonnant!
Avec ma page de test, ça marche pourtant bien:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Page de tests php</title> <?php function e($string) { echo '<p>'. $string .' est de la bonne forme?: '. preg_match("#^[0-9]{15}$#", $string); if (preg_match("#^[0-9]{15}$#", $string)) { echo '-oui</p>'; }else{ echo '-non</p>'; } } ?> <script language="javascript"> </script> </head> <body> <?php e("012345678901234"); e("123456789012345"); e("00000000000000"); e("000000000000000"); e("7777777777777777"); e("a454654621654567"); e("a454654a621654567"); e("12345678901234565465213015462465460546046"); ?> </body> </html> -
ton stst fonctionne egalement chez moi mais pas la peut etre est ce du a l imbrication de mes if voici le code
if (isset($_POST['ok']))
{
if (preg_match("#^([0-9]){2}/([0-9]){2}/([1-2])([0-9]){3}$#", $naissance))
{
if (preg_match("#^[0-9]{15}$#", $ss))
{
$sql2= "UPDATE login SET nom='".$_POST['nom']."', prenom='".$_POST['prenom']."', naissance='".$_POST['naissance']."', ss='".$_POST['ss']."' WHERE ss='".$ss."'";
$req2= mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
if(isset($req2))
{
echo 'Patient modifié';
$sql = "SELECT * FROM login where ss='".$ss."'";
$req = mysql_query($sql) or die( mysql_error() ) ;
$total = mysql_num_rows($req);
{
echo '<center><table class="table2">'."\n";
echo '<tr >';
echo '<td class="td-title">Nom</td>';
echo '<td class="td-title">Prénom</td>';
echo '<td class="td-title">Date de naissance</td>';
echo '<td class="td-title">Numéro de sécurité sociale</td>';
echo '</tr>'."\n";
while($row = mysql_fetch_array($req))
{
echo '<tr>';
echo '<td class="td-p">'.$row["nom"].'</td>';
echo '<td class="td-p">'.$row["prenom"].'</td>';
echo '<td class="td-p">'.$row["naissance"].'</td>';
echo '<td class="td-p">'.$row["ss"].'</td>';
echo '</tr>'."\n";
}
echo '</table></center>'."\n";
}
}
}
else
{
echo "<script language=\"JavaScript\">\n";
echo "alert('Numéro de sécurité sociale invalide');";
echo 'window.history.back();';
echo "</script>";
}
}
else
{
echo "<script language=\"JavaScript\">\n";
echo "alert('Format date non valide');";
echo 'window.history.back();';
echo "</script>";
}
} -
A première vue il y n'y a pas d'erreur...
Essaye de faire plein d'"echo" de contrôle voir où passe le programme, le contenu des variables, ... -
-
je viens d tester en gros tout fonctionn auf le if preg match du $ss il effectue l update comme si il n y avait pas de conditions ....
-
pour info Pour tester j ai mis ca
if (preg_match("#^[1]{1}$#", $ss))
et la il me prend bien en compte mon expression reguliere ... -
problme reolu il vient venait d la variable $ss qui recuperait une precedente session plutot que le POST ... merci de votre aide