Не могу залогинится на сайте

Главные вкладки

Аватар пользователя palych063 palych063 8 февраля 2007 в 15:19

Всем привет. У меня глюк какой-то появился. Вообщем хочу залогиниться на сайте, использую IE6 - не пускает, использую FireFox - не пускает, использую Konqueror - пускает!!! Причем логин/пароль везде пишу одинаковый. Я почистил все куки, перегрузил комп, пофигу. Когда не пускает пользователя, выводится сообщение "Доступ запрещен", а не "Извините, это имя пользователя или пароль неверны. Забыли пароль?" . Блин что делать? Пробывал с других компов, также не пускает. Создавал новых пользователей, этими новыми пользователями также не пускает через IE6 и FireFox.

Комментарии

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 8 февраля 2007 в 15:35

Проверьте настройки прав пользователя для зарегистрированных пользователей. Скорее всего, там у вас сняты галочки на просмотр материалов сайта.
(непонятно, правда, как так "Konqueror - пускает!!!").


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? Smile Полный русский перевод Drupal 5.x и еще некоторых модулей.

Аватар пользователя palych063 palych063 8 февраля 2007 в 15:43

я уже штук пять пользователей наплодил. Создал роль - где все права даны, повесил на этих пользователей, результат тот же. почему в Konqueror работает мне больше всего не понятно.

Аватар пользователя verro@drupal.org verro@drupal.org 8 февраля 2007 в 16:02

Пишут, что если пытаются войти с ххх.ххх/user, просто заново появляется пустой формуляр. И все. Хотя в администрации их видно, что они залогинились. Когда они пишут коментарии, то только как анонимы получаются.

Аватар пользователя moonman moonman 8 февраля 2007 в 16:35

>>>palych063

Ничего не сделаешь. Это косяк Друпала.
Я лично процентов 40 юзеров теряю из-за того что они не могут просто напросто войти на сайт и сваливают...
У меня правда 4.7, не знаю как в пятёрке. Но если и в пятёрке тоже то это конечно очень длительное решение этой доставшей уже всех давно проблемы ROFL

Аватар пользователя vadbars@drupal.org vadbars@drupal.org 8 февраля 2007 в 17:20

> Ничего не сделаешь. Это косяк Друпала.
Если тысячи сайтов работают на Drupal, не проще ли предположить, что на вашем что-то не так настроено?


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? Smile Полный русский перевод Drupal 5.x и еще некоторых модулей.

Аватар пользователя moonman moonman 8 февраля 2007 в 17:28

Предположить всегда "что-нибудь" можно.
Всё зависит от того, какую сторону принимать по данном "предположении".
Если слепую веру что Друпал непогрешим... то результат всех таких "предположений" очевиден.

Аватар пользователя Natalie Natalie 8 февраля 2007 в 21:01

В 4.7 проблему можно было решить следующим хаком:

В user.module надо закомментировать строчку session_regenerate_id()

$old_session_id = session_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.

Аватар пользователя logiciel logiciel 9 февраля 2007 в 2:16

Сeйчас я всeх спасу Smile
Сама два часа искала, думала, что д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!

Аватар пользователя palych063 palych063 9 февраля 2007 в 15:17

Кстати про PHP у нас админ поставил 5.2.1RC4, после этого понеслось. с этим все ясно, огромное спасибо logiciel =). Вобщем прочитал статью http://drupal.org/node/92802 и ни фига не понял, сделал изменения согласно http://drupal.org/files/issues/drupal_php5.2.0_session.patch.txt

Index: index.php
===================================================================
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, или выложи здесь.

Аватар пользователя logiciel logiciel 9 февраля 2007 в 23:52

Вот моя 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;
}
---------------------------------------------------

Аватар пользователя moonman moonman 12 февраля 2007 в 23:48

>>> и все равно не получается =(((.

Я буду очень удивлён, если получится Smile

У спецов на друпал.орг не получается, а у logiciel вдруг возьмёт и вдруг всё получится.... ROFL

Аватар пользователя Natalie Natalie 13 февраля 2007 в 0:02

Тут как повезет. Я смогла решить проблему проблему с логином на 4.7 с одним из хаков, кто наверное еще что-то пробовал. На 5.1 все вроде пока спокойно (тьфу-тьфу-тьфу)
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 19 марта 2007 в 20:43

Два дня назад столкнулся с такой проблемой в 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
Ломаю голову второй день.
Вот такие пироги.



----------------------------------------------------------
Локализация некоторых модулей

Аватар пользователя dyp@drupal.org dyp@drupal.org 13 февраля 2007 в 0:05

Там на самом деле не одна проблема а несколько, часть из которых решена.
И есть проблема с сессиями, я правда не очень понимаю в чем ее суть т.к. в сессиях не силен. Но она проявляется не у всех, и не всегда.
То о чем пишет logiciel это проблема PHP 5.2, так что вполне возможно, что это решение ей поможет, а может и кому-то еще.

Аватар пользователя Natalie Natalie 13 февраля 2007 в 0:23

Это еще и от браузеров зависит. В одном браузере проявляется, в другом - нет, и у всех по-разному.
Даже девелоперы наконец серьезно озаботились этой проблемой:
http://drupal.org/node/115889
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя lexa74 lexa74 19 февраля 2007 в 21:00

всплыло и у меня...
5-я версия друпала стоит, под админом не могу ничего сделать Sad
всё время говорит что доступ запрещён и просит логиниться...

что делать???

Аватар пользователя greenmother@drupal.org greenmother@dru... 14 марта 2007 в 19:32

Одна из возможных проблем решается так:
Замените в sites/settings.php строку:
  $domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
на:
  $domain = '.'. preg_replace('`^www\.`', '', $_SERVER['HTTP_HOST']);

баг проявляется в глюках с авторизацией в IE6,7 для доменов, которые начинаются с wwwX, где X - не точка. например на www1.mydomain.ru (часто делают тестовые такие)

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 19 марта 2007 в 20:35

Насколько я понял для пятерки проблема не решена?
Ткните носом если не заметил, но помоему пока решения нет.

Мнда... всё заново теперь делать : (



----------------------------------------------------------
Локализация некоторых модулей

Аватар пользователя Natalie Natalie 19 марта 2007 в 20:16

Девелоперы сами голову ломают...
http://drupal.org/node/115889
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя SadhooKlay SadhooKlay (не проверено) 19 марта 2007 в 22:04

Я нашёл решение, по крайней мере своей, выше описанной проблемы.

Методом тыка : )

В 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 и всё заработало : )

Ура! Ну разве это не прекрасно? : )



----------------------------------------------------------
Локализация некоторых модулей

Аватар пользователя kiev1 kiev1 20 марта 2007 в 0:51

помогли 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)
случилось после перехода на последний пхп