Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Cleo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.11.2015
    Сообщений
    6
    Репутация:
    0 ±

    По поводу Регистрации MySQL

    Ребят кроме вашего форума некому обратится. Помогите пожалуйста более разумнее сделать.
    PHP код:
    #include <a_mysql> 
    PHP код:
    forward OnPlayerDataLoaded(playerid);
    forward OnPlayerAccounLoaded(playerid); 
    PHP код:
    enum Player
    {
        
    ID,
        
    Name[MAX_PLAYER_NAME],
        
    Password[15]
    };
    new 
    pInfo[MAX_PLAYERS][Player];
    new 
    connectionHandle
    PHP код:
    public OnGameModeInit()
    {
        
    connectionHandle mysql_connect("127.0.0.1""root""db_rp""");
        
    mysql_log(LOG_ERROR LOG_WARNINGLOG_TYPE_TEXT);
        if(
    mysql_errno() != 0)
            print(
    "Не удалось подключиться к базе данных!");
        
    SetGameModeText("Blank Script");
        
    AddPlayerClass(01958.37831343.157215.3746269.1425000000);
        return 
    1;

    PHP код:
    public OnPlayerConnect(playerid)
    {
        new 
    query[128];
        
    GetPlayerName(playeridpInfo[playerid][Name], MAX_PLAYER_NAME);
        
    mysql_format(connectionHandlequerysizeof(query), "SELECT * FROM `Accounts` WHERE `User` = '%e' LIMIT 1"pInfo[playerid][Name]);
        
    mysql_tquery(connectionHandlequery"OnPlayerDataLoaded""d"playerid);
        return 
    1;

    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        switch(
    dialogid)
        {
            case 
    0:
            {
                if(!
    response) return Kick(playerid);
                if(!
    strlen(inputtext)) return ShowPlayerDialog(playerid0DIALOG_STYLE_PASSWORD"Регистрация""""Готово""Отмена");
                else if(
    strlen(inputtext) < 5) return ShowPlayerDialog(playerid0DIALOG_STYLE_PASSWORD"Регистрация""""Готово""Отмена");
                else if(
    strlen(inputtext) > 15) return ShowPlayerDialog(playerid0DIALOG_STYLE_PASSWORD"Регистрация""""Готово""Отмена");
                for (new 
    strlen(inputtext) -1!= -1i--)
                {
                    switch(
    inputtext[i])
                       {
                        case 
    '0'..'9''а'..'я''a'..'z''А'..'Я''A'..'Z': continue;
                        default: return 
    ShowPlayerDialog(playerid0DIALOG_STYLE_PASSWORD"Регистрация""""Готово""Отмена");
                       }
                }
                   
    strins(pInfo[playerid][Password], inputtext0);
                  
    CreateAccount(playeridpInfo[playerid][Password]);
                return 
    1;
            }
            case 
    1:
            {
                if(!
    response) return Kick(playerid);
                if(!
    strlen(inputtext)) return ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"Авторизация""""Войти""Отмена");
                for (new 
    strlen(inputtext) -1!= -1i--)
                {
                    switch(
    inputtext[i])
                       {
                        case 
    '0'..'9''а'..'я''a'..'z''А'..'Я''A'..'Z': continue;
                        default: return 
    ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"Авторизация""""Войти""Отмена");
                       }
                }
                if(!
    strcmp(pInfo[playerid][Password], inputtext))
                {
                    new 
    query[128];
                    
    mysql_format(connectionHandlequerysizeof(query), "SELECT * FROM `Accounts` WHERE `User` = '%e' LIMIT 1"pInfo[playerid][Name]);
                    
    mysql_tquery(connectionHandlequery"OnPlayerAccounLoaded""d"playerid);
                }
                switch(
    GetPVarInt(playerid"invalid_password"))
                {
                    case 
    0ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"Авторизация""3""Войти""Отмена");
                    case 
    1ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"Авторизация""2""Войти""Отмена");
                    case 
    2ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"Авторизация""1""Войти""Отмена");
                    case 
    3ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"Авторизация""0""Войти""Отмена");
                    default: return 
    Kick(playerid);
                }
                
    SetPVarInt(playerid"invalid_password"GetPVarInt(playerid"invalid_password")+1);
                return 
    1;
            }
        }
        return 
    1;

    PHP код:
    public OnPlayerDataLoaded(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        if(!
    rows)
        {
            
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Регистрация""""Готово""Отмена");
        }
        else
        {
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация""""Войти""Отмена");
            
    cache_get_field_content(0"Key"pInfo[playerid][Password], connectionHandle15);
        }
        return 
    1;

    PHP код:
    public OnPlayerAccounLoaded(playerid)
    {
        
    pInfo[playerid][ID] = cache_get_field_content_int(0"id");
        
    SpawnPlayer(playerid);
        return 
    1;

    PHP код:
    stock CreateAccount(playeridKey[])
    {
        new 
    query[256];
        
    mysql_format(connectionHandlequerysizeof(query), "INSERT INTO `Accounts` (`User`, `Key`) VALUES ('%e', '%s')"pInfo[playerid][Name], Key);
        
    mysql_tquery(connectionHandlequery"""");
        
    SpawnPlayer(playerid);
        return 
    1;

    PHP код:
    stock SaveAccount(playerid)
    {
        new 
    query[128];
        
    mysql_format(connectionHandlequerysizeof(query), "UPDATE `Accounts` SET `User` = '%e', `Key` = '%s' WHERE `id` = '%d' LIMIT 1"pInfo[playerid][Name], pInfo[playerid][Password], pInfo[playerid][ID]);
        
    mysql_tquery(connectionHandlequery"""");
        return 
    1;



    База данных успешно подключается но диалог Регистрации и авторизации не выходит!

  2. #2
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±

  3. #3
    Аватар для Cleo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.11.2015
    Сообщений
    6
    Репутация:
    0 ±
    Так это одно и тоже можно так сказать. Проблема в том то я авторизуюсь своим паролеи спавнусь и мне диалог окна 3 попытки вылазиет и потом кикает

  4. #4
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    PHP код:
    if (!strcmp(pInfo[playerid][Password], inputtext)) 

        new 
    query[128]; 
        
    mysql_format(connectionHandlequerysizeof(query), "SELECT * FROM `Accounts` WHERE `User` = '%e' LIMIT 1"pInfo[playerid][Name]); 
        
    mysql_tquery(connectionHandlequery"OnPlayerAccounLoaded""d"playerid); 
        return 
    1;


 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •