0
我有一個登錄腳本,如果成功,應檢查是否存在會話,如果不存在,則顯示登錄表單,發佈後,驗證,如果成功,設置會話。代碼忽略早期成功登錄的有效會話
我成功發佈表單併成功綁定後返回頁面,它完全忽略會話並顯示登錄頁面。
我不知道我在做什麼錯,我有條件錯誤的順序?我應該在測試之前查看會話以查看錶單是否已發佈?
<?
session_start();
// using ldap bind
if(isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password']; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldap://ldap.server")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn,$username,$password);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
$_SESSION['valid_username'] = $username;
} else {
echo "LDAP bind failed...";
}
}
} else {
if(isset($HTTP_SESSION_VARS['valid_username'])) {
print 'you are logged in - congrats';
} else {
?>
<h1>Login</h1>
<form method="post" action="<?=$_SERVER["PHP_SELF"]?>">
<p>username: <input type="text" name="username" /><br />
password: <input type="password" name="password" /></p>
<p><input type="submit" name="submit" value="submit" /></p>
</form><?
}
}
?>