Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2020, 18:21   #1
tara-ta-ta
Пользователь
 
Регистрация: 25.10.2019
Сообщений: 36
По умолчанию Система авторизации на сайте

Как вывести сообщение о том, что нужно повторить ввод пароля? Уже запутался совсем

Код:
var
mass1: array[1..4] of string[6];
mass2: array [1..4] of string [4];

a,b:string;
i,ch,c,c2,c3,j:integer;

begin
//хранение логинов
mass1[1]:='moroz';
mass1[2]:='reconc';
mass1[3]:='robert';
mass1[4]:='zinga';
//хранение паролей
mass2[1]:='rec1';
mass2[2]:='ser3';
mass2[3]:='ewq1';
mass2[4]:='3ewq';
writeln('Введите логин');
readln(a);


//ввод и проверка logina
for i:=1 to 4 do
if a = mass1[i] then begin inc(ch); j:=i; end;
if ch = 1 then begin writeln ('Введите пароль: '); readln(b) end
else
begin
writeln ('Повторите ввод логина');
readln(a);
for i:=1 to 4 do
if a = mass1[i] then inc(ch); j:=i;
if ch = 1 then begin writeln ('Введите пароль: '); readln(b) end
else
begin
writeln ('Повторите ввод логина');
readln(a);
for i:=1 to 4 do
if a = mass1[i] then inc(ch); j:=i; end;
if ch = 1 then begin writeln ('Введите пароль: '); readln(b) end
else
begin
writeln ('Повторите ввод логина');
readln(a);
for i:=1 to 4 do
if a = mass1[i] then inc(ch); j:=i; end;
if ch = 1 then begin writeln ('Введите пароль: '); readln(b);end
else begin writeln ('Ошибка ввода логина'); exit; end;
end;

ch:=0;
//проверка пароль
for i:=1 to 3 do
if (b = mass2[i]) and (i=j) then ch:=ch+1;
if ch = 1 then begin writeln('Приветствуем на нашем сайте'); end;

end.
tara-ta-ta вне форума Ответить с цитированием
Старый 08.09.2020, 18:54   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Система авторизации на сайте
Вы сайт на Pascal создаете?
Arigato вне форума Ответить с цитированием
Старый 08.09.2020, 18:56   #3
tara-ta-ta
Пользователь
 
Регистрация: 25.10.2019
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Вы сайт на Pascal создаете?
не сайт, скажем так вспоминаем просто паскаль, задание такое: создать два массива, в первом из которых хранятся четыре логина по шесть символов каждый, во втором – четыре пароля по четыре символа. Пользователю предлагается ввести логин, а затем пароль. Если логин и пароль совпадают, то вывести сообщение «Приветствуем на нашем сайте» и завершить авторизацию. Если логин введён неверно, то выдать сообщение «Повторите ввод логина». Если логин трижды введён неверно, выдать сообщение «Неверный логин» и завершить авторизацию. Если пароль введён неверно, то выдать сообщение «Повторите ввод пароля». Если пароль трижды введён неверно, выдать сообщение «Ошибка ввода пароля» и завершить авторизацию.
tara-ta-ta вне форума Ответить с цитированием
Старый 09.09.2020, 20:12   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Попробуй цикл While True do begin ... end.
В теле цикла проверяешь правильность логина, пароля и контролируешь число попыток.
Как только всё хорошо, break.
Если всё плохо, то ...
Ну или repeat ... until <пароль+логин Not Ok>.
Сверку пароля и логина сделай в отдельной функции, которая вернёт True, если всё хорошо.
Или в отдельных функциях: для пароля и для логина.
Хотя правильнее не подсказывать правильность логина.
Три попытки - логин + пароль. Нет соответствия - "Гуляй Вася"(с).
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 10.09.2020, 20:53   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Что-то вроде такого:
Код:
type str6 = string[6];
type str4 = string[4];

var
   mLog: array[1..4] of str6;
   mPas: array [1..4] of str4;
   sLog, sPas, sPasI: string;
   count: integer;

function Test(login: string; var password: string): boolean;
var i: integer;
begin
    Test := False;
    password := '';
    for i := 1 to 4 do
        if login = mLog[i] then
        begin
            Test := True;
            password := mPas[i];
        end;
end;

begin
   {Login}
   mLog[1]:='moroz';
   mLog[2]:='reconc';
   mLog[3]:='robert';
   mLog[4]:='zinga';
   {password}
   mPas[1]:='rec1';
   mPas[2]:='ser3';
   mPas[3]:='ewq1';
   mPas[4]:='3ewq';



{Test login}
   count := 0;
   while True do
   begin
      writeln('Input login: ');
      readln(sLog);

      if Test(sLog, sPasI) then
         break;
      count := count + 1;
      if count >= 3 then
      begin
         writeln('Error input Login!');
         Exit;
      end;
   end;

{Test password}
   count := 0;
   while True do
   begin
      writeln('Input password: ');
      readln(sPas);
      if sPasI = sPas then
         break;
      count := count + 1;
      if count >= 3 then
      begin
         writeln('Error input Password!');
         Exit;
      end;
   end;

   writeln('Welcame to our website!')
end.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для авторизации на сайте kiril318 C# (си шарп) 1 30.07.2014 06:04
Система авторизации Berlioz Win Api 1 23.02.2014 19:40
Единая система авторизации для нескольких web-ресурсов zamaevac PHP 1 07.04.2012 14:47
Проблема авторизации на сайте Terikon Работа с сетью в Delphi 0 17.03.2009 16:50