login / logout problem

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

  • login / logout problem

    hi.

    habe ein script identisch auf 2 versch. servern laufen.
    auf dem einen läufts, auf dem anderen gibt er mir immer folgende fehlermeldung aus beim logout aus einem script:

    Cannot add header information - headers already sent by (output started at /homepages/39/d21014068/htdocs/script-admin/main.php:9)

    hat jemand eine ahnung ?

    danke

  • #2
    hmm, der Fehler spricht für Whitespaces. Lösch mal alle Leerzeilen vor dem HEADER raus und versuchs nco mal

    Berni

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      da ich anfänger bin...hier mal der quelltext:

      <?
      if ($submit)
      {
      // Datenbakverbindung ffnen
      mysql_connect("server.de","user","pass");
      mysql_select_db("dbname");
      $result=mysql_query("SELECT Passwort FROM SCRIPTADMIN_USER WHERE UserName='$UserName'");

      list($DBPasswort) = mysql_fetch_row($result);

      if ($DBPasswort==$Passwort)
      {
      SetCookie("SCRIPTADMIN_USER", $UserName);
      Header ("Location: main.php?pos=home");
      }
      else
      {
      $state="Falsches Passwort/Benutzername";
      }
      }
      if ($action=="logout")
      {
      SetCookie("SCRIPTADMIN_USER", "");
      $state="Erfolgreich Ausgeloggt";
      }
      ?>

      <div align="center">
      <p><font color="#FF0000"><b><? echo $state ?></b></font></p>
      <table cellspacing="0" border="1" width="220">
      <tr>
      <td class="main" width="100%">
      <form method="POST" action="login_admin.php">
      <p align="right">UserName: <input type="text" name="UserName" size="20"><br>
      Passwort: <input type="password" name="Passwort" size="20"> <br>
      <input type="submit" value="Login" name="submit"></p>
      </form></td></tr></table>
      </div>

      Kommentar


      • #4
        ist DAS Zeile 9???

        list($DBPasswort) = mysql_fetch_row($result);

        Ich glaub nicht ... wo tritt denn der Fehler jetzt auf?


        Ach ja, was Berni meinte: Die öffnende PHP-Klammer sollte ganz an Anfang der Datei stehen; es darf kein Byte Text (auch kein Leerzeichen oder Zeilenumbruch an den Browser gesendet werden, bevor du den Cookie setzt.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          jetzt kommt komischerweise folgendes:

          Warning: Cannot add header information - headers already sent by (output started at /homepages/8/d20105057/htdocs/script-admin/main.php:21) in /homepages/8/d20105057/htdocs/script-admin/login_admin.php on line 15

          Erfolgreich Ausgeloggt

          Kommentar


          • #6
            Ok, in Zeile 15 steht der erste SetCookie-Aufruf.
            Nur kann ich bis dahin keine Ausgabe entdecken ... hmm

            Auf dem einen Server läuft's ja anscheinend auch, auf dem andern nicht. Oder werden nur keine Fehler angezeigt?
            Identisch können sie nicht konfiguriert sein, sonst wäre die Ausgabe nicht unterschiedlich.

            Überprüf mal folgende Punkte:

            1) Error Reporting:
            In der php.ini existiert eine Einstellung error_reporting. Der Default-Wert ist E_ALL & ~ ( E_NOTICE ).
            Alle möglichen Werte gibt's im PHP-Handbuch.

            2) Server-Includes
            Der Webserver kann automatisch Dateien vor und nach der Ausführung des HTTP-Requests an den Browser schicken. Ich bin jetzt nur überfragt, ob das die Header stört oder nicht; und die Einstellung find ich auch nicht wieder. *grmbl* Es waren auto_prepend_file und auto_append_file oder etwas in der Art.

            3) Output Buffering
            Ich hab zwar ganz düster im Gedächtnis, dass man das auch in einer Config-Datei umschalten kann, find jetzt aber auch diese Einstellung nicht wieder.

            Nunja, des Problems Lösung kann aber zB sein am Anfang des Skripts den Output zu buffern - ob_start(); - und nach Senden der Cookies erst auszugeben - ob_end_flush();.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar

            Lädt...
            X