Перейти к контенту

Пароли в IPB 2.1.x, авторизация извне.


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

Завтра выложу архив, разберешься.

 

Спасибо, жду.

я выложил мод в архив, если примут, скажу ссылку... Или можешь личкой выслать свой email я тебе перешлю файлик.

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 50
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

  • 2 недели спустя...
SiDChik, у меня код на основе Вашего делает выход на форуме и редеректит на сайт, все нормально. Но вот на сайте я постоянно вишу под своим ником, даже если с форума вышел (имеется ввиду нажал кнопку выхода)
Ссылка на комментарий
Поделиться на других сайтах

Вообще тема поддержки тут:

Единая аутентификация с сайтом

 

А вообще по какому принципу у вас проверяется факт вошёл не вошёл? Пробовали ли вы обновлять страницу, может быть кэш?

Ссылка на комментарий
Поделиться на других сайтах

Хочется сразу же скзать, что это на тестовой страничке и делалось ночью, так что ... ;-)

 

Вот код:

<?php

@require "ляляля/init.php";
require ROOT_PATH . "ips_kernel/class_db_mysql.php";
require ROOT_PATH . "conf_global.php";
require_once ROOT_PATH . "sources/ipsclass.php";
require_once ROOT_PATH . "sources/classes/class_session.php";

$ipsclass = new ipsclass();
$ipsclass->vars = $INFO;

$ipsclass->init_db_connection();

$ipsclass->sess =  new session();
$ipsclass->sess->ipsclass =& $ipsclass;

$ipsclass->member = $ipsclass->sess->authorise();
$ipsclass->my_session = $ipsclass->sess->session_id;

$member = $ipsclass->member;

if ($member['id'] != 0) {

printf( "\t\t\t\t\t\t\t\t\t<div id=\"hello\">Привет, %s", $member['members_display_name'] );
printf( "\n\t\t\t\t\t\t\t\t\t<div id=\"exit\"><a href=\"%s/index.php?act=Login&CODE=03&k=%s&return=http://%s%s\">Выйти?</a></div></div>\n", $ipsclass->vars['board_url'], $ipsclass->return_md5_check(), $_SERVER[HTTP_HOST], $_SERVER[REDIRECT_URL] );

} else {

print( "\t\t\t\t\t\t\t\t\t<form action=\"\" method=\"post\" id=\"login-form\">" );
print( "\n\t\t\t\t\t\t\t\t\t<div><label class=\"login\" for=\"ipb_nick\">Логин:</label> <input type=\"text\" id=\"ipb_nick\" name=\"ipb_nick\" /></div>" );
print( "\n\t\t\t\t\t\t\t\t\t<div><label class=\"login\" for=\"ipb_pass\">Пароль:</label><input type=\"password\" id=\"ipb_pass\" name=\"ipb_pass\" class=\"input_password\" /></div>" );
printf( "\n\t\t\t\t\t\t\t\t\t<div><input type=\"image\" id=\"enter_button\" src=\"%simg/enter.gif\" alt=\"Войти\" /> ", url );
print( "\n\t\t\t\t\t\t\t\t\t<a href=\"http://forum.morgenshtern.com/index.php?act=Reg&CODE=10\" id=\"forget\">Забыли пароль?</a></div>" );
print( "\n\t\t\t\t\t\t\t\t\t</form>\n" );

}

?>

 

@ поставил в первом reqiure чтобы небыло предупреждения о необъявленной константе, хотя все равно что-то тут не так. Так вот, нажимая на "выход" пользователь переадресуется обратно на сайт, как и должно быть, и выходит на форуме (как будто бы сам нажал там кнопку выхода) - так тоже должно быть, но на сайте он попрежнему залогинен.

 

В админке форума стоит разрешение передавать куки внутри поддоменов (форум на forum.ляляля а страница на test.ляляля)

Ссылка на комментарий
Поделиться на других сайтах

Эта авторизация 1 в 1 с форумом, так что я предпологаю что страничка сайта у вас находится в кеше, попробуйте обновить страницу после выхода с сайта, либо перезайти на сайт.
Ссылка на комментарий
Поделиться на других сайтах

Я взял код который вы разместили здесь, проверил у себя, ошибок нет.
Ссылка на комментарий
Поделиться на других сайтах

Хех, я уже ничего не понимаю. Т.к. из ИЕ я все время залогинен на сайте, а в Лисе никогда :D

 

ЗЫ: смотрю Вы зарегистрировались у меня на форуме, потестировать? Дать линк, где у меня стоит этот код? Т.к. на главной стоит другой код.

