Log bruger ind?

Jeg sidder med en form hvor en del af oplysningerne bruges til at logge brugeren ind med, men hvorfor virker flg. ikke?

$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);
}
Når jeg dumper $user kan jeg se at data er korrekt så $user->name og $user->pass findes i databasen og er korrekte, men dumper jeg $account får jeg et null?
beltoftes billede

Prøv at kigge på hvad der foregår i user_authenticate() og user_load(), så vil du opdage at user_load() forventer password'et i plain text og ikke som en md5 hash. Det password du får ud af databasen er jo netop md5 udgaven. Så prøv at ændre linierne til:

<?php
   
// Authenticate user and log in
   
$params = array(
     
'name' => $user->name,
     
'pass' => $pass
   
);
?>
kristians billede

Du har fuldstændig ret:

$mail = $form_state['values']['mail'];
  $pass = $form_state['values']['pass'];
  // This is the event
  $node = node_load($form_state['values']['nid']);
 
  $signup_page = variable_get('guestlist_signup_page', 'content/become-friend-nasa');
   
  $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($pass)
    );
   
    // Authenticate user   
    $account = user_authenticate($params);

virker perfekt - tak for svaret