最新記事
(06/29)
(06/04)
(06/03)
(05/30)
(05/28)
|
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
|
PHP 入力値のチェック(メールアドレス)
PHPで会員登録システムを作りたい。そのために必要な知識をひとつひとつ確認していこうと思っています。今回のテーマは、「入力値のチェック(メールアドレス)」です。
前回の「PHP 入力値のチェック(正規表現、ereg) 」ではユーザーidを3文字以上16文字以内の英数字に限定するために、正規表現のereg関数を利用しました。
今回は、入力された「メールアドレス」の値が「メールアドレス」の形式として適切かというチェックをしたいと思います。
それには、「メールアドレス」のお約束を知らなくてはなりません。
まずは、メールアドレスは「ローカル名@ドメイン」という形式だということです。
次に、RTFでは、メールアドレスに使える文字などを規定しています。
「英数字と!#$%&'*+-/=?^_`{|}~. 」
[a-zA-Z0-9_-]以外のものもありますね。
これから会員登録をしてくれるお客様に対して「あなたのメールアドレス、変ですね。登録できませんよ。」というのは、失礼な話なので、漏れがないようにしないといけません
(上記以外の文字についても、メールサーバーの設定によってはローカル名部分は使用可能な気もしますが、それはお約束違反ということで拒否しても責められることはないでしょう。)
なお、ホスト名の中にドット「.」があるかというチェックはしないことにしました。もしかすると、世界にはトップレベルドメインを持っている王様がいるかもしれませんから。
以上のように考えて、メールアドレスの形式チェックは、次のようにしました。なお、そのメールアドレスが有効かどうかは、「確認メール」を
送って確かめます。
[ソース]メールアドレスの形式チェック部分のみ
前回の「PHP 入力値のチェック(正規表現、ereg) 」ではユーザーidを3文字以上16文字以内の英数字に限定するために、正規表現のereg関数を利用しました。
今回は、入力された「メールアドレス」の値が「メールアドレス」の形式として適切かというチェックをしたいと思います。
それには、「メールアドレス」のお約束を知らなくてはなりません。
まずは、メールアドレスは「ローカル名@ドメイン」という形式だということです。
次に、RTFでは、メールアドレスに使える文字などを規定しています。
「英数字と!#$%&'*+-/=?^_`{|}~. 」
[a-zA-Z0-9_-]以外のものもありますね。
これから会員登録をしてくれるお客様に対して「あなたのメールアドレス、変ですね。登録できませんよ。」というのは、失礼な話なので、漏れがないようにしないといけません
(上記以外の文字についても、メールサーバーの設定によってはローカル名部分は使用可能な気もしますが、それはお約束違反ということで拒否しても責められることはないでしょう。)
なお、ホスト名の中にドット「.」があるかというチェックはしないことにしました。もしかすると、世界にはトップレベルドメインを持っている王様がいるかもしれませんから。
以上のように考えて、メールアドレスの形式チェックは、次のようにしました。なお、そのメールアドレスが有効かどうかは、「確認メール」を
送って確かめます。
[ソース]メールアドレスの形式チェック部分のみ
<php
if(!(ereg("(^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+)@([a-zA-Z0-9_.-]+)", $mail))) {
$msg .= "メールアドレスの記述が不適切です。";
}
?>
PR