2010-08-28 6 views
1

Je travaille sur un site drupal où je permets aux utilisateurs de se connecter tout en publiant un contenu. J'ai ajouté avec succès les champs de mot de passe & au formulaire d'origine, mais je suis bloqué quant à la façon dont je devrais effectivement me connecter à l'utilisateur. (Mon plan est de le faire dans l'étape de validation, avant que le contenu ne soit créé, pour faire en sorte que le propriétaire de l'utilisateur connecté au contenu).Connectez-vous manuellement un utilisateur

Je trouve trois fonctions de l'API user.module qui ressemble en quelque sorte à droite:

Maintenant, ma question est que l'on est? Suis-je même sur la bonne voie?

Répondre

6

Une fois que vous avez vérifié le nom d'utilisateur/mot de passe et ont trouvé qu'ils valident et obtenu le $uid de l'utilisateur, vous feriez quelque chose comme ceci:

$account = user_load($uid)) 
global $user; 
$user = $account; 
user_authenticate_finalize($form_state['values']); 

donc vous écrasez l'objet $user global et appel user_authenticate_finalize.

Mise à jour:
Faire la validation et la connexion avec un pas ressembler à ceci:

$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. 
} 
+0

Alors, comment puis-je valider et obtenir le uid? –

+0

Cela a fait l'affaire. Aide génial, merci. –

Questions connexes