[PHP] Header already sent error

PHPGuy

Mitglied
PHP:
<?php
$username = mysql_escape_string(htmlspecialchars($_POST['username']));
$password = mysql_escape_string(sha1(md5(htmlspecialchars($_POST['password']))));
if($_POST['login']) {
$login = mysql_query("SELECT * FROM members WHERE username='$username' and password='$password'");
$loginrow = mysql_num_rows($login);
if($loginrow == 1) {
session_register("username");
session_register("password");
header("Location:lol.php");
}
elseif(empty($username) || empty($password)) {
?>
<div id="invalid_data">
Füllen Sie die Felder aus!
</div>
<?php
}
else {
?>
<div id="invalid_data">
Überprüfen Sie ihre Daten!
</div>
<?php
}
}
?>

Bei mir kommt andauernd ein Header already sent Error , kann mir da Jemand weiterhelfen ?

Danke im Vorraus.
 
Hast du irgendwelche Ausgaben im Seitenquelltext, wenn du vor header("Location:lol.php"); ein die(); setzt? Prüfst du die $_POST-Werte vorher noch auf Existenz (isset) oder ist das alles, was du gepostet hast? Dann würden Zeilen wie
PHP:
if($_POST['login'])
einen Fehler werfen, wenn noch kein Formular abgeschickt wurde. Falls das zutrifft und du keine Fehler siehst, setze
PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);
an den Skriptanfang.
 
Im Übrigen reicht ein Leerzeichen bereits aus, um dieses Problem zu erzeugen. Es wäre also möglich, dass du irgendwo einen PHP-Anfangstag hast, der nicht direkt links anfängt, sondern davor ein Leerzeichen ist.
 
Zurück