У меня есть очень простой сценарий входа в систему, использующий сеансы PHP для ограничения доступа, но у меня действительно специфическая проблема. Вход всегда завершается с ошибкой с первой попытки, даже с правильными учетными данными, но вторая и последующие попытки работают без проблем. Я действительно смущен относительно причины, поэтому любая помощь будет оценена.
форма входа в систему с удаленным ненужным кодом (да, я знаю, что хранить данные для входа в файл PHP в виде обычного текста, как правило, плохая идея, но в данном случае это не имеет значения):
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$valid_user = "user";
$valid_password = "password";
if (($_POST['op'] == "ds") && ($username == $valid_user) && ($password == $valid_password)) {
session_start();
session_register('valid');
$_SESSION['valid'] = 'yes';
header("Location: valid.php");
}
?>
<p>Username:<br>
<input type="text" name="username" size=15 maxlength=25></p>
<p>Password:</strong><br>
<input type="password" name="password" size=15 maxlength=25></p>
<input type="hidden" name="op" value="ds">
<p><input type="submit" name="submit" value="login"></p>
и каждая страница, которая нуждается в аутентификации, имеет
require "auth.php"
авторизация.php:
<?php
session_start();
if($_SESSION['valid'] != 'yes') {
header("Location: login.php");
}
?>
session_register('valid');
. Это только говорит php поместить значение$valid
в$_SESSION['valid']
, но вы все равно делаете это вручную (это также должно быть сделано). - person poke   schedule 19.09.2010