0
下面的代码获取用户名/密码并通过backend.php脚本运行它。登录表单运行脚本没有刷新页面,但需要删除表单才能成功
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#login_form").submit(function() {
var unameval = $("#username").val();
var pwordval = $("#password").val();
$.post("backend.php", { username: unameval,
password: pwordval }, function(data) {
$("#status p").html(data);
});
return false;
});
});
</script>
</head>
<body>
<?php
if(isset($_SESSION['user_session'])) {
print '<p>user '.$_SESSION['user_session'].' logged in</p>';
} else { ?>
<form id="login_form" method="post">
<p>Username: <input type="text" id="username" name="username" /></p>
<p>Password: <input type="password" id="password" name="password" /></p>
<p><input type="submit" value="Login" /></p>
</form>
<div id="status">
<p></p>
</div> <?php
}?>
</body>
</html>
它正确地认证用户,但我想要的是一旦成功隐藏表单。
这里是页面的样子提交表单前:http://grab.by/3hoH
这里是表单已成功提交后,页面:http://grab.by/3hoR
我想我需要运行一些JavaScript来检查成功,如果成功,则不显示表格,如果!成功,显示表格。
我不确定如何做到这一点,如果是这样的话。
backend.php代码
<?php
session_start();
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once('adLDAP.php');
//header('Content-type: text/json');
$adldap = new adLDAP();
if(isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password']; // associated password
// connect to ldap server
$authUser = $adldap->authenticate($username, $password);
if ($authUser === true) {
print "<p>authuser true</p>";
$_SESSION['user_session'] = $username;
if(isset($_SESSION['user_session'])) {
print "<p>session is set</p>";
}
}
else {
print "<p>User authentication unsuccessful</p>";
}
}
?>