Доступ к архиву

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

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

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

Не грузятся акки на мускул

Статус
В этой теме нельзя размещать новые ответы.

Marco_Greco

Дебютант
PHP:
stock CreateAccount(playerid, password[]) {
    new
        query[128], // Для запроса.
        sqlname[MAX_PLAYER_NAME],
        sqlpassword[32];
    mysql_real_escape_string(PlayerInfo[playerid][pNamepl], sqlname); // Защитит от sql inject
    mysql_real_escape_string(password, sqlpassword); // Защитит от sql inject
    format(query, sizeof(query), "INSERT INTO `accounts` (`Nickname`, `Password`) VALUE ('%s', '%s')", sqlname, sqlpassword); // Добавляем в таблицу запись.
    // INSERT - добавление записи в таблицу, 1. () - поля. 2. VALUE - значения этих полей.
    mysql_query(query); // Отправляем запрос.
    GetAccountID(playerid); // Узнаём ИД аккаунта, будет использоваться для сохранения и прочих операций.
    strmid(PlayerInfo[playerid][pPassword], password, 0, 64, 255); // Внедряем в массив аккаунта введенный игроком пароль.
    gPlayerLogged[playerid] = 1; // Мы авторизованы.
    return 1;
}
stock LoadAccount(playerid, password[]) {
    new
        query[128],
         sqlpass[32],
         result[5+24+64],
         dialog[128];
    mysql_real_escape_string(password, sqlpass); // Защита от SQL Inject, шифрует кодировку.
     format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `Password` = '%s' AND `ID` = '%i'", sqlpass, PlayerInfo[playerid][pID]);
    // SELECT * - выбрать, FROM - с таблицы, WHERE - где, пароль равен введенному паролю и ID равен иду ника человека.
     mysql_query(query); // Отправляем запрос.
     mysql_store_result(); // Смотрим записи, которые мы выбрали запросом выше.
     if(mysql_num_rows() == 1) { // Если выбрало только 1 аккаунт с таким паролем и ИД - успех, пароль введен верно, загружаем данные в массив.
        mysql_fetch_row_format(result, "|"); // split, данные в результате записываются типо "1|Snoowker|parol"
        sscanf(result, "p<|>is[24]s[32]", // i - ид (int), s[размер] - string, ник и пароль.
            PlayerInfo[playerid][pID],
            PlayerInfo[playerid][pNamepl],
            PlayerInfo[playerid][pPassword]);
        gPlayerLogged[playerid] = 1;
        mysql_free_result(); // Очищаем память.
        return 1;
    }
     else { // Мы ввели неверный пароль.
         Kick(playerid);
     }
     return 1;
}
stock GetAccountID(playerid) {
    new
        query[128];
        new plname[255];
                                    GetPlayerName(playerid, plname, sizeof(plname));
    format(query, sizeof(query),"SELECT `ID` FROM `accounts` WHERE `Nickname` = '%s'", plname);
    // Выбираем ID, с таблицы Accounts, где Ник равен нику игрока.
    mysql_query(query); // Отправляем запрос.
    mysql_store_result(); // Видим
    if(mysql_num_rows() == 1) { // Если у нас в результате выбрало 1 запись, т.е. аккаунт игрока.
        PlayerInfo[playerid][pID] = mysql_fetch_int(); // ИД игрока равен номеру записи.
        mysql_free_result(); // Очищаем память.
        return PlayerInfo[playerid][pID]; // Возвращаем ИД игрока.
    }
    return 0;
}
Не грузятся акки!Кто поможет за +?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу