Html как сделать проверку пароля c
Перейти к содержимому

Html как сделать проверку пароля c

  • автор:

Как сделать проверку совпадение паролей form html в js

Как сделать проверку совпадение паролей form html в js? Где я ввожу все, и по итогу проверит проверит совпадение двух паролей, при не совпадении вернет назад html экран и не отправит на БД?

Отслеживать
задан 7 ноя 2022 в 16:51
1 1 1 бронзовый знак
Детализируйет ваш вопрос. Из него не понятно, что вам и где надо проврять
7 ноя 2022 в 19:18

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

С помощью js этого сделать нельзя, нужно работать с php. создаёте php файл, в form указываете

в самом .php файле подключаетесь к БД (в моём случае это MySQL)

$host = ''; $userdb = ''; $passdb = ''; $db_name = ''; $link = mysqli_connect($host, $userdb, $passdb, $db_name); 

далее мы получаем логин и пароль из базы

$password_query = mysqli_query($link, 'SELECT pass FROM `users`'); //здесь нужны ваши знания mysql $login_query = mysqli_query($link, 'SELECT username FROM `users`'); //здесь нужны ваши знания mysql чтобы получить данные из БД $password_fetch = mysqli_fetch_array($password_query); $login_fetch = mysqli_fetch_array($login_query); $password = $password_fetch['pass']; $login = $login_fetch['username']; 

получаем введённые в форму данные

$inputlogin = $_POST['login']; $inputpassword = $_POST['password']; 

проверяем данные из формы с данными из БД

if ($inputpassword === $password) < if ($inputlogin === $login) < header('Location: '); //куда будет идти переадресация, если данные введены верно exit(); >> else < header('Location: index.html'); //(страница с формой авторизации) если введены неверно exit(); >

так-же советую почитать про $_SESSION, если хотите сделать форму авторизации, а ещё вот пример использования сессий

Проверка пароля введенного с клавиатуры

Проверка введенного пароля
Пользователь вводит пароль 2 раза. Программа сравнивает данные и проверяет — есть ли в пасс-фразе.

Проверка введённого пароля
Срочно нужен код вот к этой задачке: Написать программу на языке C++ c применением оператора for.

Проверка правильности введенного пароля
Как написать программу, которая будет проверять верность введенного пароля. Известно что в пароле.

Ввод и проверка правильности введенного пароля
Код не мой взят из учебника. #include <iostream> #include<conio.h> #include<cstring> using.

7428 / 5021 / 2891
Регистрация: 18.12.2017
Сообщений: 15,692

ЦитатаСообщение от dimassturbo Посмотреть сообщение

Программа должна проверять пароль, введенный с клавиатуры и если он не верный запрашивать его ввод еще раз

под это условие:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include #include using namespace std; int main() { string password; do { cout  "Password:\n"; getline(cin, password); if (password!="qwerty123") cout "Incorrect password. Repeat please. "endl; } while (password!="qwerty123"); cout "Password accepted\n"; system("pause"); return 0; }

или нужен код под другое условие ?
Регистрация: 11.01.2015
Сообщений: 8

Да. Изучаю сейчас функции и не могу понять почему функция меин не получает нормально значение из функции чек пасс

Эксперт С++

13663 / 10580 / 6322
Регистрация: 18.12.2011
Сообщений: 28,248

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
#include #include using namespace std; bool check_pass(string password) { string valid_pass = "qwerty123"; if (password == valid_pass) { cout  "Доступ разрешен."  endl; return true; } cout  "Неверный пароль!"  endl; return false; } void pause() { cout  "\nНажмите Enter для продолжения"  endl; cin.get(); } int main() { setlocale(LC_ALL, "Rus"); string user_pass; do { cout  "Введите пароль: "; getline(cin, user_pass); } while (!check_pass(user_pass)); cout  "Доступ к файлам получен. Сейчас фото-"; int x = 0; coutx; pause(); return 0; }

Регистрация: 16.08.2018
Сообщений: 125

На, продвинутый ввод пароля в одной функцией с использованием векторов.
Если нужно получение пароля из файла, то это дело другое, здесь должно быть шифрование(могу сделать без него) я могу напаять канифолью под названием fstream получение пароля(или пароля с Username) из файла.
Мжт шифровку сделаю.
Но вот прототип настоящего времени:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
//#include "pch.h" //Для нового VS //#include "stdafx"//Для старого VS #include #include #include #include int main() { setlocale(LC_ALL, "rus"); using namespace std; vectorchar> password; vectorchar> input; int bufer = 0; cout  <"Зарегистрируйте пароль:"; for (size_t i = 0; i != 666; i++) { bufer = _getch(); if (bufer == 13) break; password.insert(password.end(), bufer); cout  <static_castchar>(bufer); } system("cls"); //Говорят, что изпользование goto - бессмысленно и есть другие решения. Но знаете? Мне пофиг, Я ЧСВ кодер и мне пофиг. Reply: //Повторная проверка пароля cout  <"Введите пароль:"; for (size_t i = 0; i != 666; i++) { bufer = _getch(); if (bufer == 13) break; input.insert(input.end(), bufer); } input.erase(input.begin()); if (input == password) { cout  <"Доступ разрешён\n"; Sleep(1200); while (true) { cout  <"LOL "; } } else { system("color 4"); cout  <"Н Е П Р А В И Л Ь Н О"; system("pause"); system("color 7"); goto Reply; } return 0; }

Добавлено через 13 минут
ОЙ! простите, ошибся.
Забыл написать очистку вектора в случае неправильного пароля.
Вот правильно:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
//#include "pch.h" //Для нового VS //#include "stdafx"//Для старого VS #include #include #include #include int main() { setlocale(LC_ALL, "rus"); using namespace std; vectorchar> password; vectorchar> input; int bufer = 0; cout  <"Зарегистрируйте пароль:"; for (size_t i = 0; i != 666; i++) { bufer = _getch(); if (bufer == 13) break; password.insert(password.end(), bufer); cout  <static_castchar>(bufer); } system("cls"); //Говорят, что изпользование goto - бессмысленно и есть другие решения. Но знаете? Мне пофиг, Я ЧСВ кодер и мне пофиг. Reply: //Повторная проверка пароля cout  <"Введите пароль:"; for (size_t i = 0; i != 666; i++) { bufer = _getch(); if (bufer == 13) break; input.insert(input.end(), bufer); } input.erase(input.begin()); if (input == password) { cout  <"Доступ разрешён\n"; Sleep(1200); while (true) { cout  <"LOL "; } } else { system("color 4"); cout  <"Н Е П Р А В И Л Ь Н О\n"; system("pause"); system("color 7"); input.clear(); //Эта строчка и очищает вектор goto Reply; } return 0; }

Html как сделать проверку пароля c

На некоторых сайтах есть проверка правильности ввода пароля при регистрации (совпадения паролей из двух полей).
При вводе пароля во второе поле проверяется, совпадает ли пароль из первого и второго поля.
И писать текст «Правильно» либо «Неправильно». Но этот текст писать только, если во втором поле количество символов больше или равно количеству символов в первом поле.
В яваскрипте не разбираюсь, поэтому прошу помощи — написать скриптик, как это делается.

автор: sim5 (06.02.2008 в 20:30) письмо автору
автор: Freddie_X (06.02.2008 в 20:38) письмо автору

Не совсем то, что нужно! Хотелось бы, чтобы проверка шла не при нажатии Сабмита, а прямо на лету.

автор: sim5 (06.02.2008 в 21:11) письмо автору

А зачем? Вас не будет раздражать предупреждения при каждом не верно введенном симоле?

автор: Freddie_X (06.02.2008 в 21:17) письмо автору

Поэтому я и прошу скрипт, который выводит сообщение, только если количество символов во втором поле больше или равно кол-ву символов в первом поле.
Внимательней надо читать! 🙂

И может, не правильно выразился, мне нужен не alert(), а вывод текста в браузер.

автор: CNTv2.0 (06.02.2008 в 21:36) письмо автору

>больше или равно кол-ву символов в первом поле — так не делается нигде, ибо глупо этою

