Опубликовано: 21 апреля 201510 г Добрый день. Ищу специалиста по внешней авторизации для ipb 3.4.7. Нужно переписать скрипт авторизации на сайте под новую версию форума. Предложения в ЛС.
Опубликовано: 22 апреля 201510 г Автор Движок сайта?На сайте у вас стоит ссылка на вход форума. Самописный. Да.
Опубликовано: 22 апреля 201510 г Так какая авторизация у вас используется на сайте если ссылка ведет на авторизацию форума? Вы хотите использовать авторизацию на форуме через внешний модуль авторизации с сайта?
Опубликовано: 23 апреля 201510 г Автор Так какая авторизация у вас используется на сайте если ссылка ведет на авторизацию форума? Вы хотите использовать авторизацию на форуме через внешний модуль авторизации с сайта? Да. Чтобы можно было авторизироваться как на сайте так и на форуме. Аналогично выходить.
Опубликовано: 23 апреля 201510 г Встроенный модуль вешней авторизации форума предполагает только авторизацию на форуме из внешней базы данных. Если вам нужна двухсторонняя авторизация, как на форуме с базы сайта, так и на сайте с внешней базы данных форума то это другое дело, и требуется более подробное ТЗ и технические характеристики сайта.
Опубликовано: 23 апреля 201510 г Автор Встроенный модуль вешней авторизации форума предполагает только авторизацию на форуме из внешней базы данных. Если вам нужна двухсторонняя авторизация, как на форуме с базы сайта, так и на сайте с внешней базы данных форума то это другое дело, и требуется более подробное ТЗ и технические характеристики сайта. Что-то мы плохо друг друга понимаем ) Нет. Мне не нужна двухсторонняя авторизация. Мне нужно чтобы можно было авторизироваться на сайте без потребности заходить на форум. База юзеров одна - на форуме. Почему мне это нужно? На сайте как таковой базы юзеров нет, но есть возможность оставлять комменты под новостями и статьями. Так вот, для того чтобы оставить такой коммент и нужна авторизация.
Опубликовано: 23 апреля 201510 г Что-то мы плохо друг друга понимаемВнешняя авторизация для ipbМне нужно чтобы можно было авторизироваться на сайте без потребности заходить на форум. База юзеров одна - на форуме.А причем тогда внешняя авторизация ипб? В этом и проблема, что вы уже решили, что вам нужна внешняя авторизация для ipb, при этом не понимаете что это такое и как она работает. Да еще оказывается что не для форума, а для сайта.На сколько я понял, вам не внешняя авторизация нужна, а интеграция форума вместе с сайтом, откуда пользователь сможет авторизироватся на форуме непосредственно с сайта и писать комментарии от пользователя форума. Для этого используется апи форума которое подключается к сайту.Вам следует описать подробнее техническое задание, потому что с названием темы вы немного не угадали.
Опубликовано: 24 апреля 201510 г @siv1987,Нужно переписать скрипт авторизации на сайте под новую версию форума.Думаю, для начала достаточно взглянуть на код :)
Опубликовано: 24 апреля 201510 г Автор Вот как это была раньше. Интеграция с форумом 2.3.6 Вывод формы на сайте: <!-- Authorization --> <script type="text/javascript"> function focus_username( e ) { if ( e.value == "Имя пользователя" ) { e.value = ''; return false; } } function focus_password( e ) { if ( e.value == "------" ) { e.value = ''; return false; } } </script> <a name="login"></a> <?php if( $is_login == FALSE ) { ?> <form action="http://gta.com.ua/forum2/index.php" method="post"> <input type="hidden" name="act" value="Login" /> <input type="hidden" name="CODE" value="01" /> <input type="hidden" name="referer" value="<?=$my_url?>" /> <input type="hidden" name="CookieDate" value="1" /> <div style="padding-bottom:5px;"><input type="text" name="UserName" value="Имя пользователя" onFocus="focus_username( this );" /></div> <div style="padding-bottom:5px;"><input type="password" name="PassWord" value="------" onFocus="focus_password( this );" /></div> <div><input type='submit' value='Вход' class='button'></div> <div style="padding-top:6px;"><a target="_blank" class="login" href="http://gta.com.ua/forum2/index.php?act=Reg&CODE=10">Забыл пароль?</a></div> <div style="padding-top:3px;"><a target="_blank" class="login" href="http://gta.com.ua/forum2/index.php?act=reg"><b>Регистрация</b></a></div> </form> <?php } else { ?> <a class="login" href="/forum2/index.php?showuser=<?=$user_id?>"><b><?=$login?></a></b><br> <?php if( $avatar_url != '' ) { ?> <div style="text-align:center;"><a href="/forum2/index.php?showuser=<?=$user_id?>"><img src="<?=$avatar_url?>" border=0 /></a></div> <?php } ?> Постов: <b><?=$member_data['posts']?></b><br /> Поинтов: <b><?=$member_data['points']?></b> (<a href="http://gta.com.ua/forum2/index.php?showtopic=3621" title="Для чего нужны поинты">?</a>)<br /> <?php if( $member_data['bday_month'] > 0 && $member_data['bday_day'] > 0 && $member_data['bday_year'] > 0 ) {?> <?php } ?> Спасибо сказали: <b><?=$member_data['thanks_point']?></b> раз(а) <a class="readmore" href="/forum2/index.php?act=Login&CODE=03&k=<?=$ipb_md5_check?>&return=<?=$my_url?>">Выйти</a> <?php } ?> А это инклюдиться на всех страницах: // Проверка авторизации на форуме $is_login = FALSE; $self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : @getenv('PHP_SELF'); $self = rtrim( dirname($self), '/\\' ); $my_url = str_replace( $self, '', $_SERVER['REQUEST_URI'] ); $my_url = substr( $my_url, 1 ); $my_url = 'http://gta.com.ua/' . htmlspecialchars( $my_url ); $forum_link = mysql_connect( 'localhost', 'user', '******' ); mysql_select_db( 'gtacom_forum2', $forum_link ); if( isset( $_COOKIE['forum2member_id'] ) && isset( $_COOKIE['forum2pass_hash'] ) && isset( $_COOKIE['forum2session_id'] ) ) { $id = intval( $_COOKIE['forum2member_id'] ); $session_id = preg_replace( "/([^a-zA-Z0-9])/", "", $_COOKIE['forum2session_id'] ); $hash = preg_replace( "/([^a-zA-Z0-9])/", "", $_COOKIE['forum2pass_hash'] ); if( $session_id && $hash && $id > 0 ) { $r = mysql_query( "SELECT member_login_key, email, ibf_members.*, ibf_member_extra.* FROM ibf_members_converge, ibf_members, ibf_member_extra WHERE converge_id = '{$id}' AND member_login_key = '{$hash}' AND converge_id = ibf_members.id AND converge_id = ibf_member_extra.id LIMIT 1", $forum_link ); if( mysql_num_rows( $r ) == 1 ) { $member_data = mysql_fetch_array( $r ); $ses_r = mysql_query( "SELECT member_id FROM ibf_sessions WHERE id = '{$session_id}' AND ip_address = '{$_SERVER['REMOTE_ADDR']}'", $forum_link ); if( mysql_num_rows( $ses_r ) == 1 || mysql_num_rows( $ses_r ) == 0 ) { $ses = @mysql_fetch_array( $ses_r ); if( $ses['member_id'] == $id || mysql_num_rows( $ses_r ) == 0 ) { $is_login = TRUE; $user_id = $id; $login = $member_data['members_display_name']; $avatar_url = $member_data['avatar_location']; $member_data['age'] = date( "Y" ) - $member_data['bday_year'] - $member_data['bday_month'] / 12 - $member_data['bday_day'] / 360; $member_data['age'] = is_int( $member_data ) ? $member_data['age'] : intval( $member_data['age'] ) + 1; $ipb_md5_check = md5( $member_data['email'].'&'.$member_data['member_login_key'].'&'.$member_data['joined'] ); if( substr( $avatar_url, 0, strlen( 'http://' ) ) != 'http://' ) { $avatar_url = '/forum2/uploads/' . $avatar_url; } } } } } } Изменено 24 апреля 201510 г пользователем udagon
Опубликовано: 24 апреля 201510 г То, что у вас это интеграция сайта с форумом. В тройке весь выше описанный код реализуется при помощью апи форума, хотя и в двойке тоже можно было использовать апи чтобы не городить такие костыли (код на самом деле ужасный - захардкоденные данные подключения к бд, жестко заданный префикс таблиц в запросах). Минус в том, что при подключения апи инициализируется ядро форума со всеми данными, это дает возможность к более плотной интеграции, но также требует дополнительных ресурсов.
Опубликовано: 24 апреля 201510 г Обычный вывод информации о пользователе + форма авторизацииhttp://ipbskins.ru/forum/topic6401.html
Опубликовано: 24 апреля 201510 г Автор Сможете помочь за адекватную оплату? Изменено 24 апреля 201510 г пользователем udagon
Добрый день. Ищу специалиста по внешней авторизации для ipb 3.4.7. Нужно переписать скрипт авторизации на сайте под новую версию форума. Предложения в ЛС.