Довольно частое явление, когда вы используете форум ipb, а движок сайта пишете сами. Естественно вы не хотите хранить инфу о юзерах в двух местах: для авторизации на сайте и форуме. Очевидно, лучше использовать внешнюю авторизацию для форума при авторизации на сайте.
К примеру, если вы хотите авторизоваться на форуме через свою форму на сайте. Примерно так это будет:
<form id="login" method="post" action="/forum/index.php?app=core&module=global§ion=login&do=process"> <input type="hidden" value="/forum/index.php?/forum/2-forum/" name="referer"> <div style="padding-bottom:20px;"> <span style="color:#000;">FORUM</span> </div> <div style="padding-bottom:20px; vertical-align:middle;"> <div style="float:left;">LOG</div> <div ><input maxlength="39" type="text" name="username" id="username" class="tbx_login" /></div> </div> <div style="padding-bottom:20px;"> <div style="float:left;">PAS</div> <div ><input maxlength="39" type="password" name="password" id="password" class="tbx_login" /></div> </div> <div style=" margin-right:70px; margin-top:50px;"> <div style=""> <input type="submit" id="login_send" name="login_send" value="ENTER" /> </div> </div> </form>
Ну, тут просто те же идентификаторы используются, что в оригинальной форме авторизации на форуме и идёт переадресация для выполнения на скрипт форума.
Бывает, что вы просто хотите проверить, верные ли данные ввёл юзер. Для этого можно использовать API форума:
//в $f - путь к форуму require_once($f.'/initdata.php'); require_once( $f.'/admin/sources/base/ipsController.php'); require_once( IPS_ROOT_PATH . '/sources/base/ipsRegistry.php' ); $registry = ipsRegistry::instance(); $registry->init(); require_once($f. '/admin/sources/loginauth/login_core.php' ); $login_core_ = new login_core(ipsRegistry::instance()); $login_core_->authLocal($login, null,$password);После этого проверяем переменную
$login_core_->return_code
. Если SUCCESS, то пользователь данные для авторизации ввёл верно.