=== modified file 'includes/session.inc' --- includes/session.inc 2007-08-12 15:55:35 +0000 +++ includes/session.inc 2007-09-23 08:11:11 +0000 @@ -48,6 +48,7 @@ function sess_read($key) { else { $session = isset($user->session) ? $user->session : ''; $user = drupal_anonymous_user($session); + setcookie('drupal_login_check', TRUE, time() + 31536000, '/'); } return $user->session; === modified file 'modules/user/user.module' --- modules/user/user.module 2007-09-19 18:00:52 +0000 +++ modules/user/user.module 2007-09-23 09:21:48 +0000 @@ -878,6 +878,13 @@ function user_menu() { 'type' => MENU_LOCAL_TASK, 'file' => 'user.pages.inc', ); + $items['user/no_cookie'] = array( + 'title' => 'Cookie problems', + 'page callback' => 'user_no_cookie', + 'access callback' => TRUE, + 'type' => MENU_CALLBACK, + 'file' => 'user.pages.inc', + ); $items['user/reset/%/%/%'] = array( 'title' => 'Reset password', 'page callback' => 'drupal_get_form', @@ -1226,7 +1233,7 @@ function user_authenticate($name, $pass) } /** - * A validate handler on the login form. Update user's login timestamp, fire + * A submit handler on the login form. Update user's login timestamp, fire * hook_user('login), and generate new session ID. */ function user_login_submit($form, &$form_state) { @@ -1241,7 +1248,10 @@ function user_login_submit($form, &$form sess_regenerate(); $form_state['redirect'] = 'user/'. $user->uid; - return; + } + if (!isset($_COOKIE['drupal_login_check'])) { + unset($_REQUEST['destination']); + drupal_goto('user/no_cookie'); } } === modified file 'modules/user/user.pages.inc' --- modules/user/user.pages.inc 2007-09-10 13:14:38 +0000 +++ modules/user/user.pages.inc 2007-09-23 09:42:56 +0000 @@ -363,3 +363,8 @@ function user_page() { return drupal_get_form('user_login'); } } + +function user_no_cookie() { + $text = t('Seems your browser does not accept cookies.'); + return $text; +}