2010-12-08 12 views
4

Je travaille sur l'écriture d'un système de connexion PHP. J'ai tout ce dont j'ai besoin, mais je voudrais vérifier qu'un nom d'utilisateur entré lors de l'inscription ne contient que des caractères alphanumériques. Alors, comment pourrais-je prendre une variable, disons $ username, et m'assurer qu'elle ne contenait que des caractères alphanumériques?Validation du nom d'utilisateur PHP

Répondre

20
if(preg_match('/^\w{5,}$/', $username)) { // \w equals "[0-9A-Za-z_]" 
    // valid username, alphanumeric & longer than or equals 5 chars 
} 

OU

if(preg_match('/^[a-zA-Z0-9]{5,}$/', $username)) { // for english chars + numbers only 
    // valid username, alphanumeric & longer than or equals 5 chars 
} 
+0

Hey, merci pour la réponse rapide! Je dois attendre 10 minutes avant de me laisser accepter votre réponse, donc je le ferai plus tard. –

+1

'preg_match' est mieux adapté ici, aussi il n'y a pas besoin de classe de caractères. – codaddict

+1

Les crochets sont redondants si vous ne ciblez qu'un seul caractère ou un jeu de caractères spécial ('\ w') – Phil

0

essayer cette

function filterName ($name, $filter = "[^a-zA-Z0-9\-\_\.]"){ 
    return preg_match("~" . $filter . "~iU", $name) ? false : true; 
} 

if (!filterName ($name)){ 
print "Not a valid name"; 
} 
5

La meilleure façon que je recommande est la suivante: -

$str = ""; 
function validate_username($str) 
{ 
    $allowed = array(".", "-", "_"); // you can add here more value, you want to allow. 
    if(ctype_alnum(str_replace($allowed, '', $str))) { 
     return $str; 
    } else { 
     $str = "Invalid Username"; 
     return $str; 
    } 
} 
+0

Qu'en est-il de mon ....... nom? Devrait-il être compté? –