JanZmitko Posted March 21, 2004 Report Share Posted March 21, 2004 Hallo Zusammen, ich erhalte folgende Ausgabe bei der Installation auf meinem lokalem Rechner. Leider habe ich keine Antwort im Forum erhalten und deswegen nun auf diesem Wege. Betreffend das Speichern der Session, habe ich bei M?glichkeiten (Datei und Datenbank) versucht. Beim Versuch die Session in eine Datei zu schreiben, ist auch eine Datei angelegt worden. Ich habe folgende Versionen von WAMP installiert: - WindowsXP - apache_1.3.29 - mysql-4.0.18 - php-4.3.4 Vielen Dank schon mal Vorab, Gr??e, Jan Notice: Constant DIR_FS_INC already defined in c:\programme\apache group\apache\htdocs\xtcommerce\xtc_installer\includes\application.php on line 32 Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\programme\apache group\apache\htdocs\xtcommerce\xtc_installer\includes\application.php:32) in c:\programme\apache group\apache\htdocs\xtcommerce\xtc_installer\includes\application.php on line 43 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programme\apache group\apache\htdocs\xtcommerce\xtc_installer\includes\application.php:32) in c:\programme\apache group\apache\htdocs\xtcommerce\xtc_installer\includes\application.php on line 43 Link to comment Share on other sites More sharing options...
mzanier Posted March 21, 2004 Report Share Posted March 21, 2004 anscheinend ein problem mit den cookies bei deinem browser Link to comment Share on other sites More sharing options...
JanZmitko Posted April 3, 2004 Author Report Share Posted April 3, 2004 OK, ich habe noch ein wenig nachgeforscht. Am besten ich f?ge den Artikel, welcher gleichzeitig f?r mich auch die L?sung war hier ein bzw. hier ist der Link: http://www.develnet.org/33.html Typische Fehlerquellen beim Umgang mit PHP-Sessions Warning: Cannot send session cookie - headers already sent... Warning: open(/tmp\sess_..., O_RDWR) failed... Warning: Cannot send session cookie - headers already sent... Der h?ufigste Fehler ist der Versuch eine Session zu starten, nachdem HTML-Daten an den Browser geschickt worden sind. Diesen Versuch quitiert PHP 4 mit "Warning: Cannot send session cookie - headers already sent...". Ein Response - die Antwort - des Webservers teils sich in zwei Bereiche: den Header, der u.a. den Content-Type (z.B. HTML oder Bilddaten) der Daten definiert und die Daten selbst Wird nun von einem PHP-Script z.B. ein Leerzeichen ausgegeben, so nimmt PHP an, dass es sich um HTML handelt und schickt automatisch entsprechende Header und das Leerzeichen (Daten) an den Browser. Versucht nun PHP danach nochmals einen Header zu senden, kommt es zu der beschreibenen Fehlermeldung, da das Senden der Header bereits abgeschlossen ist. Man mag sich jetzt fragen, wo der Zusammenhang zwischen dem Versuch session_start() resp. session_register() auszuf?hren und den Headern besteht. Nun, die Session-Funktionen benutzen Cookies zur Speicherung der Session-ID, und ein Cookie wird als Teil des Response-Headers an den Browser ?bermittelt. In der PHP-Voreinstellung f?hrt jedes Starten der Session zum Versuch einen Cookie mittels einem Header an den Client zu schicken. Die typischen Stolperfallen: Leerzeichen bzw. -zeilen vor dem ersten <? bzw. <?php Delimiter des Scripts oder mit include() oder require() importierte Scriptfragmente, die nat?rlich gar keine Ausgabe produzieren d?rfen - weder vor dem ersten Delimiter, noch dazwischen, noch nach dem letzten. Zus?tzlich kommt durch die auto_prepend_file-Einstellung in der php.ini, bzw. in der Webserverkonfiguration, eine weitere potentielle Fehlerquelle hinzu. -------------------------------------------------------------------------------- Falsch (HTML-Kommentar, Zeile 1 und 2): 1: <!#HTML: meine dynamische Webseite mit Sessions --> 2: 3: <?php 4: @session_start(); 5: ?> Falsch (Leerzeile in Zeile 4): 1: <?php 2: include 'seitenkopf.php'; 3: ?> 4: 5: <?php 6: @session_start(); 7: ?> Richtig: 1: <?php 2: /* 'seitenkopf.php' produziert keine Ausgabe! */ 3: 4: include 'seitenkopf.php'; 5: 6: @session_start(); 7: ?> -------------------------------------------------------------------------------- Merke: Eine Session muss vor der Ausgabe jeglicher Zeichen gestartet werden, also am besten als einer der allerersten Befehle eines Scriptes. -------------------------------------------------------------------------------- Warning: open(/tmp\sess_..., O_RDWR) failed... Windowsbasierte Betriebssysteme benutzen einen Backslash ("\") als Verzeichnistrenner. In der php.ini ist dagegen der Standardpfad f?r die Sessiondateien als /tmp eingetragen - also mit einem normalem Slash ("/"), wie er auf unixoiden Betriebssystemen benutzt wird. Abhilfe schafft hier z.B. das Anlegen eines Verzeichnisses c:\temp und die entsprechende ?nderung in der globalen Konfigurationsdatei php.ini: session.save_path = c:\temp ; f?r Windows -------------------------------------------------------------------------------- Reference Typische Fehlerquellen beim Umgang mit PHP-Sessions http://www.develnet.org/Tech/TypischeFehle...gMitPHPSessions Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.