Обратите внимание, что ввод повторного пароля везде(где он есть!) расположен никак не последним перед кнопкой «Зарегистрировать» — там есть ещё несколько полей, требующих заполнения.
И ещё обратите внимание, что сообщение («ОК» или «Ошибка!») появляется не в момент окончания ввода повторного пароля, а в момент, когда поле повторного пароля теряет фокус.
Т.е. скрипт, предложенный вам, можно переделать так:

Password:

Repeat password:

Field1:

Field2:

Field3:

автор: Freddie_X (06.02.2008 в 21:48) письмо автору

Скрипт, работает, спасибо!
Но я хотел бы знать, можно ли такое сделать, но чтобы надпись «ОК» или «Не ОК» появлялась сразу, как только во втором поле сивмолов будет столько же, сколько и в первом?
Допустим, ввели в pass 5 символов, далее вводим символы в passch. Как только в passch есть 5 символов (без onchange) — проводится проверка и выдаётся сообщение «ОК» или «Не ОК». Или это не реализуемо с помощью ЯваСкрипта?

автор: CNTv2.0 (06.02.2008 в 22:16) письмо автору

Я же вам написал, что это глупо, и что так никто не делает.
Вы, видимо, не поняли — почему это ГЛУПО?

Объясняю.
В поле значение пароля можно ввести как с клавиатуры, вбивая по одному символу, так и ещё ТРЕМЯ способами (вставить из буфера с помощью мышки, вставить из буфера с помощью панели управления браузера, вставить из буфера с помощью клавиш Ctrl+V)

В Эксплорере есть аж два события — onpaste и onpropertychange — позволяющие отследить, что значение в изменилось, а вот в прочих браузерах — НЕТ ТАКОЙ ВОЗМОЖНОСТИ.

Ну и как — мысль поняли?

Имеем 4 варианта ввода.
Имеем 5 популярных браузеров (Эксплорер, Мозилла, Опера, Сафари, Нетскейп).
Только в одном из браузеров можем отследить все 4 варианта ввода.
А в остальных 4-х браузерах можем отследить только один вариант ввода (клавиатурный).

Т.е. из 4*5 = 20 случаев сочетаний типа ввода и типа браузера работать правильно будет только в 8-и случаях, а в 12-ти остальных случаях браузеры никак не будут реагировать на скрипт.
Что-то делать при таких пропорциях (8 против 12) — глупо.

автор: Freddie_X (06.02.2008 в 22:18) письмо автору

Ясно, спасибо за разъяснение!
Но я всё таки видел на некоторых сайтах такую фишку! И в Опере, например, она работала!

автор: CNTv2.0 (06.02.2008 в 22:30) письмо автору

В Опере, как и вообще во всех популярных браузерах, можно отследить клавиатурный ввод (о чём я и написал ранее).

То, что где-то кто-то реализовал отслеживание клавиатурного ввода — я не сомневаюсь (ибо это просто).
Ведь недаром в песне поётся:
«Я другой такой страны не знаю
Где так много разных дураков. «

Если хотите присоединиться к их числу — я не возражаю:

Password:

Repeat password:

Field1:

Field2:

Field3:

А теперь попробуйте в любом браузере вставить повтор НЕВЕРНОГО ПАРОЛЯ (большего по количеству символов) мышкой из буфера.
Ну и?
Когда сработает?
Только тогда, когда фокус покинет этот инпут.
И спрашивается — «зачем платить больше?» 🙂

автор: Freddie_X (06.02.2008 в 22:32) письмо автору

Спасибо за оскобление :)))))

автор: CNTv2.0 (06.02.2008 в 22:36) письмо автору

Пожалуйста.
И радуйтесь, что это было не «оскопление» 🙂

автор: sim5 (07.02.2008 в 06:36) письмо автору

Лучше тогда добавить проверку на использования вводимого логина.

автор: sim5 (06.02.2008 в 21:37) письмо автору

Если пароли равны, то значит и число символов одинаково, в тоже время при одинаковом числе символов, значение полей может быть не равно. Вывод текста во что?

автор: Антоха (06.02.2008 в 22:11) письмо автору

Надо всего лишь заменить onchange, на onkeyup, и получите тот результат, который вам нужен, но в словах CNTv2.0 есть намек, что такие способы могут иногда не сработать.
Скорее всего вам нужно было вот так

