PHPで会員登録システム(投稿サイト)を構築しようと思っています。
2つ質問があります。
会員登録する際に、よく仮登録と称して、
一度、登録したメールアドレスにメールを送信し、
そこに記載されているURLをクリックしたら本登録となる
仕組みがありますが、これは何のためなのでしょうか。
もう一点は、上記の仕組みを教えていただきたいです。
例:(例です。適当に書いてます)
会員登録フォームで登録(仮登録だがデータベースには保存)
↓
乱数をセッションに保存し(24時間)、
それを引数(?hoge=hogehoge)としたURLを登録してもらったメールアドレスに送信。
↓
引数とセッションの値が一致すれば、
OK。ちがければ、無視。24時間以上たてばデータベースから破棄。
(24時間たったら破棄の仕方は今のとこわかりませんが・・・)
というような形で、
考え方を簡単に教えていただけると幸いです。
以上、よろしくお願いいたします!
No.3ベストアンサー
- 回答日時:
> なるほど!空メールならとりあえずは他人の端末を利用しない限りは、
> 迷惑なことにはならないわけですね!
実は そうとも言えないのですが、そこは言及したくなかったので、前回も置き去りにしました。
普通の人が、普通の使ってる分には、そちらの言うとおりです。
> 空メールを送信してきた相手に返すURLには、
> その人のメールアドレスを引数とかにして、
> URLをユニークにすればいいんでしょうか!?
一般的かどうかは分かりませんが、俺なら 以下のようにします。
空メールが来たら、メールサーバーからPHPにパイプして、
PHPで ユニークなIDを発行して、それを発行した時間と、
空メールの送信元のメールアドレスとをDBに書き込みます。
んで、そのメールアドレスに URL を付けて返信します。
URLは ttp://hoge.jp/hoge.php?uid=wrg5Eae6RbF245sFwYrwrg5Eae6RbF245sFwYr みたいな感じです。
ユニークなIDは uniqid() 使うとか、自分でランダムに生成するとかして、
http://php.net/manual/ja/function.uniqid.php
DBに重複がないかを確認する程度です。
No.2
- 回答日時:
最初に空メールを送るのは、#1さんのいってる通り。
更に言うと、そちらの提示した方法だと入力ミスなどでメールが届かなかったりすると再登録という二度手間。
更に他人のメールアドレスを入力すると、全く関係ない人に登録確認のメールが行くという迷惑行為。
迷惑行為をやるつもりなら、いくらでも方法はあるのですが、ここでは置いときます。
> 会員登録フォームで登録(仮登録だがデータベースには保存)
この時点で、ユニークなIDを発行し、発行した時間と一緒にDBに保存。
タイムオーバーでの削除は、
1.cronを使用して、一定時間ごとにサーチしておくか、
2.次に誰かがトリガを引いた時に、サーチして ついでに削除させるか。
ってトコですかね。
どちらの方法でも、厳密に24時間で削除とはならないかと思いますが。
今は 空メール⇒返信されてきたメールのURLにアクセス⇒登録内容入力⇒登録内容送信⇒完了 ってのが 多分、一般的です。
>更に言うと、そちらの提示した方法だと入力ミスなどでメールが
>届かなかったりすると再登録という二度手間。
>更に他人のメールアドレスを入力すると、
>全く関係ない人に登録確認のメールが行くという迷惑行為。
なるほど。それで身に覚えのない方は~~みたいな注意書きが
書かれているのですね。
>タイムオーバーでの削除は、
こちらもご回答いただいてありがとうございました。
cronがいいかな~と思いました。
>今は 空メール⇒
なるほど!空メールならとりあえずは他人の端末を利用しない限りは、
迷惑なことにはならないわけですね!
すいません、ついでになんですが、
空メールを送信してきた相手に返すURLには、
その人のメールアドレスを引数とかにして、
URLをユニークにすればいいんでしょうか!?
それともURLは固定でセッションやクッキーなどで
管理するのがよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 迷惑メール・スパム ヘルスケア テクノロジーズ 1 2023/02/13 08:23
- ハッキング・フィッシング詐欺 OKWAVEのログインと会員登録と新規登録 1 2023/04/10 17:09
- 病院・検査 木下グループ新型コロナPCR検査キットを購入して月曜日にポスト投函しました ですが、その際に会員登録 1 2023/01/20 21:36
- その他(動画サービス) 朝日新聞のエヴァンゲリオン展について 1 2022/03/27 07:48
- 求人情報・採用情報 今日、ホテルのアルバイトに、タウンワークから応募しました。 すると、会社からGメールが届き、事前登録 1 2022/03/31 23:40
- ハッキング・フィッシング詐欺 別のサイトでごめんなさい OKWAVE 認証されたのに 5 2023/04/06 12:31
- ポイントサービス・マイル ポンタポイントの登録の仕方を教えてください 1 2023/01/19 22:56
- その他(クラウドサービス・オンラインストレージ) チャットワークの登録について 1 2023/04/05 16:48
- その他(動画サービス) 至急間違えてアダルトサイト登録してしまったみたいです。年齢確認18歳以上をタップしたら、会員登録完了 5 2022/06/14 08:59
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLエスケープ処理とデーター...
-
VBAで重複チェックの仕方を教え...
-
ログイン後の処理
-
POSTで受け渡したものを保存し...
-
バッチファイルでpingの結果を...
-
Dosブロンプトでtabを出力したい
-
「取得先」という表現について
-
【C#】DataGridViewの最大列数...
-
Yahoo! JAPAN IDを新規取得でき...
-
DTOとEntityの差は何ですか。
-
switch()文で値の大小比較
-
wordの差し込み印刷で文字...
-
ps3で久しぶりにCDの音楽情報取...
-
エラーの理由が分りません。Pri...
-
shシェルスクリプト 空白行の...
-
EXCEL、マクロ-改ページ行番号...
-
開始と終了を指定して、その間...
-
Google scholarがひらけなくな...
-
format関数について
-
グローバルIPの取得方法を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
POSTで受け渡したものを保存し...
-
ログイン画面から入って、「戻...
-
ブラウザバックしてもチェック...
-
php 入力画面から確認表示画面...
-
HTMLフォームのデータ引き継ぎ...
-
VBAで重複チェックの仕方を教え...
-
php history.back()の戻るボタ...
-
セッション使用時のフォームの...
-
HTMLエスケープすべき場所につ...
-
PHPで返信メールにチェックボッ...
-
閉じるボタン「×」を制御したい
-
HTMLエスケープ処理とデーター...
-
携帯サイトにお気に入りに登録...
-
ウェブアプリの設計に問題がな...
-
セッションを使用したページ遷移
-
入力系のプログラミング手法に...
-
GETとPOST
-
asp.netでのセッションを使用し...
-
フォームを使わずにPOST送信す...
-
PHPでのログイン機能でのメール...
おすすめ情報