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);
}
beltofte
16. februar 2010 - 23:10
Permalink
Prøv at kigge på hvad der
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
);
?>
kristian
18. februar 2010 - 20:35
Permalink
så giver det mening
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