Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2] Проверка логина и пароля форума для интеграции форума с сайтом

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

[3.2] Проверка логина и пароля форума для интеграции форума с сайтом

Сообщение Василий72 »

Здравствуйте!

Делаю браузную игру акваферма и разработал скрипт для авторизации на своем сайте и одновременно авторизация на форуме. Предлагаю свой скрипт.
Скрипт протестировал на своем форуме 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 "Проверку пароль прошел!";
    }
}
    
?>
<Ваш код сайта продолжение>
Не судите строго.

С уважением,
Василий Краснобородько
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Sheer »

Зачем же велосипед-то опять придумывать? [FAQ] Интеграция входа на конференцию с сайтом
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Перенесено из форума Поддержка phpBB 3.2.x в форум Для авторов 02.02.2018 22:20 модератором Sheer

Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Василий72 »

Добрый вечер Sheer!
Конечно я перерыл весь интернет и не нашел работающего скрипта без ошибок и предупреждений.
А Вы этот скрипт запускали на phpBB 3.2?
Ваш скрипт не работает.
Ряд функций в нем устарело.
Например.
$_POST отключена
request_var('username', '', true); не работает для русских шрифтов в кодировке UTF8. Получаются одни вопросительные знаки. Это только для англоязычных пользователей. Мне пришлось найти функцию, которая считывает UTF8.
Поэтому, чтобы люди не тратили время на разбирательство с новым функционалом phpBB3 я выложил свой работающий скрипт.
У меня есть и скрипт регистрации с внешнего сайта.
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Sheer »

Василий72 писал(а): 02.02.2018 22:46Ряд функций в нем устарело.
Так надо было просто привести его в соответствие с актуальной версией.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Василий72 »

Проще сделать сразу все по новому и понятнее. А в той теме уже трудно ориентироваться. Тем более что там 49 страниц.
Сейчас, с моей точки зрения, весь код понятен даже рыбоводу. Вставляй на сайт свой и пользуйся.
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Аватара пользователя
Beer
phpBB 2.0.9
Сообщения: 708
Стаж: 12 лет 8 месяцев
Благодарил (а): 193 раза
Поблагодарили: 69 раз

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Beer »

Василий72, объясни для танкистов как реализовать - у меня Joomla! и форум на поддомене.
Сконвертировался с SMF2 в phpBB3.2
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Sheer »

Василий72 писал(а): 02.02.2018 23:15весь код понятен даже рыбоводу.
Ну да...вам понятно это?
Василий72 писал(а): 02.02.2018 21:04SELECT *
Мне нет. Зачем делать полную выборку, если из таблицы нужно взять только username_clean
Да и кстати, после выполнения SQL-запроса, результаты нужно очищать

Код: Выделить всё

$db->sql_freeresult($find);
не говоря уже о том, что вместо sql_fetchrow здесь уместно sql_fetchfield

Отправлено спустя 2 минуты 43 секунды:
Beer писал(а): 02.02.2018 23:20 у меня Joomla!
Это уже из другой оперы - общая авторизация на CMS и на форуме. Здесь просто вход на форум со страницы сайта.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Beer
phpBB 2.0.9
Сообщения: 708
Стаж: 12 лет 8 месяцев
Благодарил (а): 193 раза
Поблагодарили: 69 раз

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Beer »

Так в первом же сообщении сказано: для авторизации на своем сайте и одновременно авторизация на форуме
Т.е. не просто форма на сайте как я понял.
Сконвертировался с SMF2 в phpBB3.2
Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Василий72 »

Подправил код. посмотрите. Я phpBB3 только 1 неделю изучаю, не во все функции еще вник.
Марофет навел. Три Ваших замечания подправил и протестировал на форуме. Посмотрите.

Код: Выделить всё

<h1>Проверка логина и пароля на Форуме Игры</h1>

<?php
define('IN_PHPBB', true); 
$phpbb_root_path='/forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1,3);

