Wordpress, Ajax und Cookies

Sa 06 September 2014

Filed under Blog

Tags Web Development

Neulich bin ich bei der Entwicklung eines Wordpress-Plugins über die Notwendigkeit gestolpert ein Cookie zu setzen. So weit so gut und eigentlich auch kein Problem. Die Syntax einfach

setcookie("name", "wert", "Lebensdauer");

Schon mehrfach so bei anderen Projekten verwendet, aber bei Wordpress macht es "Probleme", da die Ajax-Requests über admin-ajax.php im Ordner wp-admin laufen und in meinem Fall das Cookie erst nach dem ersten Ajax-Request gesetzt wurde. Damit war das Cookie für das Plugin, das naturgemäß im Ordner wp-content liegt, nur bei Ajax-Requests verfügbar und nicht bei einem "normalen" Seitenaufruf. Zur Hilfe kommt die PHP-Dokumentation:

"path

Der Pfad auf dem Server, für welchen das Cookie verfügbar sein wird. Ist er auf '/' gesetzt, wird das Cookie innerhalb der gesamten domain verfügbar. Ist er auf '/foo/' gesetzt, wird das Cookie nur innerhalb des Verzeichnisses /foo/ sowie allen Unterverzeichnissen wie z.B. /foo/bar/ der domain verfügbar. Der Standardwert ist das aktuelle Verzeichnis, in dem das Cookie gesetzt wurde."

Cookie mit folgendem Code erstellen und es ist auch bei normalen Seitenaufrufen verfügbar:

setcookie("name", "wert", "Lebensdauer", "/");


Comments


PataGonia © jad Powered by Pelican and Twitter Bootstrap. Icons by Font Awesome and Font Awesome More