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

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

    Не сохраняется Email

    Добрый день. Я пишу мод по примеру как делает Leon Galanto(не реклама). Сейчас я делаю систсему регистрации.
    Сделал систему сохранение. Все было нормально пока не делал систему Email. Email просто напросто не выводится в таблицу базы данных.

    Вот код всей системы:

    Код HTML:
    enum PDATA{
    pEmail[62]
    }
    
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
            switch(dialogid)
            {
                case dRegister2:
                {
                        if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 62)
                            {
                                ShowPlayerDialog(playerid, dRegister2, 1, "Почта", "{FFFFFF}Введите адрес Вашей электронной почты\nИспользуя его, вы сможете восстановить доступ к аккаунту\nв случае взлома или если забудете пароль.\n\nНа email мы вышлем ссылку.Перейдите по ней для подтверждения почты.\n\nУбедитесь в правильности ввода и нажмите \"Далее\"", "Далее", "");
                            }
                            if(strfind(inputtext, "@", true) == -1 || strfind(inputtext, ".", true) == -1)
                            {
                                    PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
                                SendClientMessage(playerid, -1, "{ff9900}Ошибка: {FFFFFF}Адрес электронной почты введён неверно.");
                                ShowPlayerDialog(playerid, dRegister2, 1, "Почта", "{FFFFFF}Введите адрес Вашей электронной почты\nИспользуя его, вы сможете восстановить доступ к аккаунту\nв случае взлома или если забудете пароль.\n\nНа email мы вышлем ссылку.Перейдите по ней для подтверждения почты.\n\nУбедитесь в правильности ввода и нажмите \"Далее\"", "Далее", "");
                            }
                            else
                            {
                                new email[62];
                                mysql_escape_string(inputtext, email);
                                pData[playerid][pEmail] = email;
                                static const fmt_query[] = "SELECT * FROM `accounts` WHERE `email` = '%s'";
                                new query[sizeof(fmt_query)+(-2+32)];
                                format(query, sizeof(query), fmt_query, email);
                                    mysql_tquery(azurite, query, "CheckEMail", "ds", playerid, email);
                            }
                    }
            }
            return 1;
    }
    
    forward player_login(playerid);
    public player_login(playerid)
    {
            new rows;
            cache_get_row_count(rows);
            if(rows)
            {
                cache_get_value_name(0, "email", pData[playerid][pEmail], 62);
            }
    }
    
    forward CheckEMail(playerid, email[]);
    public CheckEMail(playerid, email[])
    {
            new rows;
            cache_get_row_count(rows);
            if(rows)
            {
                    PlayerPlaySound(playerid, 1055, 0.0, 0.0, 0.0);
                    SendClientMessage(playerid, -1, "{ff9900}Ошибка: {FFFFFF}Данный адрес электронной почты уже привязан к другому аккаунту..");
                    ShowPlayerDialog(playerid, dRegister2, 1, "Почта", "{FFFFFF}Введите адрес Вашей электронной почты\nИспользуя его, вы сможете восстановить доступ к аккаунту\nв случае взлома или если забудете пароль.\n\nНа email мы вышлем ссылку.Перейдите по ней для подтверждения почты.\n\nУбедитесь в правильности ввода и нажмите \"Далее\"", "Далее", "");
            }
            else
            {
                    strmid(pData[playerid][pEmail], email, 0, strlen(email), 62);
                SendClientMessage(playerid, -1, "скоро будет продолжение :З");
            }
    }
    
    stock save_accounts(playerid)
    {
            new query[128];
            format(query, sizeof(query), "UPDATE `accounts` SET \
            `email` = '%s' WHERE `id` = '%d' LIMIT 1",
            pData[playerid][pEmail],
            pData[playerid][ID]);
            mysql_tquery(azurite, query, "", "");
    }

    Прошу подскажите что не так.

  2. #2
    Аватар для koberman
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.03.2017
    Адрес
    Новосибирск
    Сообщений
    49
    Репутация:
    4 ±
    Дальше серии смотри, там Леон все фиксанет

 

 

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

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

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

Ваши права

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