[英]Authentication using AJAX & PHP
我創建了一個簡單的程序來使用AJAX和PHP模擬身份驗證。 以下是我的代碼。 它會重定向到“/?” 但什么都沒發生。 我試着用checkLogin(); return false;
checkLogin(); return false;
在onclick
事件但它沒有工作。
的index.php
<script type="text/javascript" src="validation.js"></script>
<form>
<p>
<label>Username <abbr title="Required">*</abbr></label>
<input id="usernamelogin" type="text" value="" />
</p>
<p>
<label>Password <abbr title="Required">*</abbr></label>
<input id="passwordlogin" type="text" value="" />
</p>
<p>
<input id="login" type="submit" value="Login" onclick="checkLogin()" />
</p>
</form>
validation.js
function checkLogin(){
var u = document.getElementById("usernamelogin").value;
var p = document.getElementById("passwordlogin").value;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onReadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
if(xmlhttp.responseText == u){
alert(':)');
}
else{
alert(':(');
}
}
}
xmlhttp.open("GET", "login.php?u=" + u + "&p=" + p, true);
xmlhttp.send();
}
的login.php
<?php
$u = $_GET['u'];
$p = $_GET['p'];
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'db';
$con = mysql_connect($host, $user, $pass);
if(!$con) die("Could not connect: " . mysql_error());
mysql_select_db($db, $con);
$query = "select username from login where username = '" . $u . "' and password = '" . $p . "'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo $row['username'];
mysql_close($con);
?>
我更改以下代碼
xmlhttp.onReadystatechange
至
xmlhttp.onreadystatechange
它的工作原理。 並且還使用onclick="checkLogin(); return false;"
在輸入type="submit"
。
你可以做的是從input type =“submit”中刪除onclick事件並將其添加到表單中:
<form onsubmit="return checkLogin()">
要讓它工作,你必須添加
return false
在你關閉函數之前,你的javascript函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.