1


1

メールリンクから検証するときにウィンドウをターゲットに設定する

サイトにサインアップページがあります。 情報を入力すると、サイトはユーザーを確認するためのメールを送信します。 そのメールリンクから:

以前に開いたウィンドウを自分のサイトにどのようにターゲティングできますか?(現在、次のように言っています:サインアップしていただきありがとうございます、検証トークンのメールを確認してください)

サイトのbodyタグに配置されるのは:


Content-type:text / htmlを指定したPHPのmail()関数を使用して、メールから `` tag with target = "thesite"を送信しようとしましたが、ターゲットは取得しません。

Verify

そのように見えますが、新しいウィンドウが開きます。

1 Answer


1


ワンステップの簡単な解決策がないということはかなり面倒です(私の知る限り、開いたウィンドウをターゲットにすることはできません)。

  • 「確認するにはここをクリック」ページには、Cookieをチェックするスクリプトがあります。 setInterval( "CheckVerified();"、200)の影響を伴う200ミリ秒。 CheckVerified()は、onloadイベントとしてbody.focus()を持つhttp://www.demo.com/index.php?token=-token_from_cookie-に移動します。

  • 電子メール内のリンクは、次の2つのonload関数があるページに移動します。 -SetCookie(name、-token parameter from parameter from link in email-);の効果window.close();

基本的に、電子メール内のリンクは、Cookieを変更するページを開き、すぐに閉じます。 「検証を待機しています…​」などのメッセージを示す元のページは、変更されたCookieに気づき、実際のP​​HP検証スクリプトに移動して応答します。 元の検証ページが最初にウィンドウで開かれることが重要です(タブの場合、フォーカスがない場合、javascriptはフリーズします)。したがって、body.focus()はユーザーの注意を引くために必要です。 。

この方法は退屈なように見えますが、ウィンドウクロススクリプトやその他の楽しいセキュリティの問題を回避します。