我試圖讓這個代碼工作,我敢肯定它的一個小錯誤。我需要檢查XML的電子郵件地址,並與用戶在表單上輸入的電子郵件進行匹配。我哪裏錯了?如何檢查在XML中匹配的電子郵件
在我最初輸入到XML之前是否需要清理代碼(它是通過另一種形式完成的)?感謝您給予的任何幫助!
XML:
<?xml version="1.0"?>
<customers>
<customer>
<custid>1</custid>
<firstname>ben</firstname>
<lastname>ben1</lastname>
<email>[email protected]</email>
<password>ben</password>
<phone>0200000000</phone>
</customer>
</customers>
HTML &聯JavaScript
<!DOCTYPE html>
<html>
<head>
<title>Existing Customer Login Page</title>
</head>
<body>
<h1>Existing Customer Login Page</h1>
<fieldset>
<form name="myForm" method="post" onsubmit="return loadDoc()">
<legend>
Email: <input type='email' name='email' id="email" />
<br><br>
Password: <input type='password' name='password'
id="password" />
<br><br>
<input type='Submit' value='Log In' />
</legend>
</form>
</fieldset>
<!--Javascript-->
<script type="text/javascript">
function loadDoc()
{
email = document.getElementById('email');
password = document.getElementById('password');
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200)
{
alert('Connected!');
myFunction(xhttp);
}
}
xhttp.open("GET", "data/customer.xml", true);
xhttp.send();
}
function myFunction(xml)
{
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
x = xmlDoc.getElementsByTagName("customer");
alert(xml.responseXML);
for (i = 0; i < x.length; i++)
{
if (x[i].getElementsByTagName("email")[0].childNodes[0].nodeValue
== document.getElementById('email'))
{
alert('Success, you have logged in!');
return (true);
}
alert('Failed to log in');
document.myForm.email.focus();
return false;
}
}
</script>
</body>
</html>
您的客戶密碼是否爲明文,您是否在匹配前下載到客戶端?你知道任何訪問該頁面的人都可以檢查流量並登錄爲你的任何客戶嗎? –
這是一個任務,沒有安全需要。 – Jimmcafairlane