2017-01-23 6 views
0

Я просто хочу спросить, почему мой заголовок в PHP не перенаправляется, хотя все утверждение верно и работает правильно.PHP: Заголовок не перенаправляется в заданное местоположение

index.php:

<form action="php/Api/verifyUser.php" method="post"> 
    username: <input type="text" name="username"><br> 
    password: <input type="text" name="password"><br> 
    <input type="submit"> 
</form> 

PHP/API/verifyUser.php:

<?php 
include "../userDAO.php"; 
session_start(); 
//$content = file_get_contents("php://input"); 
//$json_data = json_decode($content, true); 
$username = $_POST["username"]; 
$password = $_POST["password"]; 
$userDAO = new UserDAO(); 
$process = $userDAO->verifyUser($username, $password); 
if($process["state"] == 1) { 
    echo "Successfully Log in!"; 
    header("location : ../../homepage.php/"); 
} else { 
    echo "failed to Log in!"; 
    header("location : ../../login.php"); 
} 
?> 

Примечание:

userDAO instancess работает нормально, состояние "1" если аутентификация истинна.

Предупреждение о проверкеUser.php: Символьная кодировка HTML-документа не была объявлена. Документ будет отображаться с искаженным текстом в некоторых конфигурациях браузера, если документ содержит символы вне диапазона US-ASCII. Символьная кодировка страницы должна быть объявлена ​​в документе или в протоколе передачи.

В приведенном выше коде будет отображаться сообщение «Успешно войти в систему!». сообщение то же самое с сообщением об ошибке, если условие ложно. Но заголовок не перенаправляется на его местоположение? В чем проблема? Благодарю.

+3

Руководители должны быть отправлены до выхода любой формы. Удалите «эхо» перед заголовком, и он будет работать. – Kaylined

+0

'if ($ process == 1) { header (" location: ../../homepage.php/ "); } else { header ("location: ../../login.php"); } ' –

+0

Если вы включите' display_errors' или проверьте свой журнал ошибок, вы увидите сообщение «уже отправленные заголовки». Подробнее: http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php –

ответ

0
<?php 
include "../userDAO.php"; 
session_start(); 
//$content = file_get_contents("php://input"); 
//$json_data = json_decode($content, true); 
$username = $_POST["username"]; 
$password = $_POST["password"]; 
$userDAO = new UserDAO(); 
$process = $userDAO->verifyUser($username, $password); 
if($process["state"] == 1) { 
    header("location : ../../homepage.php/"); 
} else { 
    header("location : ../../login.php"); 
} 
?> 
+0

Если вы хотите показать сообщение, то установите здесь в сеансе и т. д. Например $ _SESSION ['msg'] и отобразите его на странице homepage.php и войдите в систему .php. Надеюсь, это сработает для вас. – Abbas