Password:

Repeat password:

Field1:

Field2:

Field3:

Проверял в ie, opere, firefox — работает

автор: feilx_ (10.04.2008 в 15:13)

А как сделать, чтоб кнопка Send была неактивна до тех пор пока не повится правельный проль ?

Html как сделать проверку пароля c

Особенности работы процесса ввода могут отличаться от браузера к браузеру; мобильные устройства, например, часто отображают вводимый символ на мгновение, прежде чем закрывать его, чтобы позволить пользователю быть уверенным, что они нажали клавишу, которую они хотели нажать; это полезно, учитывая небольшой размер клавиш и лёгкость, с которой может быть нажата неправильная, особенно на виртуальных клавиатурах.

Примечание: Любые формы, содержащие конфиденциальную информацию, такую как пароли (например, формы входа), должны обслуживаться через HTTPS; В Firefox теперь реализованы несколько механизмов для предупреждения от небезопасных форм входа в систему — см. Небезопасные пароли (en-US) . Другие браузеры также реализуют аналогичные механизмы.

input id="userPassword" type="password" /> 
Value DOMString представляет пароль или пустую строку
События change (en-US) и input (en-US)
Общие поддерживаемые атрибуты autocomplete , inputmode , maxlength , minlength , pattern , placeholder , readonly , required , and size
IDL атрибуты selectionStart , selectionEnd , selectionDirection , и value
Методы select() (en-US), setRangeText() (en-US), и setSelectionRange()

Значения

Атрибут value содержит DOMString , значение которого является текущим содержимым элемента редактирования текста, используемого для ввода пароля. Если пользователь ещё ничего не указал, это значение представляет собой пустую строку ( «» ). Если указано свойство required , то поле ввода пароля должно содержать значение, отличное от пустой строки, которое должно быть действительным.

Если указан атрибут pattern , содержимое элемента управления «password» считается действительным только в том случае, если значение проходит проверку; см. Validation для получения дополнительной информации.

Примечание: Символы строки (U+000A) и возврата каретки(U+000D) недопустимы в значении поля «password» . При вставке пароля, возвращаемые символы удаляются из значения.

Использование полей ввода пароля

Поля ввода пароля обычно работают так же, как и другие текстовые поля ввода; основное отличие состоит в том, чтобы скрывать введённый контент, чтобы люди, не знакомые с пользователем, не могли прочитать его пароль.

Простое поле ввода пароля

Здесь мы видим самый простое поле ввода пароля, с меткой, установленной с помощью элемента .

label for="userPassword">Пароль:label> input id="userPassword" type="password" /> 

Поддержка автозаполнения

Чтобы менеджер паролей пользователя автоматически вводил пароль, укажите атрибут autocomplete . Для паролей должно быть одно из следующих значений:

Разрешить браузеру или менеджеру паролей автоматически заполнять поле пароля. Это не так информативно, как использование «current-password» или «new-password» .

Запрещает браузеру или менеджеру паролей автоматически заполнять поле пароля.

Разрешить браузеру или менеджеру паролей вводить текущий пароль для сайта. Это даёт больше информации, чем «on» , так как позволяет браузеру или менеджеру паролей знать, что в настоящее время известен пароль для сайта в поле, а не используется новый.

Разрешить браузеру или менеджеру паролей автоматически вводить новый пароль для сайта. Он может быть автоматически сгенерирован на основе других атрибутов элемента управления или может просто указать браузеру представить виджет «предлагаемого нового пароля».

label for="userPassword">Пароль:label> input id="userPassword" type="password" autocomplete="current-password" /> 

Обязательное заполнение пароля

Чтобы сообщить браузеру пользователя, что поле пароля должно иметь действительное значение перед отправкой формы, просто укажите Boolean атрибут required .

label for="userPassword">Пароль:label> input id="userPassword" type="password" required /> 

Указание режима ввода

Если ваше приложение лучше обслуживается с использованием другого режима ввода, чем по умолчанию, вы можете использовать атрибут inputmode для определённого запроса. Наиболее очевидным вариантом использования является то, что ваше приложение использует в качестве пароля числовое значение (например, ПИН). Например, мобильные устройства с виртуальными клавиатурами могут переключаться на макет цифровой клавиатуры вместо полной клавиатуры, чтобы облегчить ввод пароля.

