PDA

Просмотр полной версии : [Прочее] Не сохраняется Email



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

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


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, "", "");
}


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

koberman
31.08.2017, 12:05
Дальше серии смотри, там Леон все фиксанет