2013-10-21 64 views
1

我已爲網頁創建了一個登錄頁面。登錄後,用戶應該被重定向到另一個頁面。但是,當您直接在瀏覽器中提供重定向url時,它將打開。它不應該是way.Am我失去了一些東西在這裏.AM新手,請幫我out.I做了JavaScript中的表單驗證,並在代碼中打開重定向URL像下面即使沒有表單驗證,網址也會打開

function check(form) 
{ 
    if(form.userid.value == "myuserid" && form.pswrd.value == "mypswrd") 
    { 
     window.open('demo/index.html','_self') 
      } 
    else 
    { 
     alert("Error Password or Username") 
    } 
} 

的完整代碼:

<html> 
<head> 
    <title>Login page</title> 
<style> 
</style> 
</head> 
<body> 
    <h1> Login Page </h1> 
     <form name="login"> 
      Username<input type="text" name="userid"/> 
      Password<input type="password" name="pswrd"/> 
      <input type="button" onclick="check(this.form)" value="Login"/> 
      <input type="reset" value="Cancel"/> 
     </form> 

    <script language="javascript" > 
    function check(form) 
    { 
     if(form.userid.value == "myuserid" && form.pswrd.value == "mypswrd") 
     { 
      window.open('demo/index.html','_self') 
     else 
     { 
      alert("Error Password or Username") 
     } 
    } 
</script> 
</body> 
</html> 
+0

你得到的警告框? –

+0

在按鈕的onclick/onsubmit事件中,您應該調用函數'check',如下所示: 'return check(this)' 並修改函數check來根據驗證返回true或false。 – learningloop

+0

雅是獲取該警報框和更新上述code.typo錯誤,而在這裏發佈 – user2635299

回答

2

如果要防止在未登錄的情況下查看頁面,則應使用cookie或會話。它在PHP中可用。

在Java腳本,你可以使用localstorage

修改,如果條件爲

if(form.userid.value == "myuserid" && form.pswrd.value == "mypswrd") 
     { 
      window.localStorage.setItem("Login", "true"); 
      window.open('demo/index.html','_self'); 

     } 

,並在您的目的地頁面中添加下面的腳本,demo/index.html

window.onload=function(){ 
if(window.localStorage.getItem("Login")!="true") { 
alert("Please Login"); 
window.open('login.html','_self'); 
} 
}; 

注意:您能夠在登錄後訪問目標頁面。如果您要註銷,在註銷時,您應該設置login項目作爲false -

window.localStorage.setItem("Login", "false"); 

要不,你可以隨時訪問該頁面,如果你已經登錄了aleast一次。

+0

setsup函數沒有被觸發。你錯過了括號。嘗試這個** ** –

+0

並且還定義了括號內的函數setsup(){' –

+0

Thanks :)工作起來就像一個魅力一樣。重定向url,它會打開,因爲localstorage值尚未set.is有任何其他方式將其設置爲默認值爲'假'?所以只有在用戶登錄後才能使用。 – user2635299

0

問題不是o在這方面,但與演示/ book1/index.html頁面。除非您在那裏添加代碼以防止訪問它,否則您將始終能夠在瀏覽器中打開它。我認爲您需要使用某種提供開箱即用身份驗證的框架進行調查。

0

我想你應該試試這個

<html> 
<head> 
    <title>Login page</title> 
</head> 
<body> 
<h1> Login Page </h1> 
    <form name="login"> 
    Username<input type="text" name="userid"/> 
     Password<input type="password" name="pswrd"/> 
     <input type="button" onclick="check(this.form)" value="Login"/> 
     <input type="reset" value="Cancel"/> 
    </form> 
    <script language="javascript" > 
function check(form) 
{ 
    if(form.userid.value == "Username" && form.pswrd.value == "Password") 
    { 
     window.open("http://www.google.com"); 
    } 
    else 
    { 
     alert("Error Password or Username") 
    } 
} 
      </script> 
</body> 
</html> 
相關問題