У меня есть сценарий входа в систему, который при успешном выполнении должен проверить, существует ли сеанс, если нет, отобразить форму входа в систему, после публикации, аутентифицироваться, в случае успеха установить сеанс.
После того, как я успешно опубликовал форму, и она успешно связалась, затем вернулся на страницу, он полностью игнорирует сеанс и отображает страницу входа.
Я не знаю, что я делаю неправильно, у меня есть условия в неправильном порядке? Стоит ли искать сессию перед тестированием, чтобы увидеть, была ли опубликована форма?
<?
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><?
}
}
?>