Drupal 手动登录用户

Drupal 手动登录用户,drupal,drupal-6,login,login-script,Drupal,Drupal 6,Login,Login Script,我正在一个drupal网站上工作,我允许用户登录,同时发布内容。我已成功地将电子邮件和密码字段添加到原始表单中,但我仍然无法确定如何实际登录用户。我的计划是在创建内容之前,在验证步骤中执行此操作,以使登录用户拥有该内容 我可以在user.module API中找到三个看起来正确的函数: 现在,我的问题是它是哪一个?我的思路是否正确?一旦您检查用户名/密码并发现它们已验证并获得用户的$uid,您将执行以下操作: $account = user_load($uid)) global $user; $

我正在一个drupal网站上工作,我允许用户登录,同时发布内容。我已成功地将电子邮件和密码字段添加到原始表单中,但我仍然无法确定如何实际登录用户。我的计划是在创建内容之前,在验证步骤中执行此操作,以使登录用户拥有该内容

我可以在user.module API中找到三个看起来正确的函数:


现在,我的问题是它是哪一个?我的思路是否正确?

一旦您检查用户名/密码并发现它们已验证并获得用户的$uid,您将执行以下操作:

$account = user_load($uid))
global $user;
$user = $account;
user_authenticate_finalize($form_state['values']);
$account = user_load(array(
  'name' => $form_values['name'],
  'pass' => trim($form_values['pass']),
  'status' => 1)
);
if ($account && !drupal_is_denied('mail', $account->mail) {
  global $user;
  $user = $account;
  user_authenticate_finalize($form_state['values']);
}
else {
  // Raise validation error.
}
因此覆盖全局$user对象并调用

更新: 通过一个步骤进行验证和登录,如下所示:

$account = user_load($uid))
global $user;
$user = $account;
user_authenticate_finalize($form_state['values']);
$account = user_load(array(
  'name' => $form_values['name'],
  'pass' => trim($form_values['pass']),
  'status' => 1)
);
if ($account && !drupal_is_denied('mail', $account->mail) {
  global $user;
  $user = $account;
  user_authenticate_finalize($form_state['values']);
}
else {
  // Raise validation error.
}

检查用户名/密码并发现它们已验证并获得用户的$uid后,您将执行以下操作:

$account = user_load($uid))
global $user;
$user = $account;
user_authenticate_finalize($form_state['values']);
$account = user_load(array(
  'name' => $form_values['name'],
  'pass' => trim($form_values['pass']),
  'status' => 1)
);
if ($account && !drupal_is_denied('mail', $account->mail) {
  global $user;
  $user = $account;
  user_authenticate_finalize($form_state['values']);
}
else {
  // Raise validation error.
}
因此覆盖全局$user对象并调用

更新: 通过一个步骤进行验证和登录,如下所示:

$account = user_load($uid))
global $user;
$user = $account;
user_authenticate_finalize($form_state['values']);
$account = user_load(array(
  'name' => $form_values['name'],
  'pass' => trim($form_values['pass']),
  'status' => 1)
);
if ($account && !drupal_is_denied('mail', $account->mail) {
  global $user;
  $user = $account;
  user_authenticate_finalize($form_state['values']);
}
else {
  // Raise validation error.
}

那么如何验证和获取uid?那么如何验证和获取uid?