// Подключение функций и библиотек форума
include($phpbb_root_path . 'config.' . $phpEx);
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 user_password FROM ".$table_prefix."users WHERE username_clean='". $db->sql_escape($username)."'";
	$find = $db->sql_query($query);
    		
	if(!$find_row=$db->sql_fetchfield('user_password'))
	{
		echo "Такое имя не найдено в базе данных форума<br />";
	}
	else	
	{
		echo "Такое имя есть в базе данных форума. <br/>";
    		
		// Проверяем пароль
		$password_hash = $find_row;
		
    	$check = phpbb_check_hash($password, $password_hash);
		
		if( $check == FALSE ) 	echo "Проверку пароль не прошел!";
		if( $check == TRUE  ) 	echo "Проверку пароль прошел!";
    }
    $db->sql_freeresult($find);
}
    
?>
<теги Вашего сайта>
Последний раз редактировалось Mr. Anderson 02.02.2018 23:56, всего редактировалось 2 раза.
Причина: Порнография в BBCode
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Sheer »

Василий72 писал(а): 02.02.2018 22:46Ваш скрипт не работает.
Не поленился, проверил на локальном компьютере. Таки работает. Без правок. И с никами на кириллице тоже. Без проблем. А в вашем скрипте никакой авторизации не нашел.

Отправлено спустя 30 минут 30 секунд:
Beer писал(а): 02.02.2018 23:46для авторизации на своем сайте и одновременно авторизация на форуме
Для этого на сайте и форуме должна быть общая база данных пользователей, при авторизации на сайте должна создаваться пользовательская сессия с созданием куки, при этом одновременно должны создаваться своя сессия и свои куки на форуме, и наоборот. Ничего этого я тут не увидел.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение rxu »

Василий72 писал(а): 02.02.2018 23:50utf8_normalize_nfc(request_var
Надо использовать класс $request вместо всего этого.
Василий72 писал(а): 02.02.2018 23:50addslashes(strip_tags($username));
Василий72 писал(а): 02.02.2018 23:50$username = $db->sql_escape($username);
Это все вообще лишнее. Фильтрацию данных на входе выполняет $request.

Выход из сессии не реализован.
Изображение
Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

Re: Интеграция входа (Login) на форум с Вашего сайтом

Сообщение Василий72 »

Здравствуйте!

Sheer скрипт Ваш работает, извиняюсь. Просто у меня _POST не работала, так как отключены глобальные переменные. Поэтому я и подумал, что скрипт не работает.
Спасибо за замечания. Поменял на класс request_var. Но надо все равно использовать
$username=utf8_clean_string($username);
А иначе не ищет в базе данных русские имена.

Код: Выделить всё

<h1>Проверка логина и пароля на Форуме Игры</h1>

<?php
// Эта страница авторизации на форуме игры
define('IN_PHPBB', true); 
$phpbb_root_path='../game_forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1,3);

// Подключение функций и библиотек форума
include($phpbb_root_path . 'config.' . $phpEx);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

$username = request_var('username', '', true);
$password = request_var('password', '', true);
    
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 user_password FROM ".$table_prefix."users WHERE username_clean='". $db->sql_escape($username)."'";
	$find = $db->sql_query($query);
    		
	if(!$find_row=$db->sql_fetchfield('user_password'))
	{
		echo "Такое имя не найдено в базе данных форума<br />";
	}
	else	
	{
		echo "Такое имя есть в базе данных форума. <br/>";
    		
		// Проверяем пароль
		$password_hash = $find_row;
		
    	$check = phpbb_check_hash($password, $password_hash);
		
		if( $check == FALSE ) 	echo "Проверку пароль не прошел!";
		if( $check == TRUE  ) 	echo "Проверку пароль прошел!";
    }
    $db->sql_freeresult($find);
}
    
?>
<продолжение сайта>
Отправлено спустя 13 минут 57 секунд:
Sheer писал(а): 03.02.2018 0:26
Beer писал(а): 02.02.2018 23:46для авторизации на своем сайте и одновременно авторизация на форуме
Для этого на сайте и форуме должна быть общая база данных пользователей, при авторизации на сайте должна создаваться пользовательская сессия с созданием куки, при этом одновременно должны создаваться своя сессия и свои куки на форуме, и наоборот. Ничего этого я тут не увидел.
Справедливое замечание. А можно поменять название темы на "Проверка логина и пароля форума для интеграции форума с собственным сайтом".
Далее когда мы разобрались с проверкой логина и пароля приступаем к авторизации.
Я думал дальше писать в месте где логин и пароль подошел:

