2011-01-17 23 views
0

ユーザーはコードと呼ばれる文字列を持つクッキーを持っています。コードは乱数または6〜15文字の文字です。コードを受け取った後、コードの長さが6〜15文字で、数字と文字のみが含まれていることを確認するにはどうすればよいですか?PHPは正規表現を使用してデータ入力を検証します

正規表現を使用するのが最適ですか?私のような何かしようとするだろう

答えて

1

これを行うには2つの簡単な方法があります。一つは、正規表現を使用している:

$length = strlen($cookie); 
if (6 <= $length && $length <= 15 && preg_match('/^[a-zA-Z0-9]*$/', $cookie)) { 
    //... 
} 

(文字列は、英数字で作ってください)内蔵の正確んctype_alnum機能をその使用している他:

$length = strlen($cookie); 
if (6 <= $length && $length <= 15 && ctype_alnum($cookie)) { 
    //... 
} 
0

^([a-zA-Z]|\d){6,15}$

「文字列の先頭と末尾の間には、6〜15文字、それらのそれぞれの文字や数字があります」。

そして、ああ、あなたが必要とする機能はpreg_match()

0

PHPの正規表現はかなり迅速であり、これは、単純なセレクタの場合です:

"/^[a-zA-Z0-9]{6,15}$/" 

しかし@amosriveraた権利についてstrlen速くています。クッキーデータがページに埋め込まれている場合(echo $_COOKIE['key'];)、XMLエンティティは重要ではありません。ユーザーは自身のページにしか害を及ぼしません。 Cookieがデータベースに保存され、すべてのユーザーに表示されている場合は、まったく別の問題になります。