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

Внешняя авторизация для ipb 3.4.7

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

Добрый день. Ищу специалиста по внешней авторизации для ipb 3.4.7. Нужно переписать скрипт авторизации на сайте под новую версию форума. Предложения в ЛС.

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


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

Движок сайта?

На сайте у вас стоит ссылка на вход форума.

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


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

Движок сайта?

На сайте у вас стоит ссылка на вход форума.

 

Самописный. Да.

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


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

Так какая авторизация у вас используется на сайте если ссылка ведет на авторизацию форума? Вы хотите использовать авторизацию на форуме через внешний модуль авторизации с сайта?

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


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

Так какая авторизация у вас используется на сайте если ссылка ведет на авторизацию форума? Вы хотите использовать авторизацию на форуме через внешний модуль авторизации с сайта?

 

Да. Чтобы можно было авторизироваться как на сайте так и на форуме. Аналогично выходить.

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


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

Встроенный модуль вешней авторизации форума предполагает только авторизацию на форуме из внешней базы данных. Если вам нужна двухсторонняя авторизация, как на форуме с базы сайта, так и на сайте с внешней базы данных форума то это другое дело, и требуется более подробное ТЗ и технические характеристики сайта.

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


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

Встроенный модуль вешней авторизации форума предполагает только авторизацию на форуме из внешней базы данных. Если вам нужна двухсторонняя авторизация, как на форуме с базы сайта, так и на сайте с внешней базы данных форума то это другое дело, и требуется более подробное ТЗ и технические характеристики сайта.

 

Что-то мы плохо друг друга понимаем )

 

Нет. Мне не нужна двухсторонняя авторизация. Мне нужно чтобы можно было авторизироваться на сайте без потребности заходить на форум. База юзеров одна - на форуме.

 

Почему мне это нужно? На сайте как таковой базы юзеров нет, но есть возможность оставлять комменты под новостями и статьями. Так вот, для того чтобы оставить такой коммент и нужна авторизация.

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


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

Что-то мы плохо друг друга понимаем

Внешняя авторизация для ipb

Мне нужно чтобы можно было авторизироваться на сайте без потребности заходить на форум. База юзеров одна - на форуме.

А причем тогда внешняя авторизация ипб?

В этом и проблема, что вы уже решили, что вам нужна внешняя авторизация для ipb, при этом не понимаете что это такое и как она работает. Да еще оказывается что не для форума, а для сайта.

На сколько я понял, вам не внешняя авторизация нужна, а интеграция форума вместе с сайтом, откуда пользователь сможет авторизироватся на форуме непосредственно с сайта и писать комментарии от пользователя форума. Для этого используется апи форума которое подключается к сайту.

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

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


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

@siv1987,

Нужно переписать скрипт авторизации на сайте под новую версию форума.
Думаю, для начала достаточно взглянуть на код :)

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


Ссылка на сообщение
04/24/15 08:56 (изменено)

Вот как это была раньше. Интеграция с форумом 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;
				}
			}
		}
	}
}
}

Изменено пользователем udagon

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


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

То, что у вас это интеграция сайта с форумом. В тройке весь выше описанный код реализуется при помощью апи форума, хотя и в двойке тоже можно было использовать апи чтобы не городить такие костыли (код на самом деле ужасный - захардкоденные данные подключения к бд, жестко заданный префикс таблиц в запросах). Минус в том, что при подключения апи инициализируется ядро форума со всеми данными, это дает возможность к более плотной интеграции, но также требует дополнительных ресурсов.

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


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

Обычный вывод информации о пользователе + форма авторизации

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

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


Ссылка на сообщение
04/24/15 12:51 (изменено)

Сможете помочь за адекватную оплату?

Изменено пользователем udagon

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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