? cookie-message.patch
? core-cookies.patch
? sites/default/files
? sites/default/settings.php
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.954
diff -u -p -r1.954 user.module
--- modules/user/user.module	13 Jan 2009 06:27:01 -0000	1.954
+++ modules/user/user.module	14 Jan 2009 22:58:30 -0000
@@ -1345,17 +1345,18 @@ function user_login(&$form_state) {
  * authenticate against their user database instead of the local users
  * table.
  *
- * We use three validators instead of one since external authentication
- * modules usually only need to alter the second validator.
+ * We use four validators instead of one since external authentication
+ * modules usually only need to alter the third validator.
  *
  * @see user_login_name_validate()
+ * @see user_login_cookie_validate()
  * @see user_login_authenticate_validate()
  * @see user_login_final_validate()
  * @return array
  *   A simple list of validate functions.
  */
 function user_login_default_validators() {
-  return array('user_login_name_validate', 'user_login_authenticate_validate', 'user_login_final_validate');
+  return array('user_login_name_validate', 'user_login_cookie_validate', 'user_login_authenticate_validate', 'user_login_final_validate');
 }
 
 /**
@@ -1369,6 +1370,16 @@ function user_login_name_validate($form,
 }
 
 /**
+ * A FAPI validate handler. Sets an error if cookies are not supported.
+ */
+function user_login_cookie_validate($form, &$form_state) {
+  if (!$_COOKIE) {
+    $domain = ini_get('session.cookie_domain') ? ini_get('session.cookie_domain') : $_SERVER['HTTP_HOST'];
+    form_set_error('', t('It seems your browser does not accept cookies. To log into this site, you need to accept cookies from the domain @domain.', array('@domain' => $domain)));
+  }
+}
+
+/**
  * A validate handler on the login form. Check supplied username/password
  * against local users table. If successful, sets the global $user object.
  */
@@ -1455,6 +1466,7 @@ function user_authenticate_finalize(&$ed
  */
 function user_login_submit($form, &$form_state) {
   global $user;
+
   if ($user->uid) {
     $form_state['redirect'] = 'user/' . $user->uid;
     return;
