验证链接不适用于Gmail

时间:2012-12-13 15:57:09

标签: php validation cookies gmail hyperlink

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

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

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

错误是当点击链接时,会打开一个新页面(如有),但会显示Cookie选择页面,并要求再次选择语言,一次又一次。

此代码段用于设置语言Cookie:

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

使用以下索引规则设置其他Cookie:

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的用户将无法进行身份验证。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我终于找到了原因:

我的代码是这样缩进的:

http://www.example.com/index.php?%09%09page= 验证&安培;代码= 7c222fb2927d828af22f592134e8932480637c0d&安培;用户= some.random.user%40gmail.com&安培; 确认= e34054aca67d77bb76fe62019ef331c7e2a0a4b9

这不会导致我测试过的任何电子邮件提供商出现错误,Gmail除外!

它会在%09%09之后插入 equal ,因此验证失败,因为它无法到达目标网页。

希望这可以提供帮助。