2013-10-21 38 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> 
相关问题