[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
------------------------------------------------------------