2017-01-23 3 views
0

Ich möchte nur fragen, warum meine Kopfzeile in PHP nicht umleitet, obwohl die ganze Aussage korrekt ist und richtig funktioniert.PHP: Kopfzeile leitet nicht zum angegebenen Ort um

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"); 
} 
?> 

Hinweis:

Die userDAO instancess fein arbeitet, Zustand "1" wenn Authentifizierung wahr ist.

Warnung in verifyUser.php: Die Zeichenkodierung des HTML-Dokuments wurde nicht deklariert. Das Dokument wird in einigen Browserkonfigurationen mit verstümmeltem Text dargestellt, wenn das Dokument Zeichen außerhalb des US-ASCII-Bereichs enthält. Die Zeichencodierung der Seite muss im Dokument oder im Übertragungsprotokoll deklariert werden.

Der obige Code wird die Meldung "Erfolgreich anmelden!" Nachricht die gleiche mit der fehlgeschlagenen Nachricht, wenn die Bedingung falsch ist. Aber der Header wird nicht auf seinen Standort umgeleitet? Was scheint hier das Problem zu sein? Vielen Dank.

+3

Header müssen vor jeder Ausgabe gesendet werden. Löschen Sie das "Echo" vor der Kopfzeile, und es wird funktionieren. – Kaylined

+0

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

+0

Wenn Sie' display_errors' aktivieren oder Ihr Fehlerprotokoll überprüfen, sollten Sie einen Fehler "Header bereits gesendet" sehen. Lesen Sie mehr: http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php –

Antwort

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

Wenn Sie eine Nachricht zeigen möchten, dann hier in Sitzung usw. Wie $ _SESSION ['msg'] und zeigen Sie es in der homepage.php und login .php. Ich hoffe, es wird für dich funktionieren. – Abbas

Verwandte Themen