Index: includes/session.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/session.inc,v retrieving revision 1.42 diff -u -p -r1.42 session.inc --- includes/session.inc 12 Aug 2007 15:55:35 -0000 1.42 +++ includes/session.inc 18 Nov 2007 22:19: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; Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.864 diff -u -p -r1.864 user.module --- modules/user/user.module 17 Nov 2007 14:25:23 -0000 1.864 +++ modules/user/user.module 19 Nov 2007 01:15:24 -0000 @@ -895,6 +895,13 @@ function user_menu() { 'type' => MENU_LOCAL_TASK, 'file' => 'user.pages.inc', ); + $items['user/no-cookie'] = array( + 'title' => 'Please enable cookies', + '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', @@ -1245,7 +1252,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) { @@ -1260,7 +1267,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'); } } Index: modules/user/user.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.pages.inc,v retrieving revision 1.3 diff -u -p -r1.3 user.pages.inc --- modules/user/user.pages.inc 27 Oct 2007 14:01:12 -0000 1.3 +++ modules/user/user.pages.inc 19 Nov 2007 01:13:52 -0000 @@ -367,3 +367,9 @@ function user_page() { return drupal_get_form('user_login'); } } + +function user_no_cookie() { + global $base_url; + $url = parse_url($base_url); + return t('It seems that your browser does not accept cookies. To log into this site, you need to accept cookies from the domain @domain.', array('@domain' => $url['host'])); +}