Всем привет. У меня глюк какой-то появился. Вообщем хочу залогиниться на сайте, использую IE6 - не пускает, использую FireFox - не пускает, использую Konqueror - пускает!!! Причем логин/пароль везде пишу одинаковый. Я почистил все куки, перегрузил комп, пофигу. Когда не пускает пользователя, выводится сообщение "Доступ запрещен", а не "Извините, это имя пользователя или пароль неверны. Забыли пароль?" . Блин что делать? Пробывал с других компов, также не пускает. Создавал новых пользователей, этими новыми пользователями также не пускает через IE6 и FireFox.
Комментарии
Может какие то косяки с темой?
поставил стандартную Garaland, не помогло. Вырублю все доп. модули, авось поможет.
все модули вырубил, ситуация та же
Проверьте настройки прав пользователя для зарегистрированных пользователей. Скорее всего, там у вас сняты галочки на просмотр материалов сайта.
(непонятно, правда, как так "Konqueror - пускает!!!").
я уже штук пять пользователей наплодил. Создал роль - где все права даны, повесил на этих пользователей, результат тот же. почему в Konqueror работает мне больше всего не понятно.
У моих пользователей тоже иногда такое бывает.
Совершенно не знаю, как же им помочь
Пишут, что если пытаются войти с ххх.ххх/user, просто заново появляется пустой формуляр. И все. Хотя в администрации их видно, что они залогинились. Когда они пишут коментарии, то только как анонимы получаются.
>>>palych063
Ничего не сделаешь. Это косяк Друпала.
Я лично процентов 40 юзеров теряю из-за того что они не могут просто напросто войти на сайт и сваливают...
У меня правда 4.7, не знаю как в пятёрке. Но если и в пятёрке тоже то это конечно очень длительное решение этой доставшей уже всех давно проблемы
>>> Loo12
Упоминание о себе во множественном числе является очевидным признаком душевной болезни.
Обновил до 5.1, перезапустил mysql, щас apache перезапущу
>>> Loo12
Если все так серьезно, очень жаль =(.
> Ничего не сделаешь. Это косяк Друпала.
Если тысячи сайтов работают на Drupal, не проще ли предположить, что на вашем что-то не так настроено?
Предположить всегда "что-нибудь" можно.
Всё зависит от того, какую сторону принимать по данном "предположении".
Если слепую веру что Друпал непогрешим... то результат всех таких "предположений" очевиден.
А кукизы точно записываются?
В 4.7 проблему можно было решить следующим хаком:
В user.module надо закомментировать строчку session_regenerate_id()
//session_regenerate_id();
db_query("UPDATE {sessions} SET sid = '%s' WHERE sid = '%s'", session_id(), $old_session_id);
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
а что скажите насчет модуля Persistent Login http://drupal.org/project/persistent_login ?
Сeйчас я всeх спасу
Сама два часа искала, думала, что дeло в моих измeнeниях, чуть с ума нe сошла - нe работаeт и всe!
А оказываeтся, всe просто - провайдeр апгрeйдил PHP до 2.0... Patch ставить надо.
Точнee, дописать пару строчeк в session.inc.
Линк:
http://drupal.org/node/92802
И стало мнe щастьe!
Кстати про PHP у нас админ поставил 5.2.1RC4, после этого понеслось. с этим все ясно, огромное спасибо logiciel =). Вобщем прочитал статью http://drupal.org/node/92802 и ни фига не понял, сделал изменения согласно http://drupal.org/files/issues/drupal_php5.2.0_session.patch.txt
===================================================================
RCS file: /cvs/drupal/drupal/index.php,v
retrieving revision 1.90
diff -u -r1.90 index.php
--- index.php 27 Jan 2006 18:51:51 -0000 1.90
+++ index.php 3 Nov 2006 20:50:20 -0000
@@ -32,4 +32,5 @@
}
drupal_page_footer();
+session_write_close();
потом согласно http://drupal.org/files/issues/drupal_php5.2.0_session.patch.txt
Index: includes/session.inc
===================================================================
--- includes/session.inc (revision 103)
+++ includes/session.inc (working copy)
@@ -43,12 +43,16 @@
else {
$user->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
}
+ $GLOBALS['account'] = (array)$user;
return !empty($user->session) ? $user->session : '';
}
function sess_write($key, $value) {
- global $user;
+ global $account, $user;
+ if (empty($user)) {
+ $user = (object)$account;
+ }
$result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
и все равно не получается =(((.
To logiciel - если не трудно отправь мне на почту файл session.inc, или выложи здесь.
Вот моя session.inc - отдeльныe строчки, которыe мeняла, ужe нe помню.
----------------------------------------------
<?php
// $Id: session.inc,v 1.27 2006/04/11 11:33:14 killes Exp $
/**
* file
* User session handling functions.
*/
function sess_open($save_path, $session_name) {
return TRUE;
}
function sess_close() {
return TRUE;
}
function sess_read($key) {
global $user;
// retrieve data for a $user object
$result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
if (!db_num_rows($result)) {
$result = db_query("SELECT u.* FROM {users} u WHERE u.uid = 0");
}
else {
$result = db_query("SELECT u.*, s.* FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.sid = '%s'", $key);
}
// Build $user object:
$user = db_fetch_object($result);
$user = drupal_unpack($user);
// Add roles element to $user:
$user->roles = array();
if ($user->uid) {
$user->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
$result = db_query("SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d", $user->uid);
while ($role = db_fetch_object($result)) {
$user->roles[$role->rid] = $role->name;
}
}
else {
$user->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
}
$GLOBALS['account'] = (array)$user; // patch 08.02.07
return !empty($user->session) ? $user->session : '';
}
function sess_write($key, $value) {
global $user,$account; //patch begin
if (empty($user)) {
$user = (object)$account;
} // patch 08.02.07
$result = db_query("SELECT sid FROM {sessions} WHERE sid = '%s'", $key);
if (!db_num_rows($result)) {
// Only save session data when when the browser sends a cookie. This keeps
// crawlers out of session table. This improves speed up queries, reduces
// memory, and gives more useful statistics. We can't eliminate anonymous
// session table rows without breaking throttle module and "Who's Online"
// block.
if ($user->uid || $value || count($_COOKIE)) {
db_query("INSERT INTO {sessions} (sid, uid, cache, hostname, session, timestamp) VALUES ('%s', %d, %d, '%s', '%s', %d)", $key, $user->uid, $user->cache, $_SERVER["REMOTE_ADDR"], $value, time());
}
}
else {
db_query("UPDATE {sessions} SET uid = %d, cache = %d, hostname = '%s', session = '%s', timestamp = %d WHERE sid = '%s'", $user->uid, $user->cache, $_SERVER["REMOTE_ADDR"], $value, time(), $key);
// TODO: this can be an expensive query. Perhaps only execute it every x minutes. Requires investigation into cache expiration.
if ($user->uid) {
db_query("UPDATE {users} SET access = %d WHERE uid = %d", time(), $user->uid);
}
}
return TRUE;
}
function sess_destroy($key) {
db_query("DELETE FROM {sessions} WHERE sid = '%s'", $key);
}
function sess_gc($lifetime) {
// Be sure to adjust 'php_value session.gc_maxlifetime' to a large enough
// value. For example, if you want user sessions to stay in your database
// for three weeks before deleting them, you need to set gc_maxlifetime
// to '1814400'. At that value, only after a user doesn't log in after
// three weeks (1814400 seconds) will his/her session be removed.
db_query("DELETE FROM {sessions} WHERE timestamp < %d", time() - $lifetime);
return TRUE;
}
---------------------------------------------------
Правильно ли я понял, что если очистить таблицу сессий проблем решиться на некоторое время?
>>> и все равно не получается =(((.
Я буду очень удивлён, если получится
У спецов на друпал.орг не получается, а у logiciel вдруг возьмёт и вдруг всё получится....
Тут как повезет. Я смогла решить проблему проблему с логином на 4.7 с одним из хаков, кто наверное еще что-то пробовал. На 5.1 все вроде пока спокойно (тьфу-тьфу-тьфу)
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Два дня назад столкнулся с такой проблемой в 5.1.
Проблема аналогичная. Даже сказал бы идентичная.
Любой пользователь, в том числе и администратор, вводит логин/пароль, нажимает enter и ... страница обновляется, и снова показывается пустой формуляр, хотя в блоке "Пользователи на сайте" текущий пользователь указан.
Причем проверил всё.
Куки пишутся, таблица sessions в БД обновляется, блин у меня даже кэш запрещён.
Хотя с сессиями странные вещи творятся.
Если таблицу сессий чищу вручную, то при вводе логина и пароля страница то обновляется, но вот в блоке "Пользователи на сайте" текущий пользователь не показывается. Перезапускаю MySQL и "опять двадцать пять": любой пользователь, в том числе и администратор, вводит логин/пароль, нажимает enter и страница обновляется, и снова показывается пустой формуляр, хотя в блоке "Пользователи на сайте" текущий пользователь указан.
Вот собственно что стоит:
PHP 5.2.1 (Build Date Feb 7 2007 23:10:31)
Apache Version Apache/1.3.27 (Win32)
MySQL 5.0.27
Банально не могу зайти под любым пользователем, в т.ч. и под admin
Ломаю голову второй день.
Вот такие пироги.
----------------------------------------------------------
Локализация некоторых модулей
Там на самом деле не одна проблема а несколько, часть из которых решена.
И есть проблема с сессиями, я правда не очень понимаю в чем ее суть т.к. в сессиях не силен. Но она проявляется не у всех, и не всегда.
То о чем пишет logiciel это проблема PHP 5.2, так что вполне возможно, что это решение ей поможет, а может и кому-то еще.
Это еще и от браузеров зависит. В одном браузере проявляется, в другом - нет, и у всех по-разному.
Даже девелоперы наконец серьезно озаботились этой проблемой:
http://drupal.org/node/115889
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
всплыло и у меня...
5-я версия друпала стоит, под админом не могу ничего сделать
всё время говорит что доступ запрещён и просит логиниться...
что делать???
и что самое плохое - не могу версию новую накатить ведь не могу залогиниться...
вроде помогло http://drupal.org/node/20397#comment-177472
Одна из возможных проблем решается так:
Замените в sites/settings.php строку:
$domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
на:
$domain = '.'. preg_replace('`^www\.`', '', $_SERVER['HTTP_HOST']);
баг проявляется в глюках с авторизацией в IE6,7 для доменов, которые начинаются с wwwX, где X - не точка. например на www1.mydomain.ru (часто делают тестовые такие)
Насколько я понял для пятерки проблема не решена?
Ткните носом если не заметил, но помоему пока решения нет.
Мнда... всё заново теперь делать : (
----------------------------------------------------------
Локализация некоторых модулей
Девелоперы сами голову ломают...
http://drupal.org/node/115889
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Прискорбно.
И что самое удивительное - всё произошло "ни с того, ни с сего".
----------------------------------------------------------
Локализация некоторых модулей
Я нашёл решение, по крайней мере своей, выше описанной проблемы.
Методом тыка : )
В php.ini
вот эту строку вернул в изначальное значение:
session.save_handler = user
т.е. стало вот так:
session.save_handler = files
вот эту строку закомментировал
session.save_path = "c:/php/session_save_path"
т.е. стало вот так:
;session.save_path = "c:/php/session_save_path"
вот эту строку вернул в изначальное значение:
session.cookie_path = c:/php/cookie/
т.е. стало вот так:
session.cookie_path = /
и в самый конц файла index.php добавил строку:
session_write_close();
Перезапустил mysql и apache и всё заработало : )
Ура! Ну разве это не прекрасно? : )
----------------------------------------------------------
Локализация некоторых модулей
Кто нибудь, у кого схожая проблема, отпишитесь если решение помогло.
Интересно же
----------------------------------------------------------
Локализация некоторых модулей
помогли 2 изменения
1 файл session.inc
после
function sess_read($key) {
global $user;
добавил
register_shutdown_function('session_write_close');
2 в index.php в самый конец добавил
session_write_close();
(друпал 4.7 и 4.6,5)
случилось после перехода на последний пхп