Код: Выделить всё

session_start();
$_SESSION['username'] = $username;
header("Location: main.php");
exit();
Где страница main.php это мой сайт работающей под управлением CMS и пользователь уже авторизирован.

С уважением,
Василий
Последний раз редактировалось Sheer 03.02.2018 12:35, всего редактировалось 1 раз.
Причина: bb-код. Когда же вы наконец научитесь пользоваться bb-кодами!!!
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: [3.2] Проверка логина и пароля форума для интеграции форума с сайтом

Сообщение Sheer »

Василий72 писал(а): 03.02.2018 12:22Но надо все равно использовать
Это очевидно и не оспаривается. А вот это

Код: Выделить всё

include($phpbb_root_path . 'config.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
тоже лишнее.Василий72, прочтите Руководство по написанию кода
В соответствии ваш код должен быть таким

Код: Выделить всё

<h1>Проверка логина и пароля на Форуме Игры</h1>

<?php
// Эта страница авторизации на форуме игры
define('IN_PHPBB', true);

define('PHPBB_ROOT_PATH', './game_forum/');

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

include($phpbb_root_path . 'common.' . $phpEx);

$username = request_var('username', '', true);
$password = request_var('password', '', true);

if (!$username || !$password)
{
	echo "Пожалуйста введите имя и пароль<br />";
}
else
{
	// Подготовка username к поиску в базе данных форму
	$username = utf8_clean_string($username);

	//Ищем username
	$sql = 'SELECT user_password
		FROM ' . USERS_TABLE . '
		WHERE username_clean = \'' . $db->sql_escape($username) . '\'';
	$result = $db->sql_query($sql);

	if (!$find_row = $db->sql_fetchfield('user_password'))
	{
		echo "Такое имя не найдено в базе данных форума<br />";
	}
	else
	{
		echo "Такое имя есть в базе данных форума. <br/>";

		// Проверяем пароль
		$password_hash = $find_row;

		$check = phpbb_check_hash($password, $password_hash);

		if ($check == false)
		{
			echo "Проверку пароль не прошел!";
		}
		else
		{
			echo "Проверку пароль прошел!";
		}
	}
	$db->sql_freeresult($result);
}

?>
Хотя смысла я в нем все равно не вижу.

Отправлено спустя 1 минуту 53 секунды:
Василий72 писал(а): 03.02.2018 12:22Я думал дальше писать в месте где логин и пароль подошел
А смысл? Пользовательской сессии все равно не будет. Все нужно делать совсем не так.

Отправлено спустя 32 секунды:
Василий72, вспомнил я вас. Мир тесен.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

Re: [3.2] Проверка логина и пароля форума для интеграции форума с сайтом

Сообщение Василий72 »

Sheer
Спасибо за правку и ссылку на правила написание кода.
Почитал.
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Стаж: 6 лет 1 месяц
Откуда: Рига, Латвия
Поблагодарили: 1 раз
Контактная информация:

Внешняя регистрация на форуме. Код для своего сайта

Сообщение Василий72 »

Добрый день!

Решил продолжить тему интеграции своего сайта и форума phpBB3.

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

Код: Выделить всё

шаблон сайта Вашего
<h1>Регистрация на Форуме phpBB3</h1>

<?php
// Эта страница регистрации на форуме игры

define('IN_PHPBB', true); 
define('PHPBB_ROOT_PATH', '../forum/');

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);

// Подключение функций и библиотек форума
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

//Задаем начальные данные для регистрации USER
$arResult['LOGIN'] = 'Василий';
$arResult['PASSWORD'] = '11111';
$arResult['EMAIL'] = 'info@*******.lv';
$arResult['USER_IP']='';

//Проверка и защита передаваемых данных
$arResult['LOGIN'] = addslashes(strip_tags($arResult['LOGIN']));
$arResult['PASSWORD'] = addslashes(strip_tags($arResult['PASSWORD']));
$arResult['EMAIL'] = addslashes(strip_tags(strtolower($arResult['EMAIL'])));

