Samuel Vogel: Login sicherheit & header Problem

Hallo,

Ich habe einen Login gebastelt und jetzt geht das header("location: ...")senden aber nicht! Es kommt dieser Fehler:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\krk\layout\head.inc:91) in C:\xampp\htdocs\krk\news\login.php on line 19

Ich raff das nicht ich hab noch keine header Informationen gesendet!
Und in der Zeil 91 der "head.inc" steht nur ein eingerücktes "<tr>".

Ich bin für jede Hilfe Dankbar!

samy,

  1. Hallo,
    wenn du sowas machen möchtes, darf du vorher nichts ausgeben.
    Also darf vor dem header auch kein Zeilenumbruch stehen.

    -------Seite oben---
     //Leere Zeile
    <?php
    header(...)
    exit;
    ?>

    Würde nicht gehn, das muss so aussehen:

    -------Seite oben---
    <?php
    header(...)
    exit;
    ?>

    Außerdem darf sich vorher auch kein Popup oder ähnliches öffnen

    MFG
    Andavos

    --
    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
    1. Hallo,

      Ich hab einen Userbereich mit Sessions aber wie kann ich denn dann machen das man aus der Seite rausfliegt wenn die Variable $_SESSION['state'] == "out ist! dann muss ja noch ein "session_start()" davor.

      samy,

      1. Hallo,

        dann muss ja noch ein "session_start()" davor.

        Ja dann mach das doch :-) Vor einem header()-Aufruf darf halt keinerlei HTML-Code oder eine Ausgabe per PHP stehen. Innerhalb deiner PHP-Delimiter darfst Du alles schreiben, nur ausserhalb darfst
        Du keinerlei Ausgabe starten!

        Gruss AndreD

        1. Hallo,
          oder mach eine HTML-Weiterleitung:
          <meta http-equiv="refresh" content="1; URL=ziel.php">

          Aber wie gesagt, du darfst mit PHP bzw. HTML keine Befehle/Texte etc. ausgeben

          MFG
          Andavos

          --
          http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  2. Moin Samy,
    Du bist doch wirklich nicht erst seid heute im Forum, lies Dir bitte mal Dein Posting durch, und überlege Dir was ein Aussenstehender damit anfangen soll.
    Eine Theorie beim befragen der Glaskugel habe ich, Du mußt die Pfadangabe absolut machen nicht relativ.

    TomIRL

    1. Hallo,

      Du bist doch wirklich nicht erst seid heute im Forum, lies Dir bitte mal Dein Posting durch, und überlege Dir was ein Aussenstehender damit anfangen soll.

      Er soll versuchen meine Frage zu beantworten :) nein ich wieß nicht was du meinst

      Eine Theorie beim befragen der Glaskugel habe ich, Du mußt die Pfadangabe absolut machen nicht relativ.

      nein es geht auch relativ wie Andavos gesagt hat es muss nur am Aafang stehen und das kann man an der Fehlermeldung sehen!

      samy

      1. Moin,

        nein es geht auch relativ wie Andavos gesagt hat es muss nur am Aafang stehen und das kann man an der Fehlermeldung sehen!

        Nein, lass dich von RFC 2616, Abschnitt 14.30 eines besseren belehren (und ja, ich habe das auch falsch gemacht gehabt). Im Übrigen: Alle deine Fragen und Fehler werden in der PHP-Doku zu header() aufgeklärt, warum liest du die nicht einfach mal? Da steht das mit dem absoluten URI, und da steht auch, daß du keine Ausgabe vor dem header() haben darfst. Für beide Sachen findest du dort auch ein Beispiel wie du das Problem lösen kannst.

        --
        Henryk Plötz
        Grüße aus Berlin
        ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
        ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
      2. Moin Samy,
        Ich habe ein bischen nachgedacht und habe mich entschloßen Dir eine Antwort zu geben.

        Er soll versuchen meine Frage zu beantworten :) nein ich wieß nicht was du meinst

        Also dann sieh Dir Deine Frage an:
        Du beschreibst einen Fehler, in einer Zeile wo sicher kein Fehler sein kann.
        Du beschreibst was Du machst, aber an den entscheidenden Stellen machst Du "....". Was soll man Dir darauf antworten?
        Wenn ich Dir eine mögliche Fehlerursache schreibe, dann schreibst Du dass ich unrecht hätte.
        Den Verweis zu den RFC hast Du ja bereits, und lesen bildet.

        Auch Du weist, dass hier die Regel gilt, erst selber suchen dann fragen.
        Dagegen hast Du verstoßen.
        Wenn Du Dir die Antwort vom Tom anguckst wirst Du feststellen, dass neben den von Dir offenbar gefundenen Fehler auch noch ein Dutzend andere Möglichkeiten bestehen, genau die gleiche Fehlermeldung zu erzeugen.

        Das der Andavos genau die Stelle gefunden hat wo der Fehler sitzt ist mehr als Zufall, und liegt wohl daran, dass Ihr beide den gleichen Lernstand habt und dehalb noch in etwa die gleichen Fehler macht.

        Die Antwort soll Dich also auch keineswegs entmutigen, sondern anregen darüber nachzudenken welche Fragen Du hier wie stellst.
        Klar bekommst Du hier schnell Antworten, aber ist dies der richtige Weg?

        nein es geht auch relativ wie Andavos gesagt hat es muss nur am Aafang stehen und das kann man an der Fehlermeldung sehen!

        Kann man nicht.
        Und glaube mir ich weiss wovon ich rede.
        TomIRL

        1. Moin,

          Du beschreibst einen Fehler, in einer Zeile wo sicher kein Fehler sein kann.

          Hu?

          Das der Andavos genau die Stelle gefunden hat wo der Fehler sitzt ist mehr als Zufall

          Was?

          Und glaube mir ich weiss wovon ich rede.

          Darf ich mal aus dem ursprünglichen Posting zitieren?

          | Warning: Cannot modify header information - headers already
          | sent by (output started at C:\xampp\htdocs\krk\layout\head.inc:91)
          | in C:\xampp\htdocs\krk\news\login.php on line 19

          Das ist eine der klarsten Fehlermeldungen die PHP zu bieten hat und sie enthält alle wichtigen Informationen: Samuel wollte header() benutzen, es wurden aber schon Ausgaben gemacht. Herrgott, die Fehlermeldung bezeichnet sogar die Stelle an der die Ausgaben gemacht wurden und er gibt ja selbst zu, daß da 'nur ein eingerücktes "<tr>"' steht, er also wissentlich schon etwas ausgegeben hat.

          --
          Henryk Plötz
          Grüße aus Berlin
          ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
          ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
  3. Hello Samy,

    da werden sicher ein paar Dateien included vor der Ausgabe des Header. Und in einer dieser Dateien wird dann wohl hinten ein Leerzeichen oder ein Zeilumbruch dranhängen oder vorne eins davorstehen.

    Das ist eine hässliche Sache, das zu finden, da viele Editoren es nicht vernünftig sichtbar machen können.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen