0

我向用户发送了一个点击链接,以验证他的帐户。

一切都很顺利,直到我有了从Gmail地址测试它的想法。当用户从网站发送他的请求时,他已经有义务选择一种存储在 cookie 中的语言。

我有Firefox作为默认浏览器。它适用于所有其他电子邮件客户端,例如Yahoo,但不适用于.HotmailWindows MailGmail

错误是,当点击链接时,会打开一个新页面(和以往一样),但会显示 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它在 the 之后插入 a ,equal因此验证失败,因为它没有到达它的目标页面。

希望这能有所帮助。

于 2013-02-09T09:40:56.193 回答