我有一个登录页面,我使用数据库提交限制的概念来验证用户输入的电子邮件和密码。 错误说:验证页面上未定义索引:'txtMail'。我在登录页面的readyState和status属性之后有一个警报框,以了解我从服务器端获得的结果。
<html> <head> <title>LOGIN FORM</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script> function check() { var name = document.getElementById('txtMail').value; var pass = document.getElementById('txtPass').value; var msg=""; if(name == "" || pass == "") { if(name == "") { msg="Please Enter Email ID"; document.getElementById('errMail').innerHTML=msg; } else if(pass == "") { msg="Please Enter Password"; document.getElementById('errPass').innerHTML=msg; } else { msg=""; document.getElementById('errMail').innerHTML=msg; document.getElementById('errPass').innerHTML=msg; } } else if(name == "" && pass == "") { msg="Please Enter All The Details"; alert($msg); } else { alert("Login Succcessful"); } } function validate(element) { var xmlhttp; //var m= document.getElementById('txtMail').value; // var p=document.getElementById('txtPass').value; if(window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new Activexobject("Microsoft.XMLHTTP"); } var myField=element; xmlhttp.open('GET','validate.php?'+myField.id+"="+myField.value,true); xmlhttp.send(); xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { //alert(""+m); // alert(""+p); var response=xmlhttp.responseText.split("||"); alert(""+response); } var divname="err"+myField.id.substring(3); var mydiv=document.getElementById(divname); if(!eval(response[0])) { mydiv.innerHTML=response[1]; myField.valid=false; } else { myField.valid=true; mydiv.innerHTML=""; } var btn=document.getElementById("LoginBtn"); btn.disabled=!isValidForm(); } }; function isValidForm() { var f1=document.getElementById("txtMail"); var f2=document.getElementById("txtPass"); return(f1.valid && f2.valid); }; function redirection() { window.location="signup.html"; } </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"> </script> </head> <body> <center> <br><br> <table> <tr> <td>Email ID: </td> <td><input type=text id="txtMail" name="txtMail" onchange="validate(this)" valid=false> </td> <td><div id="errMail"/></td> </tr> <tr><td><br></td><td/></tr> <tr> <td>Password: </td> <td><input type=password id="txtPass" name="txtPass" onchange="validate(this)" valid=false></td> <td><div id="errPass"/></td> </tr> </table> <br> <div class="container"> <input type="submit" onclick='check()' id="LoginBtn" disabled="true" value="Login"/> <button type="button" class='btn btn-success' onclick="redirection()">Sign up </button> </div> <br> <br> <br> <br> <center><font color="red">© 2007-2015 sharemybooks.in</font> </center> </center> </body> </html>
验证php页面如下:
<?php include 'connection.php'; $v = false; $m = "An Unknown Error Occured"; if(isset($_GET["txtMail"])) { $emailId=$_GET['txtMail']; $checkdata="SELECT Email_Id FROM Customer WHERE Email_Id='$emailId'"; $query=mysql_query($checkdata); if(mysql_num_rows($query)>0) { $v=true; $m=""; } else { $v=false; $m="Email Does not Exists"; } } if(isset($_GET["txtPass"])) { //if(isset ($_GET["txtMail"])) //{ $sql="SELECT * FROM Customer WHERE Email_Id = '".$_GET['txtMail']."' AND Password = '".$_GET['txtPass']."'"; $query=mysql_query($sql); if(mysql_num_rows($query)>0) { $v=true; $m="succ"; } else { $v=false; $m="Invalid Password"; } //} } echo $v."||".$m; ?>
最佳答案
<?php
include 'connection.php';
$sql="SELECT * FROM Customer WHERE Email_Id = '".$_GET['txtMail']."' AND Password = '".$_GET['txtPass']."'";
$row = mysql_fetch_array($sql);
if(!empty($row['Email_id']) AND !empty($row['password']))
{
header("Location: home.php");
}
else
{
$message = "Incorrect USERNAME or PASSWORD";
}
}
关于javascript - 使用提交限制验证密码时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214541/