Интеграция сайта с Ipb 2.1.3

Статус
Закрыто для дальнейших ответов.

RUSH

Читер
Регистрация
26.01.2006
Сообщения
230
Мой вариант интеграции сайта на PHP с форумом IPB 2.1.3 (Должен работать и с 2.1.4):

Кусок кода из файла mainfile.php - Скрипт проверки COOKIE (Должен загружаться на каждой странице сайта):

Код:
/* Если у пользователя в COOKIE прописан параметр `id`, то запускаем проверку на совпадение пароля и идентификатора */

if(!empty($_COOKIE['member_id'])) {
require_once("includes/check.php");
if($check_ok != 1) {
echo "<b>Доступ запрещен!<b>\n";
include("includes/redir_index.php");
exit;
}
}
Файл /includes/redir_index.php - Для перенаправления пользователя на главную страницу с задержкой в 2 секунды.

Код:
<script language="javascript" type="text/javascript">
<!--
window.setTimeout("window.location.href = '/'", 2000); 
//-->
</script>
Файл /includes/check.php - Основной файл интеграции. Включает в себя проверку на совпадение id, имени пользователя и пароля (Защита от хакеров). При удачной проверке вводит новые переменныес данными пользователя.

Код:
<?php

$user_id = $_COOKIE['member_id'];
$user_password = $_COOKIE['pass_hash'];

$check_query = "SELECT * FROM ".$fp."members WHERE id = ".$user_id." AND member_login_key = '$user_password'";
$check = mysql_query($check_query) or die("<b>Ошибка подключения к базе данных!</b>");

if ($check) { $check_ok = 1; } else { $check_ok = 0; }

if ($check_ok == 1) {

$user_data = mysql_fetch_array($check);

$user_name = $user_data['name'];
$user_email = $user_data['email'];
$user_joined = $user_data['joined'];
$user_login_key = $user_data['member_login_key'];
$user_align = $user_data['mgroup'];

$md5_key = md5($user_email.'&'.$user_login_key.'&'.$user_joined);

}

?>
Примечание: Переменная $fp - это префиксы таблиц форума.

А теперь - форма для авторизации на сайте:

Код:
<?php if (isset($check_ok) || $check_ok == 1) { ?>
<table border=0><tbody><tr><td align=center>Да пребудет с тобой сила, <B><?php echo $user_name; ?>!</B> <BR>[ <a href="forum/index.php?act=Login&CODE=03&k=<?php echo $md5_key; ?>">Выход</a> | <a href="forum/index.php?act=UserCP&CODE=00">Профиль</a> ]</td></tr></tbody></table>
<?php } else { ?>
<form action="forum/index.php?act=Login&CODE=01" method="post" name="LOGIN"><TABlE border=0><TBODY>
<TR><TD ColSpan=2>Логин | <a href="forum/index.php?act=Reg&CODE=00">Регистрация</a></TD></TR>
<TR><TD ColSpan=2><input type="text" size="25" maxlength="64" name="UserName"></TD><TR>
<TR><TD ColSpan=2>Пароль | <a href="forum/index.php?act=Reg&CODE=10">Забыли?</TD></TR>
<TR><TD>
<input type="password" size="15" name="PassWord"></TD><TD><INPUT TYPE="submit" name="submit" value="Войти">
<input type="hidden" name="CookieDate" value="1">
<input type="hidden" name="Privacy" value="0">
</TD></TR>
</TBODY></TABLE></FORM>
<?php } ?>
Обсуждение этого хака только здесь, и нигде иначе.
Выдвигаем свои предложения, критику и т.д.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