2016-11-29 3 views
-1

Ich habe vor kurzem die Server-Software auf MySQL 5.6 und PHP 5.6 aktualisiert (was die Einstellungen in PHP.ini standardmäßig zurückgab).setcookie() funktioniert nicht in PHP

Plötzlich funktionierten die Cookies in der Website nicht mehr, aber die für das installierte pHpbb Forum funktionieren noch. Wie auch immer ich debuggte, so weit ich konnte, habe ich zwei Seiten genau die gleiche mit dem folgenden Code, erzeugt man einen Cookie und den anderen nicht, sondern stattdessen den Fehler der Header bereits auf der Linie von Setcookie gesendet wurde.

Seite 1:

$exp = time() + 604800; 
setcookie("uid6", "6678", "$exp"); 
print_r($_COOKIE); 

Seite 2:

$exp = time() + 604800; 
setcookie("uid7", "6678", "$exp"); 
print_r($_COOKIE); 

Ich habe versucht, zu keinem Ergebnis die Zitate und Parameter innerhalb der Funktion zu verändern.

Ich habe einen Beitrag auf dieser Website von jemandem gesehen, der eine Datei vorgeschlagen hat, die er hatte UTF-8 mit BOM, und wenn er es ohne BOM drehte, funktionierte es. Ich weiß nicht, wie ich das ermitteln kann, weil ich die Codierung für diese einzelnen Seiten nicht eingestellt habe, die dieselben Berechtigungen und keine erkennbaren Unterschiede haben.

+1

"aber stattdessen wird der Fehler der Header bereits auf der Linie von Setcookie gesendet." --- Warum haben Sie nicht erforscht, warum der Fehler dann ausgelöst wird? – zerkms

+1

Die Fehlermeldung zeigt Ihnen auch, wo die erste Ausgabe aufgetreten ist. – CBroe

+0

Wenn bei einem Upgrade die Einstellungen auf die Standardeinstellung zurückgesetzt werden, haben Sie wahrscheinlich die Dateien ersetzt, anstatt eine ordnungsgemäße Aktualisierung durchzuführen. – arkascha

Antwort

0

(Veröffentlicht im Namen des OP).

Dies ist eine Eigenheit nach einem Update. Das Einstellen der Ausgangspufferung auf 4096 löste das Problem, dank der Antwort von CBroe.