gpt4 book ai didi

drupal-6 - drupal 6 以编程方式登录用户

转载 作者:行者123 更新时间:2023-12-01 13:07:08 24 4
gpt4 key购买 nike

我正在尝试将用户登录作为表单提交的一部分,但为什么以下操作不起作用:

$user = db_fetch_object(db_query("SELECT * FROM users WHERE mail = '%s' AND pass = '%s'", $mail, md5($pass)));

if ($user) {
// Authenticate user and log in
$params = array(
'name' => $user->name,
'pass' => trim($user->pass)
);

// Authenticate user
$account = user_authenticate($params);
}

如果我转储 $user 我可以看到正确的值,但如果我转储帐户它是空的。

最佳答案

您正在将经过散列 的密码传递给“user_authenticate()”,而该函数需要明文密码(在通过 ´user_load()´ 加载帐户时,它会自己间接散列)。

因此将您的 $params 数组声明更改为

$params = array(
'name' => $user->name,
'pass' => $pass
);

应该使您的示例工作。


顺便说一句,您可以自己使用 user_load() 来避免直接查询数据库:

$user = user_load(array('mail' => $mail, 'pass' => trim($pass), 'status' => 1));

('status' => 1 会将结果限制为活跃用户 - 当然,如果您真的想允许登录禁用的帐户,您可以将其省略;)

关于drupal-6 - drupal 6 以编程方式登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com