Jam999
Нуль
- Регистрация
- 16 Янв 2019
- Сообщения
- 4
- Лучшие ответы
- 0
- Репутация
- 1
Всем привет. Сегодня я хочу провести мануал, как создать систему регистрации
Прошу судить не строго, моя первая статься.
Приступим.
Создаем базу. -
Первое что мы сделаем, так это добавить инклуд <a_mysql>
Второе. Добавляем дефайны для подключения к БД
Третие что мы сделаем, так это создадим переменную new dbHandle;
Ее можно поменять на любую переменную, пример: connect_mysql
Четвертое. Идем в паблик OnGameModeInit(), и подключаем к базе данных
Пятое. Добавим текст, смогли MySQL база подключиться к моду
Шестое. Добавим в OnGameModeInit() автоустановку кодировку.
Седьмое. Добавим массив хранение данных аккаунтов
Восьмое. Идем в паблик OnPlayerConnect(playerid), узнаем ник игрока
Девятое. Идем в паблик OnPlayerConnect(playerid), делаем запрос в MySQL
Десятое. Создаем форвард OnPlayerRegCheck(playerid);
Вот и подходит конец моего первого урока. Скоро продолжу. Есть вопросы, пишите.
Прошу судить не строго, моя первая статься.
Приступим.
Создаем базу. -
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Первое что мы сделаем, так это добавить инклуд <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
Ее можно поменять на любую переменную, пример: connect_mysql
PHP:
new dbHandle;
PHP:
public OnGameModeInit()
{
dbHandle = mysql_connect(MySQL_HOST, MySQL_USER, MySQL_BASE , MySQL_PASS);
return true;
}
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;
}
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];
PHP:
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, PlayerInfo[playerid][pName], 24+1); // 24 - Макс.длина ника, +1 - нулевая ячейка.
return true;
}
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;
}
PHP:
forward OnPlayerRegCheck(playerid);
public OnPlayerRegCheck(playerid)
{
new rows, fields;
cache_get_data(rows, fields)
if(rows)
{
// Игрок зарегестрирован.
}
else
{
// Игрок не зарегестрирован.
}
return true;
}