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

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

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

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

Сообщение Василий72 » 02.02.2018 21:04

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

Делаю браузную игру акваферма и разработал скрипт для авторизации на своем сайте и одновременно авторизация на форуме. Предлагаю свой скрипт.
Скрипт протестировал на своем форуме 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
phpBB Guru
phpBB Guru
Сообщения: 11491
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

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

Сообщение Sheer » 02.02.2018 22:19

Зачем же велосипед-то опять придумывать? [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
Зарегистрирован: 02.02.2018 19:13
Откуда: Рига, Латвия
Поблагодарили: 1 раз

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

Сообщение Василий72 » 02.02.2018 22:46

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

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11491
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

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

Сообщение Sheer » 02.02.2018 23:10

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

Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Зарегистрирован: 02.02.2018 19:13
Откуда: Рига, Латвия
Поблагодарили: 1 раз

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

Сообщение Василий72 » 02.02.2018 23:15

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

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

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

Сообщение Beer » 02.02.2018 23:20

Василий72, объясни для танкистов как реализовать - у меня Joomla! и форум на поддомене.
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11491
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

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

Сообщение Sheer » 02.02.2018 23:21

Василий72 писал(а):
02.02.2018 23:15
весь код понятен даже рыбоводу.
Ну да...вам понятно это?
Василий72 писал(а):
02.02.2018 21:04
SELECT *
Мне нет. Зачем делать полную выборку, если из таблицы нужно взять только 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.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

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

Сообщение Beer » 02.02.2018 23:46

Так в первом же сообщении сказано: для авторизации на своем сайте и одновременно авторизация на форуме
Т.е. не просто форма на сайте как я понял.
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Зарегистрирован: 02.02.2018 19:13
Откуда: Рига, Латвия
Поблагодарили: 1 раз

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

Сообщение Василий72 » 02.02.2018 23:50

Подправил код. посмотрите. Я 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
phpBB Guru
phpBB Guru
Сообщения: 11491
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

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

Сообщение Sheer » 02.02.2018 23:55

Василий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
Сообщения: 14532
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 348 раз
Поблагодарили: 1556 раз

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

Сообщение rxu » 03.02.2018 7:20

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

Выход из сессии не реализован.
Изображение

Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Зарегистрирован: 02.02.2018 19:13
Откуда: Рига, Латвия
Поблагодарили: 1 раз

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

Сообщение Василий72 » 03.02.2018 12:08

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

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
phpBB Guru
phpBB Guru
Сообщения: 11491
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

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

Сообщение Sheer » 03.02.2018 13:27

Василий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
Зарегистрирован: 02.02.2018 19:13
Откуда: Рига, Латвия
Поблагодарили: 1 раз

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

Сообщение Василий72 » 04.02.2018 15:44

Sheer
Спасибо за правку и ссылку на правила написание кода.
Почитал.
С уважением,
Василий
Автоматические рыбные фермы. Например в Таллине в центре города на чердаке 150 м2 построил осетровник 5 т мяса в год.
http://catfish.lv/test/

Аватара пользователя
Василий72
phpBB 1.2.0
Сообщения: 12
Зарегистрирован: 02.02.2018 19:13
Откуда: Рига, Латвия
Поблагодарили: 1 раз

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

Сообщение Василий72 » 04.02.2018 16:00

Добрый день!

Решил продолжить тему интеграции своего сайта и форума 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/

Вернуться в «Для авторов»