Ich habe ein Projekt, das auf einem lokalen Server funktioniert, aber nicht auf meinem Produktionsserver, weil Cookies vom Server nicht gesehen werden. Ich habe eine Minimalversion des Codes gemacht, die das Problem auf dem Server wiedergibt:
<?php
if(!isset($_COOKIE['foo'])){
setcookie('foo', 'bar', time() + 7*24*60*60, '/');
echo "Cookie was not found, so we just created it.";
} else {
echo "Cookie was found!";
}
?>
Egal, wie oft ich diese Seite aktualisieren, habe ich immer die „nicht gefunden“ -Meldung. Immer wenn ich versuche, die Variable $_COOKIE
zu loggen, bekomme ich ein leeres Array. Allerdings:
- Das Cookie im Browser vorhanden ist und richtig mit der Bitte
- Das Cookie gesendet wird und in der gleichen Datei (es ist nicht ein Problem mit den
path
) - Dort lesen ist keine Ausgabe vor
setcookie
, und die Datei wird ohne BOM
denken in UTF8 codiert ich dies eine Server-Konfigurationsproblem ist, da der Code lokal funktioniert, aber ich habe keine Ahnung, wo sie suchen müssen. Hat jemand das schon mal gesehen, weißt du, was das verursachen könnte?
Wenn Sie mehr Informationen benötigen, sagen Sie es mir einfach und ich werde es zu meiner Frage hinzufügen. Vielen Dank!
Jeder CDN und/oder Caching-Server beteiligt, der den Cookie schluckt ...? – deceze
Überprüfen Sie die php.ini Ihres Servers auf die Direktive 'variables_order'. Ist das 'C' nicht dabei? http://php.net/manual/en/ini.core.php#ini.variables-order –
@deceze Es ist ein Varnish-Cache eingerichtet, aber diese Seite wird nicht zwischengespeichert. Denkst du, das könnte Kekse schlucken? @Michael, danke für deinen Vorschlag, ich habe es überprüft und es scheint in Ordnung zu sein: 'variables_order = EGPCS' – blex