$arResult['LOGIN'] = $db->sql_escape($arResult['LOGIN']);
$arResult['PASSWORD'] = $db->sql_escape($arResult['PASSWORD']);
$arResult['EMAIL'] = $db->sql_escape($arResult['EMAIL']);


if( !$arResult['LOGIN'] || !$arResult['PASSWORD'] || !$arResult['EMAIL'] )	
{
        echo '<p><b>Пожалуйста введите имя, пароль и электронную почту!<br/>';
        echo 'На форуме надо будет пройти регистрацию вручную. </p>';
    	echo '<p>Вы зарегистрированы в игре. Проверьте свою почту.</p>';
    	echo '<p style=\'text-align: center\'>';
	echo '<a href=\'/index.php\'</a></p>';
}
else
{
	// Подготовка username к поиску в базе данных форму
	$arResult['LOGIN_clean']=utf8_clean_string($arResult['LOGIN']);
	
	//Ищем username
	$sql = 'SELECT user_password 
	        FROM ' . USERS_TABLE . '
	        WHERE username_clean = \'' . $db->sql_escape($arResult['LOGIN_clean']) . '\'';
	$result = $db->sql_query($sql);
    		
	if(!$find_row = $db->sql_fetchfield('user_password'))
	{
		echo '<p>Такое имя не найдено в базе данных форума.</p>';
		
		//Ищем email
		//Проверяем на правильность написания электронной почты
		$validate_email = phpbb_validate_email($arResult['EMAIL']);
	        if ($validate_email)
	        {
		    echo '<p><b>Ошибка: ' . $validate_email . '</b> ';
	            echo 'На форуме надо будет пройти регистрацию вручную. </p>';
    	            echo '<p>Вы зарегистрированы в игре. Проверьте свою почту.</p>';
    	            echo '<p style=\'text-align: center\'>';
		    echo '<a href=\'/index.php\'>Назад</a></p>';
		    exit(0);
	        }
		else
		{
	        // Проверка электронной почты на наличие в базе данных форума
	        $query = 'SELECT user_password 
	                    FROM '. USER_TABLE . '
	                    WHERE user_email=\'' . $db->sql_escape($arResult['EMAIL']) . '\'';
	        $result = $db->sql_query($sql);
	
	        if(!$find_row = $db->sql_fetchfield('user_password'))
        	{
	    	    echo '<p>Такой электронный адресс не найден в базе данных форума. Регистрирую Вам разрешена на форуме.</p>';
	    	    
	    	    // Зашифровываю пароль для записи его в базу данных форума
                    $user_row['user_password'] = phpbb_hash($arResult['PASSWORD']);
                    $user_row['username'] = $arResult['LOGIN'];
                    $user_row['user_email'] = $arResult['EMAIL'];
                    $user_row['user_ip']=$arResult['USER_IP'];
                    $user_row['group_id'] = 2;
                    $user_row['user_type'] = 0;
                    $user_row['user_timezone'] = 2.00;
                    $user_row['user_dateformat'] = 'd M Y, H:i';
                    $user_row['user_lang'] = 'ru';
            
                    // Adding user
                    user_add($user_row, false); 
                    print_r($user_row);

    	       }
	       else    
    	       {
    	           echo '<p><b>Такой электронный адресс есть в базе данных форума.</b> ';
    	           echo 'На форуме надо будет пройти регистрацию вручную. </p>';
    	           echo '<p>Вы зарегистрированы в игре. Проверьте свою почту.</p>';
    	           echo '<p style=\'text-align: center\'>';
		   echo '<a href=\'/index.php\'>Назад</a></p>';
    	        }
	        }
	}
	else	
	{
	        echo '<p><b>Такое имя есть в базе данных форума.</b> ';
	        echo 'На форуме надо будет пройти регистрацию вручную. </p>';
    	        echo '<p>Вы зарегистрированы в игре. Проверьте свою почту.</p>';
    	        echo '<p style=\'text-align: center\'>';
		echo '<a href=\'/index.php\'>Назад</a></p>';
	}
	$db->sql_freeresult($result);
}
	
?>

<теги сайта продолжение>
[icode]
Последний раз редактировалось Sheer 04.02.2018 16:08, всего редактировалось 1 раз.
Причина: bb-код
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/
Ответить

Вернуться в «Для разработчиков»