Schon wieder ein Problem diesmal (headers already sent)

danyh

Mitglied
Ich versteh es nicht ist das eine Proble gelöst kommt schon das nächste :(

Ich muss mich bei meiner Seite einloggen und habe je nachdem was für ein User sich einloggt
in der login php die jeweilige Abfrage gestartet wer sich anmeldet und öffnet dann die Seite für User 1 oder User 2

funktioniert auch Prima nur bekomme ich dann nachdem einloggen auf der nächsten Seite den Fehler
PHP:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\main.php:67) in C:\xampp\htdocs\test\login.php on line 30

Wenn ich die Abfrage rausnehme und mich dann einlogge geht es aber dann komm ich mit beiden Benutzernamen logischerweise auf ein und die selbe Seite das darf natürlich nicht sein !

Ich habe schon viel über

Warning: Cannot modify header information - headers already sent by

gelesen aber noch keine Lösung dafür gefunden.

Ich weiss das keinerlei html tags vor header ausgeführt werden dürfen und auch kein Leerzeichen oder sonstiges das ist auch nicht der Fall bei mir !

Ich frag mich nur wie ich abfragen kann wer sich angemeldet hat wenn nicht in der login.php?

Weisst da jemand wie ich das lösen kann ?

Danke nochmals
 
Moin,

wenn PHP sagt,
output started at C:xampphtdocstestmain.php:67
...dann ist das so, da kannst du sicher sein :-)

Wenn dort keine Ausgabe von Skriptseite her erfolgt, hast du dort vielleicht irgendeinen Fehler....der seinerseits die Ausgabe einer Fehlermeldung nach sich zieht.
 
Ok hier mal die Zeile aus der main.php wo angeblich der Fehler sein soll ;)

HTML:
</html>

Da ist nix mehr anschliessend ;)
 
Wenn du schon so viel über diese Fehlermeldung gelesen hast, wird dir vielleicht ab und zu mal der Begriff "Output Buffer" begegnet sein, das wäre die Lösung für dein Problem.
 
Ja das hatte ich auch schon gefunden aber irgendwie geht das nicht bei mir :(

Ich schau mir das nochmal an

Danke dir für deine Hilfe
 
Möchte auch noch kurz Senf los werden:

Grundsätzlich sollte die Ausgabe immer nach der Logik stehen. Frei nach dem EVA-Prinzip: Eingabe => Verarbeitung => Ausgabe.

Wenn man während der Verarbeitung einfach eine Ausgabe tätigt, kann sich das in solchen seltsamen Dingen äußern. Am besten, du baust deine Prüfung und Weiterleitung komplett vor deine HTML-Ausgaben. Dann brauchst du auch nicht mit output-buffering arbeiten, was es gerade für einen Anfänger etwas verkompliziert.

Wenn du Hilfe bei der Organisation des Codes brauchst, müsstest du aber schon deinen aktuellen Sourcecode zeigen.
 
Hab es mittlerweile gelöst ;)

Hatte es ja so !

PHP:
 // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"];
  include ('user.php');

header ("Location: main.php");
}
else
{
header ("Location: index.php");
}

in der include steht ja die Abfrage welche Seite er öffnen sollte und anschließend kam die header Anweisung und da wurde logischerweise nochmal der header gesendet ...

Habe es nun so gemacht und klappt Super ;)

PHP:
 // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_nickname"] = $data["Nickname"]; 
  $_SESSION["user_nachname"] = $data["Nachname"]; 
  $_SESSION["user_vorname"] = $data["Vorname"];
  include ('user.php');


}
else
{

}

:)
War ja irgendwie logisch .... ;)

au man ey trotzdem vielen Dank für die Hilfe :D

Zwar nicht schick aber es läuft :D
 
Zurück