2010-11-23 9 views
0
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/moonpk/public_html/wallz/preview.php:16) in /home/moonpk/public_html/wallz/loginbox.php on line 2 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/moonpk/public_html/wallz/preview.php:16) in /home/moonpk/public_html/wallz/loginbox.php on line 2 

zu tun, ich bin immer diese beiden Warnung, die ich nicht auf lokalen Server immer ... warum ....PHP Session Warnungen: was

Antwort

1

Sie erhalten sie nicht auf dem lokalen Server, weil Sie eine niedrigere Fehlermeldungsebene haben. Also, was Sie brauchen:

  1. Auf Sie lokale Server bearbeiten php.ini und setzen error_reporting auf E_ALL
  2. Bewegen Sie session_start() Anruf vor Zeile 16 der Sie /home/moonpk/public_html/wallz/preview.php Datei
1

Höchstwahrscheinlich werden Sie einige Leerzeichen außerhalb jeglicher PHP-Tags haben in Dateien, die geladen werden, bevor session_start() ausgeführt wird. Vielleicht hat dein FTP-Client die Sache durcheinander gebracht?

+0

dann denke ich, wenn dies zu testen Ist der Fall, ich muss die Live-Dateien vom Server öffnen und kopieren Sie den Code kopieren und speichern und testen ... – Moon

+0

Verwenden Sie die Fehlermeldung: Es besagt, dass die Ausgabe in Zeile 16 der preview.php gestartet wurde. –

0

Sie haben wahrscheinlich Warnungen auf Ihrem lokalen Server unterdrückt? Das Problem ist, dass Sie eine Ausgabe haben, bevor Sie session_start aufrufen. Gemessen an den Zeilennummern würde ich annehmen, dass Sie vor dem öffnenden PHP-Tag einen Zeilenumbruch haben, aber ohne den Code zu sehen, können Sie keine vollständige Lösung bereitstellen.

+0

vor session_start mache ich ein paar 'echo's, aber was ist das für ein Unterschied ... und ja mein session_start() ist nicht die erste Zeile der Seite .. es ist die erste Zeile einer PHP Seite die ich unten einschließe die ..... ich war los von warnung durch 'error_reporting (0);' was ist das schlimmste & warum sollte es nicht so sein ... – Moon

-1

Wenn Sie die Seite "preview.php" in "loginbox.php" einfügen, überprüfen Sie, dass Sie session_start nur einmal auf einer Seite aufgerufen haben.

Entweder auf preview.php oder loginbox.php, nicht beides.

+0

ja es ist nur einmal enthalten – Moon

+0

-1. Es ist nichts falsch daran, 'session_start' mehrere Male aufzurufen (ich meine, es ist falsch, aber wird diese Warnung nicht erzeugen). –

2

Siehe die erste Notiz auf der php session_start() Seite. session_start() sendet Cookies an den Browser, und der Server sendet keine weiteren Daten (einschließlich Cookies), nachdem bereits Daten gesendet wurden. Dies kann einfach dadurch behoben werden, dass sichergestellt wird, dass nichts an den Browser gesendet wird (z. B. ein echo() oder var_dump() Anruf), bevor Sie session_start() anrufen.

+0

Es ist eher der Server, der die Kopfzeile nicht ändern kann, nachdem sie gesendet wurde. – Gumbo

+0

@Gumbo Vielen Dank für die Klarstellung – eykanal

+0

whats die Verwendung der Sitzungen und PHP, wenn ich nicht nach session_start() – Moon