正在验证并链接到另一个页面
Validating and linking to another page
我已经创建了一个登录页面。在点击提交按钮后,我无法将其链接到下一页。我想验证并重定向到下一页。ie home.php.请帮我找出我缺少的内容。
signin.php
<!DOCTYPE html>
<html>
<head>
<script>
function val()
{
var a=document.signin.user.value;
var b=document.signin.password.value;
if ( a == "admin" && b == "rec"){
alert ("Login success");
window.location = "home.php";
return false;
}
else{
alert("login failed")
}
}
</script>
<meta charset="UTF-8">
<title>LIBRARY </title>
</head>
<body>
<div class="body"></div>
<div class="grad"></div>
<div class="header">
<div>REC<span>LIBRARY</span></div>
</div>
<br>
<br>
<br>
<div class="login">
<form name="signin" method="post" onsubmit="val();">
<input type="text" placeholder="username" name="user"><br>
<input type="password" placeholder="password" name="password"><br>
<input type="submit" id="mybutton" value="login"></form>
</div>
</body>
</html>
问题是onsubmit事件没有返回false
,所以它在JavaScript完成后正常发布表单。即使在成功登录并执行重定向的情况下,表单仍将提交并覆盖重定向。
首先,将return false;
移动到函数的末尾,使其始终执行。
其次,将您的onsubmit="val();"
更改为onsubmit="return val();"
。这意味着onsubmit事件将始终返回false
,并且不会尝试发布表单。
旁注:这绝不是一个安全的系统。任何访问者都可以简单地观察HTML源代码来查找密码,或者直接导航到home.php。对于一个安全的系统,你需要在服务器端(在php中)进行身份验证。
您可以使用preventDefault()Event方法,而不使用onsubmit=val(),如下所示。
document.getElementById("signin").addEventListener("submit", function(e){
e.preventDefault()
// actual code to validate
});
或
可以直接在服务器端尝试一些肮脏的工作来隐藏验证部分
<?php
ob_start();
session_start();
loginForm();
$userinfo = array(
'admin'=>'0b2c082c00e002a2f571cbe340644239'
);
if(isset($_POST['username'])){
if($userinfo[$_POST['username']] == md5($_POST['password'])){
$_SESSION['username'] = $_POST['username'];
header('Location: home.php');
exit();
}else{
?>
<script type="text/javascript">
alert("Oops.... User name or Pasword is worng, Please try again");
</script>
<?php
}
}
function loginForm()
{
?>
<form name="login" action="" method="post">
Username: <input type="text" name="username"> <br><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="login">
</form>
<?php
}
?>
相关文章:
- 根据jQuery中的另一个链接更改url
- 具有双重功能的按钮:在_blank窗口中打开一个链接,再加上_self中的另一个链接
- 通过模糊功能传递链接,而不是单击另一个链接
- 带有数字的 Jquery 幻灯片 - 帮助让数字链接保持颜色,直到选择另一个链接
- 如何使跨度在单击时出现,但在单击另一个链接时消失
- 当外部链接是内部的另一个链接时,外部链接不会包装元素
- 获取链接 href 并将其应用于另一个链接 jQuery
- onclick 不会在通过单击另一个链接创建的链接中触发
- 转到容器中的第一个链接,除非单击另一个链接
- 试图建立一个链接“;活动的”;当单击另一个链接时
- 相同的JQuery函数适用于一个链接,而不适用于另一个链接
- 如何在wordpress网站中使用javascript重定向到另一个链接
- Greasemonkey -找到链接并添加另一个链接
- Javascript AJAX加载一个链接,但不加载另一个链接
- 如何改变悬停时另一个链接的颜色
- 我如何创建另一个链接,以查看在灯箱中的图像-画廊插件
- 防止双击一个链接,但可以点击另一个链接
- 如何在将鼠标悬停在另一个链接上时更改表格背景图像
- 另一个链接将在新选项卡中打开
- 将鼠标悬停在链接上以影响另一个链接