Изменено пользователем Aliance spb
Ссылка на комментарий
Поделиться на других сайтах

http://test.morgenshtern.com/test/test.php

 

<?php

...
error_reporting(E_ALL);

...

require ".../forum.morgenshtern.com/init.php";
require ROOT_PATH . "ips_kernel/class_db_mysql.php";
require ROOT_PATH . "conf_global.php";
require_once ROOT_PATH . "sources/ipsclass.php";
require_once ROOT_PATH . "sources/classes/class_session.php";

$ipsclass = new ipsclass();
$ipsclass->vars = $INFO;

$ipsclass->init_db_connection();

$ipsclass->sess =  new session();
$ipsclass->sess->ipsclass =& $ipsclass;

$ipsclass->member = $ipsclass->sess->authorise();
$ipsclass->my_session = $ipsclass->sess->session_id;

$member = $ipsclass->member;

if ($member['id'] != 0) {

printf( "\t\t\t\t\t\t\t\t\t<div id=\"hello\">Привет, %s", $member['members_display_name'] );
printf( "\n\t\t\t\t\t\t\t\t\t<div id=\"exit\"><a href=\"%s/index.php?act=Login&CODE=03&k=%s&return=http://%s%s\">Выйти?</a></div></div>\n", $ipsclass->vars['board_url'], $ipsclass->return_md5_check(), $_SERVER[HTTP_HOST], $_SERVER[REDIRECT_URL] );

} else {

print( "\t\t\t\t\t\t\t\t\t<form action=\"\" method=\"post\" id=\"login-form\">" );
print( "\n\t\t\t\t\t\t\t\t\t<div><label class=\"login\" for=\"ipb_nick\">Логин:</label> <input type=\"text\" id=\"ipb_nick\" name=\"ipb_nick\" /></div>" );
print( "\n\t\t\t\t\t\t\t\t\t<div><label class=\"login\" for=\"ipb_pass\">Пароль:</label><input type=\"password\" id=\"ipb_pass\" name=\"ipb_pass\" class=\"input_password\" /></div>" );
printf( "\n\t\t\t\t\t\t\t\t\t<div><input type=\"image\" id=\"enter_button\" src=\"%simg/enter.gif\" alt=\"Войти\" /> ", url );
print( "\n\t\t\t\t\t\t\t\t\t<a href=\"http://forum.morgenshtern.com/index.php?act=Reg&CODE=10\" id=\"forget\">Забыли пароль?</a></div>" );
print( "\n\t\t\t\t\t\t\t\t\t</form>\n" );

}

?>

Ссылка на комментарий
Поделиться на других сайтах

1. У формы Action не пописан

2. Форум и твой тест, находится на разных доменах... Настрой domain у куки в настройках форума возможно в этом проблема.

 

domain в твоём случаи morgenshtern.com

 

Не реклама.....

Ссылка на комментарий
Поделиться на других сайтах

1. У формы Action не пописан

2. Форум и твой тест, находится на разных доменах... Настрой domain у куки в настройках форума возможно в этом проблема.

 

domain в твоём случаи morgenshtern.com

1) а какой он должен быть? и метод пост?

 

2) это у меня давно прописано, проверяел - работает. Тоесть куки $_COOKIE['member_id'] выдают ID каждого пользователя правильно. Вот правда если я вылогинился, то он по прежнему его выдает.

 

Проверил в админке только что еще раз:

 

Cookie домен

Совет: используйте .your-domain.ru для глобальных cookies.

.morgenshtern.com

 

Cookie префикс

Позволяет безопасно держать несколько форумов на одном хосте.

ibf2_

 

Третье поле пустое.

 

ЗЫ: а как исправить-то предупреждение?

Изменено пользователем Aliance spb
Ссылка на комментарий
Поделиться на других сайтах

есть токая команда в PHP(отключение предупреждений и т.д.):

Error_Reporting(E_ALL & ~E_NOTICE);

 

В action формы:

{forumurl}/index.php?act=Login&CODE=01

 

 

.morgenshtern.com

Тут возможно передняя точка лишня.... возможно опечатка... Честно говоря не знаю :D

 

вопрос такой: http://www.ibresource.ru/db/821/ Качали ли вы архив по этой ссылке? Работает ли он у вас?

Ссылка на комментарий
Поделиться на других сайтах

Прощу, не нужно считать меня новичком :D Про отключение предупреждений я знаю, но тестирование всегда провожу с включением всех ошибок и предупреждений, чтобы их исправить!

 

