Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

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

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

Код:
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
Сообщений: 14,929
По умолчанию

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

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

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

Что-то вроде такого:
Код:
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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840