新規登録にて、メールアドレス確認

このQ&Aのポイント
  • ある程度のサイトでは、会員登録後にメールアドレス確認が必要です。
  • 登録完了のためにメール内のURLをクリックする必要があります。
  • 質問者は、このプログラムを作成したいと思っています。
回答を見る
  • ベストアンサー

新規登録にて、メールアドレス確認

・全質問に関係する事 LinuxにApacheで、 使用可能な言語は、Perl(Version5.6 / 5.8)、Ruby、Python、C/C++、PHP3/4(日本語化パッチ済み)。(C、C++はあらかじめコンパイルしてアップロードしてください。) データベースは、MySQL、PostgreSQLが使用可能です。(Perl、Ruby、PHPのデータベース操作ライブラリはインストール済み、オプションは基本設定。) No.1 ある程度のサイトでは、会員登録をすると、最後に 「確認メールを送信いたしました。  メールの記載のURLをクリックして、登録を完了させてください。」 とかいう画面に出た後、メールが来て メールに記載されているURLをクリックすると 「登録が完了致しました。」 などと出る画面が出ます。 そのプログラムを作りたいのですが、どうすればいいでしょうか? No.2 入力情報で、振込先の支店番号と口座番号だけ、会員の情報と比較して、 支店番号と口座番号がどちらも一致した場合、エラー画面に移る様にしたいのですが、 No.3 ユーザ情報をDB(MySQL)上で管理をしたいのですが、

  • suiku
  • お礼率46% (35/76)
  • PHP
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • SuperLe
  • ベストアンサー率44% (434/977)
回答No.3

私はFirebirdでやっているので、MySQLだと少し違うかもしれませんが テーブル名が PSUDETBL フィールドが MAIL,KEY0,EXPIRE0 と仮にしておきます。 (DBとTABLEは別途作成してあるとします) インクルードファイル(dbinit.php)で、 <?php $DB=ibase_pconnect("データベースファイル","ユーザ名","パスワード"); ?> で、持続的オープンしておきます。 <?php  include_once("dbinit.php");//インクルードファイルを読み込む ~  $KEY=「ユニークなキー」;  $MAIL=「メールアドレス」;  $EXP=Time()+3600*24*30;//例えば30日の有効期限  $Q="SELECT COUNT(*) FROM PSUDETBL WHERE MAIL='$MAIL';";  $R=ibase_query($DB,$Q);  $O=ibase_fetch_object($R);  if ($O->COUNT ==0) { $Q="INSERT INTO PSUDETBL VALUES('$MAIL','$KEY',$EXP);"; $R=ibase_query($DB,$Q);   ほかの処理 (メールを送信したり、結果を表示させる)  } else {    仮メールアドレス登録済みのエラー  } とこんな感じです。 DELETEのSQL文も同様に処理できると思います。 MySQLは使っていないのですが、ヘルプによると MySQLi_Select_db()でデータベースのテーブルを選択するようですね。 詳しくは http://jp.php.net/manual/ja/ のオンラインヘルプで。

参考URL:
http://jp.php.net/manual/ja/

その他の回答 (2)

  • SuperLe
  • ベストアンサー率44% (434/977)
回答No.2

たとえば、テーブルの列が、MAIL,KEY,EXPIRE の3つだったとします。 データベースエンジンにあった、SQL文に逐次変更してくださいね。 >仮登録のメールアドレスと、そのユニークなキーと、有効期限を、仮登録用のテーブルにinsertする。 有効期限は、現在の日付時刻+日数; INSERT INTO 仮登録用のDBのTABLE名 VALUES(メールアドレス,ユニークなキー,有効期限); というようなSQL文を発行すれば、テーブルに、データを追加挿入できますよね。 >メールアドレスとキーで仮登録用のテーブルから、Selectする。 >登録されていて、有効期限内であれば 本登録の処理をする。 同様に、 SELECT * from 仮登録用のDBのTABLE名 where MAIL=メールアドレス AND KEY=入力されたキー; で、結果セットの行数が1個であれば、その結果セットから有効期限を確認して、今日がその有効期限以内であれば、本登録のデータベースに登録して、登録完了の表示を出し、 Delete 仮登録用のDBのTABLE名 where MAIL=メールアドレス AND KEY=入力されたキー; で、仮登録のデータを削除します。 >ついでに、有効期限の切れている仮登録用のデータをDeleteしておく。 Delete 仮登録用のDBのTABLE名 where EXPIRE<今の日付時刻;で、無効なデータを削除しておく。 とこんな感じでどうでしょう。

