[PHP-users 9107] Re: ユーザ登録画面の作りかた

Masashi Ohba php-users@php.gr.jp
Mon, 05 Aug 2002 14:23:49 +0900


大場です。

似たような物(投票箱システムのサンプル)を
以前つくったことがありますが、大雑把な流れで

登録する
認証用文字列をランダムに生成
メール+認証用文字列をデータベースへ登録
メール+認証用文字列を指定のメールアドレスへ返す
メールアドレスと認証用文字列で認証かける
データベースに登録してれば投票の選択肢を表示する
(ただし、それほどセキュリティについての考慮をしていません)

なので、登録システムを含んでます。

遠藤 俊裕 wrote;

>ここでは
>・E-mail が届いても返事が無かったとき

無視します(笑)
削除はcronとコマンドラインのPHPでできそうな気はします。

#サンプルだったので作りませんでした(と言い訳モード)


>・E-mail が届かなかったとき

PHPで上記を書いた時は「受け取れなかったら投票できないしいいか」と
不到達時のことは考慮しなかったんですが

#サンプルだったので作りませんでした(と言い訳モード)

PerlでCGIプログラムで書く時はメールを出す前に

(1)文字レベルで確認
2バイト文字が入ってたり使えないような文字が入ってた場合は
エラーを返して再入力を促す

(2)ドメイン部分の到達性を確認
@より右側が実際に存在するか、メールが到達するか確認して
間違いや架空のドメイン/ホストの場合、エラーを返して再入力を促す

#これは不特定多数の相手のサーバをチクチクつつく可能性があるので
#こちらの都合でやっていいのかなぁ?と常々考えるんですけどね…


文字レベルで通って、ドメイン/ホストで通っても
ユーザー部分が間違いや架空だと、出した後にエラーが
返ってきますが、こればっかりは手の打ちようが無いよなぁと
あきらめ

って感じで処理を書きますね、私は。

あとは投票箱だったので「1アドレスから1度」という必要があって
二重登録のチェックとかも処理にいれたかな。
selectで登録データと一致するデータ行が引っかかるかチェックして
0じゃなかったらエラーとか

どんな状態になったら困るか想定して
エラーの元になりそうな物はメールの送信前に潰すと。
実際に書き起こす時の手間は別にして
この辺の処理内容は言語によらないので
他の言語でコード書いたことがあったら
PHPでも同じような感じじゃないでしょうか?

#遠藤さん他でコードかけますよね?

------------------------------------------------------------
大場正志(Masashi Ohba)
E-Mail  ohba@intelight.co.jp
(株) インテライト
http://www.intelight.co.jp
------------------------------------------------------------