【发布时间】:2012-02-29 15:18:28
【问题描述】:
试图在网站上实现 gravatar。这是返回gravatar链接的代码。
function getGravatar(){
$email = $userInfo['email'];
$trimmed = trim($email);
$md5 = md5(strtolower($trimmed));
$gravatar = "http://www.gravatar.com/avatar/" . $md5;
return $gravatar;
}
上面的代码不起作用,但如果我将$email = $userInfo['email']; 替换为$email = "crumrinece@gmail.com";(与gravatar 关联的电子邮件),它确实有效。在这两种情况下,我都回显了 $md5,发现每种情况的哈希值都不同。
我认为这意味着我在使用 $userInfo['email'] 时遇到了问题,但echo $userInfo['email'] 打印了“crumrinece@gmail.com”。所以我不知道为什么两者会产生不同的哈希值。
电子邮件存储在 MySql 数据库中。生成$userInfo的代码:
$query = "select * from users where username = '$username'";
$result = mysql_query($query);
$userInfo = mysql_fetch_array($result);
【问题讨论】:
-
这是您使用的真实代码吗?
$userInfo没有定义在getGravatar()的范围内。没有global关键字可以从全局范围导入变量,并且该函数也没有参数。$userInfo来自哪里?