|
|
|
| моей девушке в университете задили такое задание:
Разроботать хтмл документ для авторизации пользователей.Введенный пользователем пароль должен сравнится с оригиналым паролем сохранненым в ходе самой страницы.длина пароля 10 символов.пред сравнением необходимо преобразовать пароль.Например путем перестановки 1 символа с 10, 2 с 9 и т.д
поскольку в ява абсолютно неразбираюсь прошу Вашей помощи. Заранее спасибо | |
|
|
|
|
|
|
|
для: Dobryy
(23.03.2006 в 14:38)
| | Имеется ввиду Java или JavaScript? | |
|
|
|
|
|
|
|
для: cheops
(23.03.2006 в 15:19)
| | JavaScript | |
|
|
|
|
|
|
|
для: Dobryy
(23.03.2006 в 15:28)
| | Пароль должен храниться прямо в скрипте? | |
|
|
|
|
|
|
|
для: Sergey89
(23.03.2006 в 15:48)
| | Да, в коде | |
|
|
|
|
|
|
|
для: Dobryy
(23.03.2006 в 15:28)
| |
Введите пароль (10 символов):<form action=пройти_на_"защищённую_страницу".htm> <input id=i1 onsubmit=if(this.form.passw.substring(1,10)+this.form.passw.charAt(0)!=this.value){alert("Пароль_неверный");return;}>
<input type=hidden name=passw value="qwertyuiop">
<input type=submit value="перейти">
| пароль будет "wertyuiopq"
Это совершенно ничего не защищает, но соответствует постановке задачи.
Кавычки поставьте где надо в атрибутах для валидации, страницу перехода.
Можно ещё проще, но может не быть по заданию (имеет модальное окно):
<a href=пройти_на_"защищённую_страницу".htm onclick=s="qwertyuiop";return(s.substring(1,10)+s.charAt(0)==prompt("Введите пароль",""));>
|
| |
|
|
|
|
|
|
|
для: 12345
(23.03.2006 в 15:53)
| | Я несовсем правильно пояснил задание:
1. нужно чтоб при загрузке страницы ввыводилось окно с надписью "Введите пароль" (я так понял это называется модальные окна :))
2. если пароль который вводим "1234567890" то в теле страницы он должен хранится в виде "0987654321" и перед сравнением вводимый пароль должен преобразоватся с "1234567890" в "0987654321" | |
|
|
|
|
|
|
|
для: Dobryy
(23.03.2006 в 16:19)
| | Модальное окно - это alert(1),prompt(1,"") в коде JS. В общем, сами посмотрите, что выйдет в коде ниже.
Второе Вы пояснили правильно, но добавили "например", поэтому я не придерживался такой постановки. Если же это надо строго - просто усложнится код, не увеличивая уровень защиты (кто мешает пойти по ссылке, взяв её из кода?).
Впрочем, не очень усложнится. Весь код, который модальным окном будет подвешивать страницу, пока не введут правильный пароль
<SCRIPT>while(prompt("ПАРОЛЬ:","")!="1234567890".split("").reverse().join(""))</SCRIPT>
Этот текст увидим, если пароль правильный
|
Но это не очень правильно для тех, кто не знает пароля (0987654321) - им придётся снимать задачу, иначе не выйдут из цикла. Поэтому допишем выход на другую страницу по отбою:
<SCRIPT>while((s=prompt("ПАРОЛЬ:",""))!="1234567890".split("").reverse().join(""))
if(s==null){location='about:blank';break;}</SCRIPT>
Этот текст увидим, если пароль правильный
|
| |
|
|
|
|
|
|
|
для: 12345
(23.03.2006 в 17:00)
| | Веселое задание - две строки:)
<script>
while((s=prompt("Введите пароль",""))!="0987654321".split("").reverse().join(""))
{alert ("Неверный пароль!");}
</script>
|
Но есть вопросы:
1. что делает split("") , reverse() , join("") - поотдельности?
2. как зделать, чтоб, если пароль введен неверно после alert выводилось еще одно окно с кнопками "продолжить" или "выйти" (есть функия типа alert и prompt)? | |
|
|
|
|
|
|
|
для: Dobryy
(23.03.2006 в 17:54)
| | А возможно, даже преподаватели предполагали другое длинное решение, чтобы посмотреть, как ловко студенты управляются с циклами :).
1. См. справочники JS. (http://javascript.aho.ru/files/js-man.rar(400K) )
2.
while((s=prompt("Введите пароль",""))!="0987654321".split("").reverse().join(""))
if(!confirm ("Неверный пароль! Повторить попытку?")){location='about:blank';break;}
|
| |
|
|
|