Пользователи Internet Explorer не могут авторизоваться

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

Аватар пользователя J. Bravo J. Bravo 17 января 2008 в 13:58

Здравствуйте!

Столкнулся с проблемой - пользователи браузера Internet Explorer 6.0 не могут залогиниться на сайт.

Сайт находится в локальной сети. Программное обеспечение сервера:
Apache 2.0.55
MySQL 5.0.18
PHP 5.2.5
Drupal 5.5

Нашел несколько обсуждений этой проблемы, но все они касаются версии Drupal 4.х. Части кода, которые предлагается изменить в модуле user для решения проблемы в версии 5.5 в этом модуле попросту отсутствуют.

Подскажите, пожалуйста, как можно решить эту проблему?

Комментарии

Аватар пользователя J. Bravo J. Bravo 17 января 2008 в 14:54

PS

Проблема воспроизводится на локальной машине если в строке браузера (IE 6.0) пишу http://comp_name/drupal/

Если на страницу заходить как http://localhost/drupal/ , то залогиниться удается.

Firefox авторизуется как по первой, так и по второй ссылке.

Аватар пользователя VLAD_X VLAD_X 18 января 2008 в 8:20

Возможно, дело в High Security (или Privacy) в IE6+. Для того, что IE6+ принимал куки, сервер должен посылать специальный заголовок P3P, содержащий информация, ЗАЧЕМ сервер пытается установить куки.
Заголовок состоит из 2-х полей: policyref - ссылка на xml-файл с подробным описанием и CP (Compact Policy) - тоже самое, но в виде нескольких условных сокращений. Вот это поле IE6+ прямо-таки желает видеть!

Попробуйте прилагаемый модуль p3p, когда-то писал для себя, но руки так и не дошли выложить на офф. сайт.
В настройках модуля поле policyref оставьте пустым, если нет файла с подробным описанием, а в CP можете указать "NON DSP CURa ADMa DEVa TAIa OUR IND ONL UNI" - у меня так работает.

Более подробная информация о протоколе на http://en.wikipedia.org/wiki/P3P

Аватар пользователя J. Bravo J. Bravo 18 января 2008 в 13:09

Спасибо за помощь.

К сожалению, установка модуля p3p не изменила ситуацию.

Встретил в одном из обсуждений совет установить вручную значение параметра session.coockie_domain.

Попытки самостоятельно установить его "правильное" значение проблему не решили и более того, приводили к отсутствию возможности залогиниться хоть как-то. Единственный вариант, который не ухудшил ситуацию, это добавление в settings.php

if (isset($_SERVER['HTTP_HOST'])) {
$domain = '.'. preg_replace('`^www.`', '', $_SERVER['HTTP_HOST']);
// Per RFC 2109, cookie domains must contain at least one dot other than the
// first. For hosts such as 'localhost', we don't set a cookie domain.
if (count(explode('.', $domain)) > 2) {
ini_set('session.cookie_domain', $domain);
}
}

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

Буду благодарен за любые подсказки и помощь, так как самостоятельно отладиться и более плотно поработать с исходниками пока не позволяет уровень знаний PHP.

Аватар пользователя J. Bravo J. Bravo 22 февраля 2008 в 1:36

Проблема все еще актуальна. Попробовал установить Drupal 6 - та же ситуация. Не удается залогиниться из-под MS IE если в качестве адреса указывается не localhost. Может ли такая проблема быть вызвана тем, что сайт вертится на PHP 5?

Аватар пользователя kiev1 kiev1 22 февраля 2008 в 5:58

может дело в том что вид у http://comp_name/drupal/ какой-то не доменный? там где-то точки не хватает и подчеркивание лишнее - в доменах не бывает - вот и не может броузер правильно куки сделать

Аватар пользователя J. Bravo J. Bravo 22 февраля 2008 в 18:11

Огромное спасибо!

Проблема оказалась именно в этом. Как только попробовал обратиться к серверу по IP-адресу все получилось. Сегодня же попрошу админов переименовать мою машину (у нас корпоративная система именования компьютеров такая - i_ivanov, p_petrov и т.п.)

Аватар пользователя McSeem McSeem 16 мая 2010 в 23:37

Да, действительно, именно в этом и есть загвоздочка... Я тоже долго на мог понять, почему только через IE не удается залогиниться. Спасибо за подсказку.