Ankündigung

Einklappen
Keine Ankündigung bisher.

Warning: Cannot modify header information - headers already sent by

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Warning: Cannot modify header information - headers already sent by

    Andauernd sagt er mir, das die Header-Infos schon gesendet sind. Habe zig mal gegoogelt und die Pages sagen mir nur, das halt keine Leerzeilen oder Leerzeichen da sein sollen - so wie ich es verstanden habe.

    Jetzt ist meine Frage, wie ich das endlich mal realisieren kann - Denkanstoss

    Versuche den Code lauffähig zu machen, habe ich - wie man dem Code entnehmen kann, genug gemacht.

    Sollte ich den Cookie via function am Anfang der Datei dann in der If-Abfrage starten, oder wie?!

    Warning: Cannot modify header information - headers already sent by (output started at /www/XX/XX/XX/XX/XX/index.php:4) in /www/XX/XX/XX/XX/XX/index.php on line 35

    Warning: Cannot modify header information - headers already sent by (output started at /www/XX/XX/XX/XX/XX/index.php:4) in /www/XX/XX/XX/XX/XX/index.php on line 36
    PHP-Code:
    <?
    error_reporting(E_ALL);
    include("http://www.XXX.XXX/XX/XX/XX/mysql-c_s-de.inc");
    echo "<body bgcolor=#000000>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<form action=index.php method=post>";
    echo "<p align=center><b><font face=Arial color=#FFFFFF>Benutzername</font></b></p>";
    echo "<p align=center><input type=text size=16 name=Benutzername></p>";
    echo "<br>";
    echo "<br>";
    echo "<p align=center><b><font face=Arial color=#FFFFFF>Passwort</font></b></p>";
    echo "<p align=center><input type=password size=16 name=Passwort></p>";
    echo "<br>";
    echo "<p align=center><input type=submit border=0 value=OK>";
    echo "</form>";
    $Benutzername = $_POST['Benutzername'];
    $Passwort = $_POST['Passwort'];
    if($Benutzername!='' && $Passwort!=''){
    $query = "SELECT Benutzername,Passwort,Recht FROM ssap WHERE Benutzername='$Benutzername'";
    $sql = mysql_query($query);
    $ds = mysql_fetch_object($sql);
    $NameSSAP = $ds->Benutzername;
    $PasswortSSAP = $ds->Passwort;
    $RechtSSAP = $ds->Recht;
    $Benutzername = $_POST['Benutzername'];
    $Passwort = $_POST['Passwort'];
    if ($NameSSAP==$Benutzername && $PasswortSSAP==sha1(md5($Passwort))) {
    setcookie("Benutzername", "$NameSSAP", 0);
    setcookie("Passwort", "$PasswortSSAP", 0);
    echo "<p align=center><a href=http://www.XXX.XXX/XX/XX/XX/index2.php><font face=Arial color=#FFFFFF>Bitte klicken Sie hier, um in den Adminbereich zu gelangen</font></a></p>";
    //$Benutzername = $_POST['Benutzername'];
    //$Passwort = $_POST['Passwort'];
    //$Passwort2 = sha1(md5($Passwort));
    //setcookie("Benutzername", $Benutzername);
    //setcookie("Passwort", $Passwort2);
    //include("help1.php");
    }else{
    echo "<p align=center><font face=Arial color=#FFFFFF><b>KEIN ZUGRIFF M&Ouml;GLICH!</b></font></p>";
    }}
    ?>


  • #2
    Überhaupt keine Ausgabe! Kein echo, kein inline-HTML-Code, keine entspr. Leerzeichen oder BOM-Header.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Headers already sent - PHP.de Wiki

      Kommentar


      • #4
        Cookies und Sessions musst du ganz oben im PHP-Skript setzen.
        Davor darf keine Ausgabe erfolgen, weil du den HTTP-Header nicht verändern kannst, nachdem er schon abgesendet worden ist.

        Und ich würde es einfacher finden, wenn man einfach ein stylesheet nutz, anstatt immer mit dem <font>-Tag zu arbeiten.
        In Zeile 25 möchtest du wahrscheinlich überprüfen, ob die Felder leer sind oder nicht. Dafür gibt es extra vordefinierte funktionen namens isset() oder empty().
        Die genaue Funktion kannst du im Handbuch nachlesen. empty() kannst du natürlich auch invertieren.


        mfg

        Kommentar


        • #5
          Zitat von DD64 Beitrag anzeigen
          Cookies und Sessions musst du ganz oben im PHP-Skript setzen.
          Davor darf keine Ausgabe erfolgen, weil du den HTTP-Header nicht verändern kannst, nachdem er schon abgesendet worden ist.
          Oder du bufferst die Ausgabe mit ob_start und ob_end_clear
          Ist ganz nützlich, wenn man z.B. eine header-Weiterleitung mittendrinnen machen will. Wer allerdings schön nach EVA-Prinzip arbeitet, löst dieses Problem auch ohne Buffern
          www.Speedcube.de, werde Speedcubing Meister! (Rubik's Cube lösen)

          Kommentar


          • #6
            Wenn in dieser datei
            http://www.XXX.XXX/XX/XX/XX/mysql-c_s-de.inc
            das drinsteht was der name vermuten lässt, ist das Skript unsicher.

            Kommentar

            Lädt...
            X