| 

.NET C# Java Javascript Exception

2
Hallo,

ich habe gerade ein sehr merkwürdiges Phänomen. Ein PHP Projekt welches auf 2 Platformen ordentlich läuft. Platform 1 frisches Debian mit Apache und PHP und ein Windows XAMPP.
Auf einem Kunden System happert es noch ein wenig. Ich werde mit einem Fehler konfrontiert der absolut die Wahrheit sagt.

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

Wenn man ein wenig Google'd sieht man schnell das einige Probleme haben, gerade was das Zeichensatz Thema (und Notepad++) angeht oder versehentlich doch eine manuelle Ausgabe vorher geschieht. Bei mir ist es etwas einfacher, ich habe tatsächlich einen ECHO Befehl der z.B. den CSS Link im <HEAD> Bereich printet. Dennoch spuckt der apache/httpd bzw. PHP auf unseren Systemem keinen Fehler aus.

Es sieht also für mich so aus, als würden unsere 2 Systeme trotz des ECHO Befehls die Ausgabe zurückhalten und daher tritt der Fehler nicht auf, da scheinbar der Header noch gesendet werden kann. Nun meine Frage, kann das überhaupt sein? Kann man es vielleicht durch eine PHP Einstellung manipulieren? Oder bin ich vielleicht auf dem Holzweg?

Grüße
06.07.2012
Slashi 390 1 8
1 Antwort
0
Ja das kann sein.
Vermutlich hast du Steuerzeichen am Anfang der php Datei die eine Ausgabe bewirken die du aber unter windows nicht siehst. Ich habe das Problem mit dem Ultraedit. Wenn ich UTF8 Datei bearbeite schreibt er mir immer sowas wie <<effe>> an den Anfang der Datei.
Prüfe mal, ob das Nodepad++ sowas evtl. auch macht. Z.b. Auf dem Debian System oder auf deinem Hostsystem (wenn du ssh Zugang hast) mit Vi in die Datei rein schauen und den Anfang der Datei prüfen.

Ob man das durch die php.ini unterbinden kann, kann ich dir leider nicht beantworten. Evtl. könnte man noch was am Sprachsatz des Webservers schrauben. Ist aber nicht wirklich zu empfehlen. Das würde die Problem vielleicht lössen aber nicht die Ursache.

Gruß Jens
07.07.2012
XJenso 283 6
Ich gebe ja ganz bewusst schon Dinge per ECHO aus. Also sind die Steuerzeichen nicht das Problem. Beispiel:

<?php
echo "Hallo Welt";
header("Location: http://www.google.de");
?>

Zumindest meins Wissen-Stand sollte PHP mich nicht mehr umleiten können, da durch das ECHO die Ausgabe bereits gestartet hat. Auf meinen 2 Testsystemen klappt das jedoch trotzdem. Die Frage ist wieso.
Slashi 07.07.2012

Stelle deine Php-Frage jetzt!