2012-02-25 5 views
0

私は、潜在的なクライアントに送った様々な製品へのリンクを含む電子メールがあります。リンクをクリックすると、ユーザーがフォームのあるページに移動します。彼らがクリックした製品リンクに基づいて、非表示の入力フィールドの値を製品名と同じにする必要があります。電子メールリンクからPHPセッションを開始

また、電子メールのリンクを介してページにアクセスできるようにしたいと考えています。

どうすればいいですか?

+4

メール内で実際にリンクがクリックされたかどうかをサーバーが判断できる方法はありません。誰でもリンクを入力して同じページにアクセスできます。 – animuson

答えて

2

メール内のリンクを電子メールアドレスに基づいて<token>値は(秘密の方法で)あなたのスクリプトで計算され

http://example.com/my-script.php?email=<email_address>&token=<token> 

ようなものになることができます。次に、my-script.phpで、受信したトークンの値が有効かどうかをチェックします(電子メールアドレスからトークンを再度計算し、2つを比較して)。

もちろん、このリンクを持つ人は誰でもページに行くことができますが、電子メールアドレスの値を変更することはできません。これを防ぐには、ユーザーアカウントを持っていなければならず、ユーザーはログインする必要があります。

+0

電子メールはより安全な電子メールハッシュになる可能性があります。 –

2

最初の問題は非常に簡単です。経由URLのみがアクセスできるようにすることは非常に困難になります

<input type="hidden" value="<?php echo $_GET['product_name']; ?>" /> 

:あなただけのようなURL($ _GET [「pruduct_name」])からパラメータを使用して、あなたの隠された入力の値フィールドに入れてメールリンク。

1

電子メールを送信すると、ランダムな英数字シーケンスを生成し、URL yourdomain.com/page.php?id=sdlasjh234897dhaksjhdaのクエリ文字列に追加し、データベースに接続している製品と一緒に保存することができます。

ユーザーがページに到着すると、そのIDのデータベースをチェックします。あなたのデータベースにない場合は、リンクが無効であるというメッセージを表示してください。それ以外の場合は、フォームを表示して、非表示入力に製品名を入力します。

関連する問題