suiku
質問者

お礼

PHPで、 データの追加・データの引用・データの削除の簡単なスクリプトでいいですから作ってくれませんでしょうか? (データの追加・データの引用・データの削除の仕方がわかるぐらいのスクリプト)

  • SuperLe
  • ベストアンサー率44% (434/977)
回答No.1

1: //登録時 ユニークなキーを生成する。 仮登録のメールアドレスと、そのユニークなキーと、有効期限を、仮登録用のテーブルにinsertする。 メールアドレスに、キーを組み込んだURLを含むテキストを送信する。 例えば http://***.***.jp/***/***/?mail=***@****.**&key=AbCdEfg1234567 という感じ //CGI http://***.***.jp/***/***/index.php など メールアドレスとキーで仮登録用のテーブルから、Selectする。 登録されていて、有効期限内であれば 本登録の処理をする。 ついてに、有効期限の切れている仮登録用のデータをDeleteしておく。 とこんな感じにすれば? 2: 同様に、書かれているとおり、処理をすればいいのでは。 普通に、SQL文を発行して、一致するのがあれば、エラー画面に移行するのは難しくないと思います。 PHPなんかだと、入力したものを送信するのは、CGIやスクリプトで受ける(Formのactionのね)でしょうから、スクリプトの冒頭で、それらのチェックを行なってデータに部整合があれば(例えばPHPだと)header("Location: エラー画面")を、他の出力に先んじで書けば、移行しますし。 3:質問の意図が?

suiku
質問者

補足

3.は撤回してください。 ユニークなキーを生成する方法はわかるのですが、 [仮登録のメールアドレスと、そのユニークなキーと、有効期限を、仮登録用のテーブルにinsertする。 メールアドレスとキーで仮登録用のテーブルから、Selectする。 登録されていて、有効期限内であれば 本登録の処理をする。 ついてに、有効期限の切れている仮登録用のデータをDeleteしておく。] の4つをもうすこし詳しく教えてくれませんでしょうか?

