Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система регистрации

Jam999

Нуль
Регистрация
16 Янв 2019
Сообщения
4
Лучшие ответы
0
Репутация
1
Всем привет. Сегодня я хочу провести мануал, как создать систему регистрации
Прошу судить не строго, моя первая статься.
Приступим.

Создаем базу. -

Первое что мы сделаем, так это добавить инклуд <a_mysql>

PHP:
#include <a_samp>
#include <a_mysql>
Второе. Добавляем дефайны для подключения к БД

PHP:
#define MySQL_HOST "localhost" // Хостинг MySQL
#define MySQL_USER "root" // Имя пользователя MySQL
#define MySQL_BASE "base" // База данных MySQL
#define MySQL_PASS "" // Пароль от данных MySQL
Третие что мы сделаем, так это создадим переменную new dbHandle;
Ее можно поменять на любую переменную, пример: connect_mysql

PHP:
new dbHandle;
Четвертое. Идем в паблик OnGameModeInit(), и подключаем к базе данных

PHP:
public OnGameModeInit()
{
	dbHandle = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_BASE , MySQL_PASS);
	return true;
}
Пятое. Добавим текст, смогли MySQL база подключиться к моду

PHP:
public OnGameModeInit()
{
	dbHandle = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_BASE , MySQL_PASS);
	if(mysql_errno()==0)
	{
		printf("[MySQL]: Я смог подключиться к базе данным.");
	}
	else
	{
		return printf("[MySQL]: Я не смог подключиться к базе данным! Код ошибки #%d", mysql_errno());
	}
	return true;
}
Шестое. Добавим в OnGameModeInit() автоустановку кодировку.

PHP:
public OnGameModeInit()
{
	dbHandle = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_BASE , MySQL_PASS);
	if(mysql_errno()==0)
	{
		printf("[MySQL]: Я смог подключиться к базе данным.");
	}
	else
	{
		return printf("[MySQL]: Я не смог подключиться к базе данным! Код ошибки #%d", mysql_errno());
	}
	mysql_set_charset("cp1251");
	return true;
}
Седьмое. Добавим массив хранение данных аккаунтов

PHP:
enum pInfo
{
	pID, // ID игрока
	pName[24+1], // Ник игрока, 24 - макс. длина ника, +1 - нулевая ячейка.
	pPass[32+1] // Пароль игрока, 32 - макс.длина пароля, +1 - нулевая ячейка
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Восьмое. Идем в паблик OnPlayerConnect(playerid), узнаем ник игрока

PHP:
public OnPlayerConnect(playerid)
{
	GetPlayerName(playerid, PlayerInfo[playerid][pName], 24+1); // 24 - Макс.длина ника, +1 - нулевая ячейка.
	return true;
}
Девятое. Идем в паблик OnPlayerConnect(playerid), делаем запрос в MySQL
PHP:
public OnPlayerConnect(playerid)
{
	GetPlayerName(playerid, PlayerInfo[playerid][pName], 24+1); // 24 - Макс.длина ника, +1 - нулевая ячейка.
	format(string, sizeof(string), "SELECT `ID` FROM `accounts` WHERE `Name` = '%s'", PlayerInfo[playerid][pName]);
	mysql_function_query(dbHandle, string, true, "OnPlayerRegCheck", "d", playerid); // OnPlayerRegCheck - При помощи него, мы узнаем, игрок зарегестрирован, или нет.
	return true;
}
Десятое. Создаем форвард OnPlayerRegCheck(playerid);

PHP:
forward OnPlayerRegCheck(playerid);
public OnPlayerRegCheck(playerid)
{
	new rows, fields;
	cache_get_data(rows, fields)
	if(rows)
	{
		// Игрок зарегестрирован.
	}
	else
	{
		// Игрок не зарегестрирован.
	}
	return true;
}
Вот и подходит конец моего первого урока. Скоро продолжу. Есть вопросы, пишите.
 
Сверху Снизу