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

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

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

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

Смена пароля.

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

Qwerty +

Новичок
Здравствуйте ув. пользователи p-i.ru!

Вчера создал меню сервера, а сегодня добавил раздел "Безопасность", туда же добавил и смену пароля.
Смена пароля написал сначало простенько, но вот понимаю что нужно будет утруднить работу т.к. не хочется чтобы были постоянные жалобы о том что -мол, меня взломали и поменяли пароль, помогите!!!
Так вот, чтобы такого не было я придумал такую схему:

1) Игрок входит в меню и выбирает пункт "Безопасность", следуя "Смена пароля".
2) Выходит диалог мол введите Ваш старый пароль (когда игрок вводит старый пароль то он зашифрован).
3) Если его пароль совпадает с inputtext то должен выйти 2-ой диалог о том что ввести новый пароль (если игрок вводит новый пароль то он виден).
4) Выходит сообщение о том что пароль успешно поменян и в аккаунте этого игрока меняется пароль на тот который он вписал.


Код полностью написан, но!
Почему то когда игрок вводит старый пароль, то после никого действия!!!

Скажу сразу, у меня в коде лесенка построена правильно! Тут ее убрал т.к. смысл кода будет не внятен.

Начало кода идет с меню:
PHP:
if(listitem == 5)
{
new listitems[] = "1) Смена пароля";//
ShowPlayerDialog(playerid, 41, DIALOG_STYLE_LIST, "Безопасность", listitems, "Выбрать", "Отмена");
return 1;
}
Если он выбрал "Смена пароля" то:
PHP:
if(dialogid == 41)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid, 46, DIALOG_STYLE_PASSWORD, "Смена пароля", "Введите ваш старый пароль", "Готово", "Отмена"); //
return 1;
}
}
else
{
return 1;
}
}
Если введенный пароль совпадает с нынешним паролем, то идет следующий диалог (уже со сменой):
PHP:
if(dialogid == 46)
{
if(response)
{
if(PlayerInfo[playerid][pKey] == strlen(inputtext)) // скорей всего эта проверка не правильная, или как?
{
ShowPlayerDialog(playerid, 47, DIALOG_STYLE_INPUT, "Смена пароля", "Введите ваш новый пароль", "Готово", "Отмена");
return 1;
}
}
else
{
return 1;
}
}
Ну а вот само сердце смены пароля:
PHP:
if(dialogid == 47)
{
if(response)
{
GetPlayerName(playerid,sendername,sizeof(sendername));
format(string,sizeof(string), "%s.ini",sendername);
new File = ini_openFile(string);
ini_setString(File, "Key", MD5_Hash(inputtext));
ini_closeFile(File);
format(string, sizeof(string), "Вы успешно сменили пароль! Ваш новый пароль: {FFFF00}%s", inputtext);
SendClientMessage(playerid, COLOR_WHITE, string);
SavePlayer(playerid);
return 1;
}
}
Повторюсь снова! Проблема в том что когда игрок вводит старый пароль то дальше никакого действия (скорей всего проверка не правильная)!
Попрошу помочь, буду искренне благодарен.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу