Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Проблема записи данных в переменную. - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Проблема записи данных в переменную.

#1
Пользователь офлайн   Doctor FLY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Я ввожу , alogin мне выскакивает окно регистрации, я ввожу пароль и он не записувает в БД и даже в переменную.
case 6:
{
if(response)
{
if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
{
SendClientMessage(playerid, -1, "Недопустимая длинна пароля");
ShowPlayerDialog(playerid, 6, DIALOG_STYLE_INPUT, "{ffcf00}>> Админ-Регистрация", "{FFFFFF}Придумайте пароль от админки", "Далее", "Выход");
return 1;
}
strmid(Player[playerid][AdminPass], inputtext, 0, strlen(inputtext), 32+1);

new DB_Query[337];
mysql_format(Database, DB_Query, sizeof(DB_Query), "INSERT INTO `admin` (`USERNAME`, `adminpass`) VALUES ('%s','%d')", Player[playerid][Name],Player[playerid][AdminPass]);
//mysql_tquery(Database, DB_Query, "", "sd", playerid);
format(DB_Query, sizeof(DB_Query), "Ваш пароль: %d", Player[playerid][AdminPass]);
SendClientMessage(playerid, -1, DB_Query);
}
}
}
0

#2
Пользователь офлайн   sql!te 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Покажи как объявлен массив

strmid(Player[playerid][AdminPass], inputtext, 0, strlen(inputtext));


В начале проверь записывает или нет, если да, то запрос неверный на базу. Проверь именно после ввода в массив через форматирование
0

#3
Пользователь офлайн   Doctor FLY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияsql!te (09 Ноябрь 2018 - 00:06) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Массив чего?
0

#4
Пользователь офлайн   sql!te 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Аа ну правильно, у тебя как я понимаю тип переменной int? И.к. в запросе на базу он и есть. Если int, то перевеводишь введеный текст в число раз это только числа в пароле, а если нет, то меняешь тип столбца на строчной и ставишь вместо оператора %d оператор %s
0

#5
Пользователь офлайн   Doctor FLY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияsql!te (09 Ноябрь 2018 - 00:09) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

А как перевести числа в текст ?

Просмотр сообщенияsql!te (09 Ноябрь 2018 - 00:09) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Попробывал изменить на VarChar и на %s, ничего
0

#6
Пользователь офлайн   sql!te 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Ты не понял. Текст переводишь в число. После ввода пароля меняешь функцию strmid

new str[sizeof inputtext +1];
strmid(str, inputtext, 0, strlen(inputtext));


Далее уже делаем из string # int
Функция strval
Player[playerid][AdminPass] = strval(str);


Далее оставляешь как есть

Ещё делаешь проверку, чтобы игроки вводили числа, а не буквы

for(new i = strlen(inputtext); i != 0; --i)
{
       switch(inputtext[i])
      {
            case 'А'..'Я', 'а'..'я', ' ':
            return ShowPlayerDialog(playerid,6,DIALOG_STYLE_INPUT,"Ошибка!","

Пароль не должен состоять из запрещенных символов","Повтор","");
      }
}

0

#7
Пользователь офлайн   Doctor FLY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияsql!te (09 Ноябрь 2018 - 00:18) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

warning 224: indeterminate array size in "sizeof" expression (symbol "")
0

#8
Пользователь офлайн   sql!te 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
Сделай так, самое элементарное думаю можно самому сделать. Я в армии с телефона пишу, имей совесть.

new str[32];
0

#9
Пользователь офлайн   Doctor FLY 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияsql!te (09 Ноябрь 2018 - 00:26) писал:

Сделай так, самое элементарное думаю можно самому сделать. Я в армии с телефона пишу, имей совесть.

new str[32];


new str[32];
new str[sizeof inputtext +1];
strmid(str, inputtext, 0, strlen(inputtext));
Player[playerid][AdminPass] = strval(str);
Ошибки.
0

#10
Пользователь офлайн   sql!te 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
А зачем ты снова массив str создал (\/)(-_-)(\/)
0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей