最近,由於沒有「明顯」的原因,我的登錄表格開始重定向到我的網站的404頁面,而我在任何地方都看不到原因。Html表單似乎正在提交到錯誤的地方?
<?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>
然而,由於某些原因,它仍然重定向到404頁,當<?php echo'http://' . $_SERVER['SERVER_NAME'] . '/login
是完全相同的頁面。除了用戶成功登錄之外,沒有其他重定向,它會轉到不同的頁面。我只是沒有看到是什麼造成了這個問題,其他人能解決這個問題的原因嗎?
編輯: 我的.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);
} ?>
你最近修改了.htaccess文件中的任何重寫文件嗎? – Oldskool
請更具體! 當頁面顯示源代碼中顯示的內容時,您還可以編寫結果嗎? –
您應該使用HTTP_HOST而不是SERVER_NAME。看到這個http://stackoverflow.com/questions/2297403/http-host-vs-server-name – Popnoodles