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.
Header müssen vor jeder Ausgabe gesendet werden. Löschen Sie das "Echo" vor der Kopfzeile, und es wird funktionieren. – Kaylined
'if ($ process == 1) { header (" location: ../../homepage.php/ "); } sonst { header ("location: ../../login.php"); } ' –
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 –