PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warning: Cannot modify header information...



RPG-Man
29.06.2007, 16:02
Hallo Leutz,
Auf meinen Server tritt bei einer Datei das Problem auf:
Warning: Cannot modify header information - headers already sent by (output started at Datei.php:7) in [Datei] on line 21

Der Codebereich:


<?session_start();?>
<html>
<head>
<title>Admin</title>
</head>
<body bgcolor="#c0c0c0" ms_positioning="gridlayout">
<?php
//Datenbankverbindung
Include("../cgi-bin/dbconnect.inc");
//Variablen
$UName = $_POST['Name'];
$UPass = $_POST['login'];
$logout = $_GET['logout'];
$Eingeloggt = $_SESSION['eingeloggt'];
$result = mysql_query("SELECT * FROM users");
While ($row = mysql_fetch_object($result)){
If (isset($UName) && isset($UPass) && $UName ==$row->Name && $UPass == $row->Passwort){
$_SESSION['eingeloggt'] = 'OK';
header ("Location: [PFAD][DATEI] ");
}


Nach der Warnung muss der Fehler in Zeile 7 (started at Datei.php:7) liegen aber ich habe schon alles Mögliche versucht. Das Komische ist noch, das bei Xampp alles läuft.
Hatte jemand von euch schon das Problem und kann mir da weiterhelfen?

mitaki
29.06.2007, 16:23
Der Fehler tritt auf, weil du eine Ausgabe (der HTML-Code in den ersten Zeilen) erzeugst, aber später noch versuchst, einen HTTP-Header zu senden (die header-Funktion mit Location).

Beim senden einer Datei musst du immer Berücksichtigen:

Kopfdaten senden, dann
Ausgabe senden.


Hm, erstellst du den HTML-Code mit einem Microsoft-Produkt?

RPG-Man
29.06.2007, 16:36
Der Fehler tritt auf, weil du eine Ausgabe (der HTML-Code in den ersten Zeilen) erzeugst, aber später noch versuchst, einen HTTP-Header zu senden (die header-Funktion mit Location).

Beim senden einer Datei musst du immer Berücksichtigen:

Kopfdaten senden, dann
Ausgabe senden.


O.K. das wurde mir auch mehrere Male gesagt aber ich wüsste sonst nicht wie das mit dem LOGIN sonst klappen könnte.


If (isset($UName) && isset($UPass) && $UName ==$row->Name && $UPass == $row->Passwort){
$_SESSION['eingeloggt'] = 'OK';
header ("Location: [PFAD][DATEI] ");



Hm, erstellst du den HTML-Code mit einem Microsoft-Produkt?

Nö eigentlich nicht. Den HTML-Code habe ich teilweise mit Delphi 2005 gemacht.^^

mitaki
29.06.2007, 16:45
O.K. das wurde mir auch mehrere Male gesagt aber ich wüsste sonst nicht wie das mit dem LOGIN sonst klappen könnte.
Wo liegt das Problem? Eine Login-Funktionalität kann man auch vor jeder Ausgabe durchführen.

Allerdings finde ich dein System nicht sehr gut.
Es wäre besser, wenn du die eingehenden Werte erstmal überprüfst (sind keine gefährlichen Zeichen etc. vorhanden) und diese dann direkt in der SQL-Abfrage einbaust. Stell sir vor, wenn mit wachsender Benutzerzahl für jede Seite hunderte oder tausende von Datensätzen verarbeitet werden müssen.


Nö eigentlich nicht. Den HTML-Code habe ich teilweise mit Delphi gemacht
Sagt mir was, kann ich aber kein bisschen mit HTML in Verbindung bringen.
Hm, denkst du nicht, es wäre sinnvoller, HTML händisch zu erzeugen (es ist immerhin eine Sprache)? Dadurch würdest du höhere Qualität erreichen.

RPG-Man
29.06.2007, 17:09
Wo liegt das Problem? Eine Login-Funktionalität kann man auch vor jeder Ausgabe durchführen.

Jetzt funktioniert es. Danke


Allerdings finde ich dein System nicht sehr gut.
Es wäre besser, wenn du die eingehenden Werte erstmal überprüfst (sind keine gefährlichen Zeichen etc. vorhanden) und diese dann direkt in der SQL-Abfrage einbaust. Stell sir vor, wenn mit wachsender Benutzerzahl für jede Seite hunderte oder tausende von Datensätzen verarbeitet werden müssen.

Werde ich machen. Danke für den Tipp.


Sagt mir was, kann ich aber kein bisschen mit HTML in Verbindung bringen.Hm, denkst du nicht, es wäre sinnvoller, HTML händisch zu erzeugen (es ist immerhin eine Sprache)? Dadurch würdest du höhere Qualität erreichen.
Da stimme ich dir zu.;)