Делаю браузную игру акваферма и разработал скрипт для авторизации на своем сайте и одновременно авторизация на форуме. Предлагаю свой скрипт.
Скрипт протестировал на своем форуме phpBB 3.2.2
На Вашем сайте CMS должна не конфликтовать с движком форума phpBB3. Лучше эту страницу авторизации сделать без применения CMS сайта.
Код: Выделить всё
<h1>Проверка логина и пароля на Форуме Игры</h1>
<?php
// Эта страница авторизации на форуме
define('IN_PHPBB', true);
$phpbb_root_path='/forum/'; // Напишите свой путь к форуму
$phpEx = substr(strrchr(__FILE__, '.'), 1,3);
// Подключение функций и библиотек форума
include("/forum/config.php");
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
//Получение переменных методом POST
$username = utf8_normalize_nfc(request_var('username', '', true));
$password = utf8_normalize_nfc(request_var('password', '', true));
//Проверка и защита передаваемых данных
$username = addslashes(strip_tags($username));
$password = addslashes(strip_tags($password));
$username = $db->sql_escape($username);
$password = $db->sql_escape($password);
// Пароль и логин не должен быть пустым
if( !$username OR !$password ) echo "Пожалуйста введите имя и пароль<br />";
else
{
// Подготовка username к поиску в базе данных форму
$username=utf8_clean_string($username);
if (empty($username))
{
echo "<p><b>Ошибка: utf8_clean_string</b><p/> ";
exit(0);
}
//Ищем username
$query = "SELECT * FROM ".$table_prefix."users WHERE username_clean='". $db->sql_escape($username)."'";
$find = $db->sql_query($query);
if(!$find_row=$db->sql_fetchrow($find))
{
echo "Такое имя не найдено в базе данных форума<br />";
}
else
{
echo "Такое имя есть в базе данных форума. <br/>";
// Проверяем пароль
$password_hash = $find_row['user_password'];
$check = phpbb_check_hash($password, $password_hash);
if( $check == FALSE ) echo "Проверку пароль не прошел!";
if( $check == TRUE ) echo "Проверку пароль прошел!";
}
}
?>
<Ваш код сайта продолжение>
С уважением,
Василий Краснобородько