2014-09-20 4 views
0

Я пытаюсь создать веб-страницу, которая запрашивает у пользователя запрос пароля перед загрузкой страницы. После ввода правильного пароля страница начнет загружаться. Если введенный пароль неверен, он будет запрашивать у пользователя пароль до тех пор, пока он не поправится. На веб-странице в настоящее время не запрашивается пароль и идет прямо на страницу.Проверка пароля перед загрузкой страницы

HTML:

<html> 
<head> 
<title>Password Page</title> 
<script type="text/javascript" src="password.js"></script> 
</head> 
<body onload="passwordCheck()"> 
<h1>How'd you know the password?</h1> 
</body> 
</html> 

JavaScript:

// Password: ilikepie 
function passwordCheck(){ 
var password = prompt("Please enter the password."); 

if (password.value=="ilikepie"){ 
window.alert("Password correct!"); 
else{ 
while(password.value !="ilikepie"){ 
window.alert(password);} 
+3

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

+0

Ну, вы подключили свой JavaScript к 'onload', поэтому он не будет работать до * после того, как страница загрузится, потому что это вам сказали. Я думаю, что есть и более серьезные проблемы. –

+1

Ошибки синтаксиса также не помогают. Я бы предложил заложить свой javascript лучше с помощью отступов блоков кода. Тогда вы можете лучше понять, что он на самом деле делает. – Rhumborl

ответ

2

Настройка страницы входа и страницы назначения. На странице входа в систему следует указать пароль, и, когда это будет правильно, измените window.location на настоящую страницу.

function passwordCheck(){ 
    var password = prompt("Please enter the password."); 
    if (password==="ilikepie"){ 
     window.location="realpage.html"; 
    } else{ 
     while(password !=="ilikepie"){ 
      password = prompt("Please enter the password."); 
     } 
     window.location="realpage.html"; 
    } 
} 
window.onload=passwordCheck; 

Вы действительно можете избавиться от этой первой проверки и просто использовать цикл while. Выполнение этого, как мы учим, оставляем в качестве упражнения.

Do Обратите внимание на комментарии по этому вопросу, которые не обеспечивают никакой безопасности вообще. Есть (по крайней мере) две причины, почему это не безопасно. Во-первых, пароль отображается всем, кто знает о «источнике просмотра». Во-вторых, если вы знаете URL-адрес realpage.html, вы можете перейти к нему напрямую, минуя вызов пароля.

Я предполагаю, что вы делаете это как упражнение, и теперь, когда у вас есть что-то, что выполняется без ошибок, вы узнаете об этом. Самый простой эффективный протокол для Интернета - HTTP Basic Access Authentication. Когда вы узнаете все, что вы можете в этом упражнении, прочитайте о Basic Access Authentication.

Смежные вопросы