Авторизация на сайте и форуме phpBB одновременно

SlavikSG

Новичок
Авторизация на сайте и форуме phpBB одновременно

Сделал авторизацию на сайте. Именно авторизацию, а не регистрацию. Данные имени и пароля берутся из немного модифицированной таблицы пользователей общеизвестного и популярного форума phpBB v2.0.23 Даже сделал у себя защиту от перебора паролей используя те же поля в таблице форума, что использует и сам форум. То есть, теперь у меня, если кто-то нарвался на десятиминутный штраф по подбору паролей на форуме, будет иметь такой же штраф и на самом сайте. И наоборот.

И все вроде хорошо, но хотелось бы пойти дальше. Так сказать, сделать завершающий штрих. А именно, совместить авторизацию на сайте, с авторизацией на форуме. То есть, если человек авторизовался на сайте, то щелкнув по ссылке "Форум" чтобы он тут же стал авторизованным и на самом форуме.

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

P.S. Поиск юзал.
 

cDLEON

Онанист РНРСlub
юзай исходники phpbb или смотреть в них религия не позволяет?
 

SlavikSG

Новичок
Автор оригинала: rotoZOOM
Да ну ? Правда чтоли ?
Вот
И вот
И еще много много юзать гугл: интеграция авторизация phpBB integration autorization и т.д.
Спасибо на за ссылку!
Хотя в ней мало что понятно, но зато по ней я, как по наводке, нашел полностью рабочий программный код. (а "поиск" я делал по форуму, а не в инете)

В общем, если форум сайта будет расположен от центрального сайта по пути './forum/' то в нижеследующем коде даже исправлять ничего не нужно будет. Сразу все заработает, как есть.

Этот код - есть авторизация использующая сам форум
И собственно - это есть способ полностью избавляющий от все проблем. Так как, процесс авторизации, установки куков, стартов сессий и прочее и прочее, берет на себя сам форум. А в phpBB меня все более, чем устраивает.

<?php
ob_start();
define('IN_PHPBB', true);
$phpbb_root_path = './forum/'; // ну или какой там каталог с форумом
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX); // тут нужно использовать новую константу, т.к. за этой закреплена главная страница ФОРУМА
init_userprefs($userdata);
?>

<HTML>
<BODY bgcolor="FCFFCE">
<p align="center"> <font size="7" color="#FF0000">Это наш крутой сайт!!!</font> </p>
</p>


<?PHP
Print "<BR>";
Print "<BR>";
Print "<BR>";

if ($userdata['user_active']==1) // Если вы зарегистрированны то ваш ник опрделиться, иначе выдать форму регистрации
{
print "Привет тебе! ".$userdata[username];
// include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
}
else
{
print "АВТОРИЗАЦИЯ<BR>";
print" <form method='post' action='forum/login.php'><BR>
Логин: <input type='text' name='username' size='15' id=inp><BR>
Пароль: <input type='password' name='password' size='15' maxlength='32' id=inp><BR>
Запомнить: <input type='checkbox' name='autologin' id=inp><BR>
<input type='hidden' name='redirect' value='../untitled-1.php?$QUERY_STRING'>
<input type='submit' name='login' value='Войти' id=fix_w2><BR>
<a href='forum/profile.php?mode=register'>Регистрация</a><BR>
<a href='forum/profile.php?mode=sendpassword'>Забыли пароль или логин?</a> ";
ob_end_flush();
}

Print "<BR>";
Print "<BR>";
Print "Тра ля-ля! Тополя!<BR>";
Print "<BR>";
Print "Это продолжение нашего крутого сайта...";
?>

-~{}~ 26.02.08 14:07:

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

//Готовим кнопку Выход, для выхода с сайта.
$Knopka = "<form action='index.php' method='POST'>
<input type='submit' value='Выход' name='Vyhod'>
</form>";

//Если нажали кнопку "Выход"
If (IsSet($_POST['Vyhod']))
{
SetCookie("phpbb2mysql_data", "");
SetCookie("phpbb2mysql_sid", "");
Header("Location: {$_SERVER['PHP_SELF']}");
}
 
Сверху