※ ChatGPTを利用し、要約された質問です(原文:phpの正規表現について)
PHPの正規表現について
このQ&Aのポイント
phpの正規表現を使用してメール・パスワードの入力を判定する方法について調べています。条件は半角英数と0-9の組み合わせで、使用禁止文字は\'@[]で、入力は8文字以内です。
正規表現についてよくわからない記号があるため、{ }は文字数の指定であり、{1,8}は1~8文字を意味します。\が入ってしまうと認証が通ってしまい、入力されたデータと異なるデータがMySQLに入ってしまいます。どうすれば\が入っても認証されないようにすることができるでしょうか。
参考にしたサイトはhttp://itbtech.itboost.co.jp/php/php_06.phpです。アドバイスをお願いします。
phpの正規表現についてです。
よく入力されたメール・パスワードを判定するのに正規表現で判定させますが、今回の指定する条件は…
・半角英数、0~9の組み合わせ
・使用禁止文字は \ ' @ [ ] の5つ
・入力は8文字以内
例
if(ereg("^[0-9a-z\!\"\#\$\%\&\(\)\=\-\~\|\{\}\;\:\+\*\,\.\/\<\>\?\_]{1,8}$", $pw)){
記号の意味でよくわからないのがあるのですが、
{ }は文字数を指定するものでよろしいのでしょうか?
{1,8} は1~8文字までという意味?
\が入ると認証が通ってしまってい、困っています。
ユーザーの入力 MySQLの取得結果
例 123\ → データが入らない
\123 → 123
\\123 → \123
123\123 → 123123
\\ → \
といった不具合になってしまい、MySQL側でも入力されたデータと異なったデータが入ってしまいます。\が入っても認証されないようにするにはどうすればいいんでしょうか?
正規表現の参考にしたサイトは
http://itbtech.itboost.co.jp/php/php_06.php です。アドバイスよろしくお願いいたします。
お礼
適切な回答ありがとうござした。アドバイスどおり変更したら思い通りの結果を得ることができました。