こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

本人確認メールについて

販売サイトや、SNSでよくある本人確認メール(呼び方は知りません)の書き方について
ご質問です。
ちなみに、自分で勝手な想像で作成したスクリプトを書いておきます。
どこが間違っているのかご指摘お願い致します。
--------------------------------------------------------------------------------------------------

////////////////////////
// 本人確認メール送信 //
////////////////////////
$mail = $_SESSION['mail'];
$con = mysql_connect("~", "~", "~");
mysql_select_db("~-~");
mysql_set_charset('utf8');
$sql = "SET NAMES utf-8";
mysql_query($sql);
$sql = "SELECT * FROM member_profile WHERE email='$mail';";
$result = mysql_query($sql) or die;
$row = mysql_fetch_row($result);
$name = $row[2];
mysql_close($con);

$header = "From:raindrop.jp-5247423@~.jp
Content-Type:text/html;
charset=ISO-2022-JP
Content-Transfer-Encoding:8bit
";

$top = $name.' 様<br><br>';
$aisatsu .= "~への会員登録のお申し込みありがとうございます。<br>
まだ登録は完了しておりません。下記URLから登録を完了してください。<br><br>";

$html_header = '<doctype html><html><head><meta charset="ISO-2022-JP"></head><body bgcolor="#FFFFCC">';
$html_footer = '</body></html>';
$uniqid = uniqid();
$anchor = '<a href="http://~/php/membership_kakutei.php?from=1">http://sirius5.link/register/confirm/'.$uniqid.'</a>';

$contents="<br><br>
==================================================<br>
このメッセージは~より自動的に送信しております。<br>
このメールにお心当たりのない場合は、このメールを破棄してください。<br>

==================================================<br>
<br>
<br>
<br>
-----------------------------------------------------------<br>
~<br>
http://daiko-king.com <br>

-----------------------------------------------------------<br>
";
//////////////////////////
// 新規登録者宛にメール //
//////////////////////////
$message = $html_header.$top.$aisatsu.$anchor.$contents.$html_footer;

$to = $mail;
$subject = "【~】 仮登録完了"; // 題名
$to = mb_convert_encoding($to, "UTF-8", "auto"); // $toは、自動的にエンコードされない。
$subject = mb_convert_encoding($subject, "UTF-8", "auto");
$message = mb_convert_encoding($message, "UTF-8", "auto");
$header = mb_convert_encoding($header, "UTF-8", "auto");

mb_send_mail($to, $subject, $message, $header); // メール送信
----------------------------------------------------------------------------------------------------
<a>あいうえお</a> の、あいうえお の部分が実際には存在しないディレクトリに
してるのですが、(上記の場合だと、/register/confirmの部分です)それではだめ
なのでしょうか。
実際にあるディレクトリだとしたら、たとえば、
https://aaa.com/register/confirm/ASkuCxyxsKxJ08kojrn770Js_jNOCXoD6ZXE0fgKQyI
の、A以下の正規表現的な文字列つけることで何がしたいのかわかりません。
説明していただきたいです。正しい方法とスクリプトの書き方をよろしくお願いします。

投稿日時 - 2016-07-10 09:46:16

QNo.9199573

すぐに回答ほしいです

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

存在しないディレクトリを書いても意味がありませんね。"ASkuCxyxs…"の例は.htaccessでmod_rewriteを使って、urlっぽく見せておきながら、パラメータとして渡しているのです。正規表現とはまったく関係がありません。てゆーかコードを全文掲載しなくても良いかと?

本人確認なのですから、ユーザー毎に異なるパラメータを渡して、サーバー側に控えを保存しておき、どのユーザーからのアクセスなのかを照合します。関係ない人が認証メールを受け取ったふりをしてデタラメに詐称するのを防ぐため、一般にパラメータは複雑な値にしますが、urlの形式としてはmod_rewriteなど使わず、単純に、http://~/php/membership_kakutei.php?from=1&key=ASkuCxyxs… でも良いでしょう。

でも、最近は登録時にメールを確認しないのが主流と思います。登録手続が面倒なせいで途中で離脱する可能性があるからです。メールアドレスの価値が低下したこともあるでしょう。

投稿日時 - 2016-07-11 05:43:15

補足

"ASkuCxyxs…"の例は.htaccessでmod_rewriteを使って、urlっぽく見せておきながら、パラメータとして渡しているのです。→ 折角ですので、
(1)、(2)~などとして、箇条書きにしてはいただけませんでしょうか><
貴重なお時間を割いていただき、申し訳ございません。

投稿日時 - 2016-07-11 06:17:54

お礼

詳しいご説明、どうもありがとうございます。なんとなく理解できました。
あとは、実践してみて、動作を確認したいと思います。
本当はベストアンサーにさせていただきたいのですが、無くなった
んでしょうか><

投稿日時 - 2016-07-11 06:03:35

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

mod_rewriteについては、ここで詳述するまでもなく、 https://bayashi.net/wiki/linux/apache/mod_rewrite の「動的ページを静的ページに見せる」などに解説があります。urlのパラメーターの羅列を、"/"で区切ってディレクトリのように見せかける手法です。

apacheの設定ファイルに記述するものですが、たいていは.htaccessファイルに書くこともできるように設定されています。ただしapacheにmod_rewriteモジュールが組み込まれていることが前提になります。

投稿日時 - 2016-07-13 02:48:17

お礼

お忙しい中、お返事いただきありがとうございました。

投稿日時 - 2016-07-13 10:44:31

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-