Login sicherheit & header Problem
Samuel Vogel
- php
0 Andavos0 TomIRL0 Samuel Vogel0 Henryk Plötz0 TomIRL
0 Tom
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,
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
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,
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
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
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
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
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.
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
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.
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