Session Header Problem auf Server
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfang
byte
code
datei
editor
fehlermeldung
header
index
mark
meldung
ordern
output
problem
session
type
umlaut
url
vermutung
zeichensatz
zeile
-
Hallo alle zusammen.
Ich sitze seit einiger Zeit an einem Problem, für das ich keine Lösung fonden kann.
Ich habe mir für mein kleines CMS einen Administrationsbereich. Offline auf meinem Localhost (XAMPP) hat alles super funktioniert, nur jetzt, als ich alles hochgeladen habe, gibt es immer eine Fehlermeldung:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /XXX/XXX/index.php:1) in /XXX/XXX/XXX/session.php on line 6
Die session.php wird in die index.php includet. Erstmal dachte ich, ich hätte irgendwo ein Lehrzeichen oder so, aber da ist nichts:
<?php error_reporting(E_ALL); include ('XXX/XXX/admin.class.php'); include ('../XXX/XXX/session.php'); include ('../XXX/XXX/config.php');
Hat irgenjemand sonst noch eine Idee woran das liegen könnte?
Viele Dank schonmal im vorraus
Makawa -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die Fehlermeldung sagt dir, dass in der index.php etwas ausgegeben wird... ob Leerzeichen oder Zeilenumbruch oder Text ist hierbei völlig egal.
Normal steht in der Warnung auch wo was ausgegeben wird, aber das kann ich gerade nicht lesen, weil der Android-Browser die Meldung abschneidet
// EDIT (von einem richtigen PC aus):
Meine Vermutung hat sich bestätigt. Hast du eventuell eine Leerzeile am Anfang der index.php?
Beitrag zuletzt geändert: 4.10.2012 18:53:22 von hackyourlife -
Meine Vermutung hat sich bestätigt. Hast du eventuell eine Leerzeile am Anfang der index.php?
Nein eigentlich nicht. Deshalb habe ich ja extra den Anfang hochgeladen. -
makawa schrieb:
Zumindest sagt das die Fehlermeldung:
Meine Vermutung hat sich bestätigt. Hast du eventuell eine Leerzeile am Anfang der index.php?
Nein eigentlich nicht. Deshalb habe ich ja extra den Anfang hochgeladen.output started at /XXX/XXX/index.php:1
Bist du dir sicher, dass du in keiner der Dateien vor dem
auch nur ein einziges Zeichen hast (Leerzeichen, Zeilenumbruch, Tabulator oder sonst was)?<?php
-
hackyourlife schrieb:
Bist du dir sicher, dass du in keiner der Dateien vor dem
auch nur ein einziges Zeichen hast (Leerzeichen, Zeilenumbruch, Tabulator oder sonst was)?<?php
Ja. Ich habe mir die Datei extra nochmal in zwei anderen Editoren angeschaut.
Was mich wundert ist allerdings, dass auf meinem localhost alles funktioniert. -
hallo
die Meldung "headers already sent" deutet aber darauf hin,
das irgendwo schon eine Ausgabe vor session_start() drein ist
es kann auch am Ende der includeten PHP-Dateien sein,
also am Ende nach ?> noch ein Leerzeichen oder Zeilenumbruch ?
-
chatter schrieb:
Prüfe ob das Byte-Order-Mark (BOM) im Editor aktiviert ist. Das muss in PHP auf jeden Fall entfernt/deaktiviert werden.
Danke da scheint das Problem zu liegen. Ich habe die Datei mit Notepad++ jetzt als utf-8 ohne BOM gespeichert. Nun bekomme ich aber an einer Stelle auf meiner Website plötzlich die Zeichenfolge  angezeigt und alle meine Umlaute sind falsch (ö wird zu ö).
Wie kann ich das jetzt noch ändern? -
menschle schrieb:
^^ Was genau steht denn in Zeile 6 der session.php?
Wird da bereits ein Header gesendet?
In der Zeile steht, wie auch die Meldung zeigt, session_start ().
@makawa Woher kommen die Umlaute? Das sieht so aus, als stimmt da irgendwo der Zeichensatz nicht. Gibst du auch im header UTF8 an? DB-Verbindung auch korrekt? -
makawa schrieb:
an einer Stelle auf meiner Website plötzlich die Zeichenfolge  angezeigt
Das ist der UTF-8 BOM
also irgend eine Datei ist noch mit dem UTF-8 BOM vorhanden ... ?!
makawa schrieb:
und alle meine Umlaute sind falsch (ö wird zu ö).
Wie kann ich das jetzt noch ändern?
die Ausgabe (den Header) als UTF-8 festlegen ... in die Zeile nach session_start();
header("Content-Type: text/html; charset=utf-8");
und wenn Du einen HTML HEAD (Meta-Tag) mit "Content-Type" hast:
<head> ... <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ... </head>
-
chatter schrieb:
@makawa Woher kommen die Umlaute? Das sieht so aus, als stimmt da irgendwo der Zeichensatz nicht. Gibst du auch im header UTF8 an? DB-Verbindung auch korrekt?
Ich depp. Hatte den header vergessen. Eine Zeile und alles funktioniert! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage