Jump to content
xt:Commerce Community Forum

Fehler Installation - Unter Localhost - Step 6


Recommended Posts

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

  • 2 weeks later...

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

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...