関連するQ&A

  • 会員登録したらメールが送られてきて仮登録、その後、本登録

    会員登録したらメールが送られてきて仮登録状態となり、そのメールのURLにアクセスすると本登録となるシステムをphp+mysqlで作りたいです。何か手本となる情報はありませんでしょうか?

    • ベストアンサー
    • PHP
  • メールアドレスが存在するか確認したい。

    PHP+MySQLで会員制のサイトを作成しています。 不正投稿を抑制するため、 ”ID登録時のメールアドレスの存在を定期的にチェックし、無くなっていればメールアドレスの再登録を促し、再登録されなければIDの削除をする。” といったシステムにしたいと思っています。 どのようにすれば、実現できるのでしょうか? 見当外れな質問かも知れませんが、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • アドレスを間違えて登録

    カテ違いですたらすみません。 先ほど、あるポイントサイトに登録しました。「登録完了メールを送りました」と画面に出ましたが、送られてこなかったので確認してみると、アドレスを間違えて登録していました。急いで正しく登録しなおしたのですが、この場合、間違えたアドレスに登録完了メールが届いているということですよね。 見ず知らずの人のところへ私の個人情報が送信されてしまった、と思うと不安でなりません。サイトへ問い合わせようとしたら、今日から5月7日までお休みとの事でした。どうしても気になるので、こちらで質問させていただきました。 このようなポイントサイトへ登録したのは初めてです。登録完了メールには、どの程度の個人情報が記載されているのでしょうか?ご存知の方、教えてください。 登録時に入力した情報は、氏名、生年月日、郵便番号、職業、世帯収入、家族構成です。

  • メール送信

    php初心者です phpのバージョン5.2.5 会員登録したときにメールを送ってurlをクリックしたら登録をできるようにしたいです 質問1 phpで日本語のメールを送信するにはどうしたらいいですか? 質問2 認証メールの方法なんですがどうすればいいでしょうか? 素人なりに考えたのが 仮登録→メール送信→urlクリック→getで受け取る→mysqlでそのidをセレクトし番号照合 ここでわからないのは、照合番号の生成方法です あと、照合番号は番号だけでいいでしょうか? サンプルでphpコード書いていただけると助かります。大雑把でいいのでmysqlの部分は抜かしてもわかります よろしくお願いします

    • ベストアンサー
    • PHP
  • イーバンク銀行 会員登録 メールアドレス間違い 対処についてお願いします。

    イーバンク銀行の口座を登録したく会員情報を打ち込み登録を完了させましたが、登録のメールアドレスが違ったのかメールが届きません。 申込内容の変更やメッセージを送る等のページはあるのですが、全てに登録番号という物が必要になります。 一度、登録完了後、登録番号が出たのは分かっているのですが、それを控えておりませんでした。 イーバンク銀行の口座が欲しいので早めに契約をしたいのでお手数ですがご存知の方はご回答下さいませ。

  • 会員制サイトでもメールアドレス変更機能

    PHP+MySQLで会員制サイトを構築しています。 登録時には、登録されたメールアドレスに確認用のメールを送信して 登録完了するようにしてあります。 このサイトにメールアドレス変更機能をつけたいのですが、 変更後のメールアドレスもちゃんと確認したいのです。 このような機能はどのように実装するのが一般的なのでしょうか? データベース内のメールアドレスを変更するタイミングは、 確認用のメールアドレスに記載されたURLをクリックしたタイミングで 変更したいので、 一時的には、変更前のアドレスと変更後のアドレスというふたつのアドレスがデータベース内に存在することになるのかと思います。 やはり、メールアドレス変更用のテーブルを用意するのがいいのでしょうか? 同じような機能を実装されている方がおられましたら、ぜひアドバイスをお願いします。

    • ベストアンサー
    • PHP
  • perlですが、良く会員登録するとメールが届いて

    perlで作られたサイトで会員登録するとメールが届き、その中にあるURLをクリックすると初めて登録完了となる、システムはどのようになっているのでしょうか。参考になる本、サイトはありますでしょうか。

    • ベストアンサー
    • Perl
  • ETAS登録の確認について

    オーストラリア旅行が目前に迫っている者です。 2002年1月中旬頃インターネットでETASの登録を行いました。登録後に郵送で確認の証明書みたいなものが届くと別の回答に書いてあったのを見たのですが、未だに来ません。 また登録の際、受付完了画面をプリントしておかないといけない、みたいなことも聞いたことがあります。たまたまその時プリンターが壊れてて印刷出来ないでいました。 登録番号は控えたのでETASの確認画面を見ることは出来ます。確かに登録は完了しているようでした。なのでデータベース上には反映されているようなのですが、こういう場合証明書はなくても大丈夫なのでしょうか?また画面を印刷しなかったので再度登録し印刷を行った方が確実でしょうか? アドバイスをよろしくお願い致します。

  • メールアドレス

    オンラインショッピングやもろもろの会員登録などで個人情報を入力するとき いつもEメールのアドレスではなくてSMSのアドレスを登録していますがそれでよいでしょうか 先日ある会員登録をしたのですが サイトからの受付完了のメールが来ませんのでもしかしたらEメールを登録しないとだめなのかと思って質問いたしました

  • 会員登録時に存在しないメールアドレスの登録を防ぐには?

    自社サイトで会員登録してもらうページがあります。 しかし会員登録機能のつくりがザルで未チェックで通してしまう項目がほとんです。 そのため、登録された内容をあとから確認すると、存在しないメールアドレスであるケースがとても多い状態です。 よって、存在しないメールアドレスである場合、最初から登録ができないようにしたいと考えておりますが、どのようにすればできるでしょうか? 会員登録機能は.jspとMySQLでできております。 宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう