0

アカウントを検証するために、クリックするためのリンクをユーザーに送信しました。

Gmailアドレスからテストするというアイデアが浮かぶまで、すべてがうまくいきました。ユーザーがサイトからリクエストを送信すると、Cookie に保存されている言語を選択する必要があります。

私はFirefoxデフォルトのブラウザとして持っています。、などの他のすべての電子メール クライアントで動作しますが、Yahooでは動作HotmailWindows MailませんGmail

バグは、リンクがクリックされると、新しいページが開きますが (これまでと同様)、Cookie の選択ページが表示され、何度も何度も言語の選択を求められることです。

このスニペットは、言語 Cookie を設定するために使用されます。

setcookie("language",$_GET["language"],time()+730*24*3600,NULL, NULL, NULL,TRUE);

他の Cookie は、次のルールで index に設定されます。

session_set_cookie_params(0, NULL, NULL, NULL, TRUE);

ユーザーの検証には、次の形式のリンクが使用されます (変更済み)。

http://www.example.com/index.php?%09%09page=validate&code=7c222fb2927d828af22f592134e8932480637c0d&user=some.random.user%40gmail.com&confirm=e34054aca67d77bb76fe62019ef331c7e2a0a4b9

これは、ユーザーがGmail認証できないことを意味します。

これを解決する方法を知っている人はいますか?

4

1 に答える 1

0

私は最終的にこの理由を見つけました:

私のコードは次のようにインデントされました:

http://www.example.com/index.php?%09%09page= validate&code=7c222fb2927d828af22f592134e8932480637c0d&user=some.random.user%40gmail.com& confirm=e34054aca67d77bb76fe62019ef331c7e2a0a4b9

Gmailこれは、 !を除いて、私がテストしたどの電子メール プロバイダーでもバグにはつながりません。

%09%09の後にa を挿入するequalため、対象のページに到達しないため、認証は失敗します。

これが役立つことを願っています。

于 2013-02-09T09:40:56.193 に答える