На счет action формы: тогда поидеи нужно поменять и name у input`ов?

 

На счет точки - в самом IBP написано, что она нужна. Да и куки-то работают. Тут ошибка, я так понимаю, в сессии.

 

Скачивал данный мод, но кодом пользовался только как пособием, готовый код просто не испытывал.

Изменено пользователем Aliance spb
Ссылка на комментарий
Поделиться на других сайтах

На самом деле форум сессии не использует, а просто использует понятие слова сессии :D) т.е. там всё через Cookie...

 

Пр input: имена нужно использвать такие же как и в моём примере, да и на форуме. Учитывая даже название кнопки!

Ссылка на комментарий
Поделиться на других сайтах

Префикс попробуйте убрать.

Хех, спасибо. Помогло, правда траблы все равно остались…

 

На сайте статус (вошел или нет) отображается крайне криво.

 

Тоесть с сайта ввожу данные - на форуме вхожу, но редирект на сайт обратно НЕ делаю =( Хотя исправления, которые идут в файле ридми к моду сделал. Хост поставил так:

		if ( ! (strpos($tmp['host'], 'test.morgenshtern.com') === false) ) {

 

Если вхожу на форуме, затем открываю страницу http://test.morgenshtern.com - то никаких измененийпервое время не вижу, через некоторое время появляется, мол, "привет альянс спб". Как объяснить? Не нужно только говорить о кешировании - обновлял я ф5.

 

ЗЫ: теперь страничка для тестирования: http://test.morgenshtern.com/

Ссылка на комментарий
Поделиться на других сайтах

Если что-то не работает или работает не так, то надо смотреть что приходит в функцию авторизации, т.е. данные.

 

Пока наблюдаю Fatal error: Call to a member function on a non-object in /hsphere/local/home/morgensh/forum.morgenshtern.com/sources/ipsclass.php on line 441

Ссылка на комментарий
Поделиться на других сайтах

Это ошибка - совсем от другого модуля! На нее нимания не обращайте! Смотрит только на вверх справа, там где форма авторизации.

 

Не сильно понял, что "надо сомтреть"... Поясните.

Ссылка на комментарий
Поделиться на других сайтах

Array

(

[member_id] => 0

[pass_hash] => 0

[anonlogin] => -1

[forum_read] => a:21:{i:11;i:1148904977;i:3;i:1159388185;i:12;i:1149863102;i:27;i:1142247697;i:6

;i:1165236715;i:23;i:1159393012;i:17;i:1159389665;i:9;i:1159389078;i:25;i:1149863

328;i:28;i:1140178600;i:8;i:1149764600;i:19;i:1140193583;i:29;i:1148375107;i:14;i

:1149249185;i:5;i:1149163198;i:10;i:1146048725;i:15;i:1149362916;i:13;i:114347469

8;i:16;i:1149848091;i:4;i:1143804659;i:2;i:1148394631;}

[ibf2_forum_read] => a:33:{i:15;i:1164013073;i:9;i:1165009485;i:17;i:1165181401;i:6;i:1165146058;i:5;

i:1164398244;i:25;i:1164660122;i:23;i:1165181301;i:32;i:1165079716;i:39;i:1164501

529;i:41;i:1163713912;i:3;i:1164144226;i:49;i:1163361715;i:14;i:1160499711;i:35;i

:1164725743;i:37;i:1163355946;i:47;i:1164997956;i:13;i:1164361969;i:16;i:11650927

31;i:10;i:1162297735;i:30;i:1162682179;i:12;i:1164042532;i:51;i:1163357426;i:50;i

:1164721387;i:4;i:1164398331;i:22;i:1164399451;i:26;i:1164399460;i:2;i:1164405122

;i:43;i:1164501515;i:40;i:1164501535;i:52;i:1165100735;i:8;i:1165000016;i:33;i:11

65012429;i:34;i:1165012434;}

[ibf2_anonlogin] => -1

[ibf2_open_qr] => 1

[ibf2_ipb-myass-div] => 411,141

[ibf2_bbmode] => 0

[ibf2_member_id] => 1

[ibf2_pass_hash] => тут_хэш

)

Ссылка на комментарий
Поделиться на других сайтах

Это я так понимаю на странице поддомена test?

 

Если так то обратите внимание что есть в куках информация с префиксом ibf2_ и без. Причем одна заполнена, другая нет.

Ссылка на комментарий
Поделиться на других сайтах

Да, я уже сам увидил. А что делать?

И вообще, в коде-то прямого обращения к кукам нет, все делается через функции IPB...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

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

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.