Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
zheka1980

Не проходит авторизация, форум установлен локально, на DENWER

Рекомендованные сообщения

Господа, установил на локальный сервер (последняя сборка DENWER, apache и все прочее - последние версии) форум 3.4.6. Установка прошла без сучка и задоринки, сам форум отображается, но - при попытке авторизоваться вначале пишет, что авторизация прошла успешно, сейчас вы перейдете к форумам автоматически, далее переход на главную - а там пустые формы ввода имени и пароля. Как будто я не логинился. Никаких ошибок не выдает.

 

С чем это может быть связано?

Поделиться сообщением


Ссылка на сообщение

Уместно привести логи ошибок денвера и системы.

Поделиться сообщением


Ссылка на сообщение

Вот логи Апача при запуске

[sat Nov 01 17:32:33 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

[sat Nov 01 17:32:33 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/ext\\php_sockets.dll' - \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.\r\n in Unknown on line 0

[sat Nov 01 17:32:37 2014] [notice] Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.2.12 configured -- resuming normal operations

[sat Nov 01 17:32:37 2014] [notice] Server built: Apr 20 2012 18:42:30

[sat Nov 01 17:32:38 2014] [notice] Parent: Created child process 45884

[sat Nov 01 17:32:38 2014] [notice] Disabled use of AcceptEx() WinSock2 API

[sat Nov 01 17:32:38 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

[sat Nov 01 17:32:39 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/ext\\php_sockets.dll' - \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.\r\n in Unknown on line 0

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Child process is running

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Acquired the start mutex.

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Starting 25 worker threads.

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Listening on port 443.

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Listening on port 8648.

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Listening on port 443.

[sat Nov 01 17:32:39 2014] [notice] Child 45884: Listening on port 80.

А что такое логи системы?

Поделиться сообщением


Ссылка на сообщение

Своим вопросом вы помогли мне выбрать направление поиска.

Я раскомментировал php_sockets.dll, проблема осталась

ЛОги теперь такие

[sat Nov 01 18:59:23 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

[sat Nov 01 18:59:24 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

[sat Nov 01 18:59:24 2014] [notice] Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 configured -- resuming normal operations

[sat Nov 01 18:59:24 2014] [notice] Server built: Apr 20 2012 18:42:30

[sat Nov 01 18:59:24 2014] [notice] Parent: Created child process 3424

[sat Nov 01 18:59:24 2014] [notice] Disabled use of AcceptEx() WinSock2 API

[sat Nov 01 18:59:24 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

[sat Nov 01 18:59:24 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Child process is running

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Acquired the start mutex.

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Starting 25 worker threads.

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Listening on port 443.

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Listening on port 8648.

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Listening on port 443.

[sat Nov 01 18:59:25 2014] [notice] Child 3424: Listening on port 80.

[sat Nov 01 18:59:37 2014] [error] [client 127.0.0.1] File does not exist: Z:/home/kulinar.ru/www/ajaxupload.3.5.js, referer: http://kulinar.ru/

Поделиться сообщением


Ссылка на сообщение

ЧТо хочу сказать - запустил Google Chrome - проблема исчезла.

И как оказалось - проблема не в самой авторизации, а в отображении таковой - я авторизовался в Google Chrome, и тут же в IE открыл форум - пишет не авторизован

Есть у меня код на PHP для того чтобы использовать авторизацию не только на форуме, но и на сайте:

Error_Reporting(E_ALL & ~E_NOTICE);

//путь до форума (укажите свой)
$path_to_forum = '../forum_ipb/';

require_once( $path_to_forum . 'initdata.php' );

require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();

$id = IPSCookie::get('member_id');

if ($id == 0) {
echo 'не авторизирован';
} else {
$member = IPSMember::load( $id );
//имя пользователя
echo $member['name'];
//фото пользователя
echo IPSMember::buildProfilePhoto( $member, 'full' );
//аватарка пользователя
echo IPSMember::buildAvatar( $member );
}

 

Так вот этот код тоже пишет, что никто не авторизован.

 

Кукисы в IE включены 100%

Поделиться сообщением


Ссылка на сообщение

Сессия может проверятся по юзер агенту браузера (соответствующая настройка в ац). Если авторизируетесь в одном браузере в другом она слетит. Если авторизация вообще не работает ни в одном браузере, в первую очередь нужно смотреть работу cookies - получает ли их браузер. Если нет, смотрим настройки cookies в ац, для начала очистить все настройки, потом попробовать прописать домен как написано в описании к настройке "домен cookies".

 

Снова этот унылый г-код. Если вы его взяли с этого форума надо было прочитать всю тему. Не надо брать member_id из кукисов и загружать пользователя по нему, форум сам все это сделает $member = $ipbRegistry->member()->fetchMemberData(); Ид в куки можно подсунуть любой, а вы получается загружаете пользователя без никакой валидации.

Поделиться сообщением


Ссылка на сообщение

Дополню.

$id = IPSCookie::get('member_id');

Если при авторизации не ставить галку "Запомнить меня", то данная кука, равно, как и pass_hash, не записывается.

Поделиться сообщением


Ссылка на сообщение

У меня в юзер агенте для Explorer записано \(compatible; MSIE[ /]([0-9.]{1,10}) Это что значит?

С кукисами какая-то непонятка. Где их смотреть? У меня куки были здесь C:\Users\Admin\AppData\Local\Microsoft\Windows\Temporary Internet Files (хотя если погуглить, то пишут что должно быть в папке AppData\Microsoft\Windows\Cookies) но для форума кукисов там нет.

 

Если вы его взяли с этого форума надо было прочитать всю тему. Не надо брать member_id из кукисов и загружать пользователя по нему, форум сам все это сделает $member = $ipbRegistry->member()->fetchMemberData();

Взял с какого-то сайта, не помню откуда.

А где почитать, как сделать ссылку для logout, форму для Login для размещения на сайте?

Поделиться сообщением


Ссылка на сообщение
Где их смотреть?

В браузере. Вам же написали, что не нужно их использовать для определения авторизован юзер или нет.

А где почитать, как сделать ссылку для logout, форму для Login для размещения на сайте?
Откройте исходный код и посмотрите ссылки и формы.

 

http://ipbskins.ru/forum/topic6401.html

http://ipbskins.ru/forum/topic13198.html

Поделиться сообщением


Ссылка на сообщение

Спасибо за ссылки, попробую.

Поделиться сообщением


Ссылка на сообщение

Далеко я от компа с моим проектом, но не терпится узнать: код, что я использую и код, который есть по ссылке что вы дали отлиючатся.

В том, что вы предложили есть такая штука $member = $ipbMemberLoginApi->getMember(); Равноценен ли полученный при этом $member тому, что получается при $member = IPSMember::load( $id );

Я к чему спрашиваю - смогу ли я так же как и в приведенном мной коде, подгружать аватарку и фото?

Поделиться сообщением


Ссылка на сообщение

Explorer вообще не стоит юзать как браузер. Во всех современных браузерах есть средства для просмотра cookies.

 

У меня в юзер агенте для Explorer записано \(compatible; MSIE[ /]([0-9.]{1,10}) Это что значит?

Ничего. Там вам делать особо нечего.

 

Я к чему спрашиваю - смогу ли я так же как и в приведенном мной коде, подгружать аватарку и фото?

Сможете.

Поделиться сообщением


Ссылка на сообщение

Своим вопросом вы помогли мне выбрать направление поиска.

Я не задавал вопрос.

Поделиться сообщением


Ссылка на сообщение

Сделал вот так:

$path_to_forum = '../forum_ipb/';
require_once( $path_to_forum . 'initdata.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );

$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();

$member = $ipbRegistry->member()->fetchMemberData();

$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();

$member = $ipbRegistry->member()->fetchMemberData();

if ($member['name'])
{
//имя пользователя
echo $member['name'];
echo '<br>';
//фото пользователя
echo IPSMember::buildProfilePhoto( $member, 'full' );
//аватарка пользователя
echo '<br>';
echo IPSMember::buildAvatar( $member );
}
else echo 'не авторизован';

 

Все нормально, показывает, что залогинен админ, аватарку рисует. На форуме делаю логаут. Но на сайте все равно показывает, что админ онлайн... Я даже время на час вперед перевел - та же песня.

Логиню другого пользователя, на сайте онлайн все равно остается админ.

Неужели нужно делать кнопку логаут и на самом сайте?

Поделиться сообщением


Ссылка на сообщение

$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();

$member = $ipbRegistry->member()->fetchMemberData();

$ipbRegistry    = ipsRegistry::instance();
$ipbRegistry->init();

$member = $ipbRegistry->member()->fetchMemberData();

Зачем этот код повторяется два раза?

 

Для проверки авторизированого пользователя нужно использовать не 'name' а 'member_id'. У гостя тоже есть имя - Guest, а вот ид у него нету.

Если сайт и форум на разных поддоменах, в настройках форума нужно задать основной домен с точкой впереди, например - .site.ru Чтобы cookies установленные на домене верхнего уровня были доступны на другие поддомены.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...