label for="pin">ПИН:label> input id="pin" type="password" inputmode="numeric" /> 

Настройка длины пароля

Как обычно, вы можете использовать атрибуты minlength и maxlength , чтобы установить минимальную и максимальную допустимую длину пароля , Этот пример дополняет предыдущий, указав, что PIN-код пользователя должен быть не менее четырёх и не более восьми цифр. Атрибут size используется для обеспечения того, чтобы элемент управления ввода пароля имел ширину в восемь символов.

label for="pin">ПИН:label> input id="pin" type="password" inputmode="numeric" minlength="4" maxlength="8" size="8" /> 

Выделение текста

Как и другие элементы управления текстовой записью, вы можете использовать метод select() (en-US) для выбора всего текста в поле пароля.

HTML
label for="userPassword">Парольlabel> input id="userPassword" type="password" size="12" /> button id="selectAll">Выделить всеbutton> 
JavaScript
.getElementById("selectAll").onclick = function (event)  document.getElementById("userPassword").select(); >; 
Результат

Вы также можете использовать selectionStart и selectionEnd , чтобы получить (или установить), какой диапазон символов в элементе управления, и selectionDirection , чтобы узнать, какой выбор направления произошёл (или будет расширен в зависимости от вашей платформы, см. его документацию для объяснения) , Однако, учитывая, что текст затенён, их полезность несколько ограничена.

Валидация

Если ваше приложение имеет ограничения по набору символов или любые другие требования для фактического содержимого введённого пароля, вы можете использовать атрибут pattern , чтобы установить регулярное выражение, чтобы автоматически гарантировать, что ваши пароли соответствуют этим требованиям.

В этом примере допустимы только значения, состоящие как минимум из четырёх и не более восьми шестнадцатеричных цифр.

label for="hexId">Hex ID:label> input id="hexId" type="password" pattern="[0-9a-fA-F]" title="Enter an ID consisting of 4-8 hexadecimal digits" /> 

Этот Boolean атрибут указывает, что поле пароля недоступно для взаимодействия. Кроме того, отключённые значения полей не отправляются с формой.

Примеры

Запрос номера социального страхования

В этом примере принимается только ввод, который соответствует формату действительного номера социального страхования Соединённых Штатов. Эти цифры, используемые для целей налогообложения и идентификации в США, представлены в форме «123-45-6789». Также существуют различные правила, для которых допустимы значения в каждой группе.

HTML
label for="ssn">SSN:label> input type="password" id="ssn" inputmode="number" minlength="9" maxlength="12" pattern="(?!000)([0-6]\d|7([0-6]\d|7[012]))([ -])?(?!00)\d\d\3(?!0000)\d" required autocomplete="off" /> br /> label for="ssn">Value:label> span id="current">span> 

Здесь используется pattern , который ограничивает введённое значение строками, представляющими номера юридической информации Социальной защиты. Очевидно, что это регулярное выражение не гарантирует действительный SSN, но гарантирует, что число может быть единым; он обычно избегает недопустимых значений. Кроме того, он позволяет разделять три группы цифр пробелом, тире («-«) или ничем.

В inputmode установлено значение «number» , чтобы побудить устройства с виртуальными клавиатурами переключаться на макет цифровой клавиатуры для облегчения ввода. Для атрибутов minlength и maxlength установлено значение 9 и 12 соответственно, чтобы требовалось, чтобы значение было не менее девяти и не более 12 символов (первый не разделяет символы между группами цифр и последними с ними). Атрибут required используется для указания того, что этот элемент управления должен иметь значение. Наконец, autocomplete установлен «off» , чтобы избежать попыток установить пароли менеджеров паролей.

JavaScript
var ssn = document.getElementById("ssn"); var current = document.getElementById("current"); ssn.oninput = function (event)  current.innerHTML = ssn.value; >; 
Результат

Спецификация

Specification
HTML Standard
# password-state-(type=password)

Совместимость с браузером

BCD tables only load in the browser

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 4 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *