ユーザーIDに半角英数字以外を許可する

2013年5月16日 at 15:19

お世話になります。

ユーザー登録時の項目「ユーザーID」に、半角英数字だけでなく、ピリオド「 . 」 や アンダーバー「 _ 」,ハイフン「 - 」 などの記号を許可したいと考え、validation.php を以下のように修正してみたのですが、これは妥当な方法でしょうか? 今後不具合が生じる可能性などありますでしょうか?

▼concrete / helpers / concrete / validation.php
if(USER_USERNAME_ALLOW_SPACES) {
  $resp = preg_match("/[^A-Za-z0-9 ]/", $username);
} else {
  $resp = preg_match("/[^A-Za-z0-9_\.\-]/", $username); ←※修正
}

もっとも、半角スペースの許可が想定されている時点で、問題ないような気もしますが。
▼concrete / config / app.php
// allow spaces in usernames
if (!defined('USER_USERNAME_ALLOW_SPACES')) {
  Config::getOrDefine('USER_USERNAME_ALLOW_SPACES', false);
}

何卒ご教示のほど宜しくお願い致します。

タグ:

Re: ユーザーIDに半角英数字以外を許可する

2013年5月16日 at 15:34
concrete/helpers/concrete/validation.php を直接修正するのは避けてください。
バージョンアップした際に、このファイルは読み込まれなくなります。

コアファイルをカスタマイズする際は、
helpers/concrete/validation.php にコピーします。

記号を許可することで今後問題が起こる可能性はないとは言えませんね。
 

Re: ユーザーIDに半角英数字以外を許可する

2013年5月16日 at 16:48
お返事ありがとうございます。

なるほど、コアファイルだからフォルダ分けされていたのですね。やっと意味が分かりました。
はい、以後修正する際はそのようにするよう心掛けます。

そしてそうですね、とりあえず運用して様子を見ていきたいと思います。

ご教示ありがとうございました。