最近、「明らかな」理由もなく、ログイン フォームが Web サイトの 404 ページにリダイレクトされるようになりましたが、原因がどこにもわかりません。
<?php echo '<form action="http://' . $_SERVER['SERVER_NAME'] . '/login" method="post">'; ?>
<li><input type="text" name="username" placeholder="Username"></li>
<li><input type="password" name="password" placeholder="Password"></li>
<li><input type="submit" value="Login"></li>
</form>
それでも、何らかの理由で<?php echo'http://' . $_SERVER['SERVER_NAME'] . '/login
、まったく同じページである場合でも、404 ページにリダイレクトされます。ユーザーが正常にログインした場合を除いて、別のページに移動する他のリダイレクトはありません。何が原因なのかわからないのですが、他の誰かが原因を突き止めることができますか?
編集:私の .htaccess は
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?page=$1
認証コード:
<?php
if(empty($_POST) === false) {
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($username) === true || empty($password) === true) {
$errors[] = 'You need to enter a username and password.';
} else if (user_exists($username) === false) {
$errors[] = 'We can\'t find that username. Have you registered?';
} else if (user_active($username) === false) {
$errors[] = 'You haven\'t activated your account!';
} else if(strlen($password) > 32 ) {
$errors[] = 'Password to long.';
}
$login = login($username, $password);
if($login === false){
$errors[] = 'That username/password combination is incorrect.';
}else{
$_SESSION['user_id'] = $login;
header('Location: ' . $_SERVER['SERVER_NAME'] . '/?msg=1');
exit();
}
}
if(empty($errors)===false){
?>
<h1>We tried to log you in, but....</h1>
<?php
print_r($errors);
} ?>