Ich möchte ein "Ziel" -Cookie für alle Benutzer auf meiner Website setzen, um maßgeschneiderte Inhalte bereitzustellen. Das Cookie muss über das Anmelden / Abmelden hinweg bestehen bleiben, damit ich anscheinend jSession nicht verwenden kann, das beim Anmelden / Abmelden gelöscht wird.
Ich kann das irgendwie auf die altmodische Weise erreichen
setcookie( "destinationcookie", $_POST['destination'], strtotime( '+90 days' ) );
$destination = isset($_POST['destination']) ? $_POST['destination'] : $_COOKIE["destinationcookie"];
... aber ich bin sicher, Joomla hat irgendwo einen besseren Weg versteckt. PS - die Dokumentation dazu ist meines Erachtens praktisch nicht vorhanden.
joomla-3.x
jinput
cookies
user2097091
quelle
quelle
Antworten:
Vielleicht möchten Sie sich das Cookie-Authentifizierungs-Plugin ansehen. Es setzt und liest einen dauerhaften Cookie.
Es ist hier zu finden: https://github.com/joomla/joomla-cms/tree/staging/plugins/authentication/cookie
Zum Lesen eines Cookies können Sie verwenden
Um ein Cookie zu setzen, verwenden Sie
Einige Dokumentationen finden Sie auf der API-Seite: http://api.joomla.org/cms-3/classes/JInputCookie.html
quelle
$lifetime
kommt von einem Parameter im Cookie-Plugin. Das Argument ist der Zeitpunkt, zu dem der Cookie abläuft. Sie geben dort einfach Ihren eigenen Wert weiter. Das SSL-Argument gibt an, ob das Cookie nur über SSL-Verbindungen gültig ist. In diesem Fall wird nur geprüft, ob auf die Seite über SSL zugegriffen wird, und das Sicherheitsflag im Cookie entsprechend gesetzt.Als ich das letzte Mal (März 2013) in diesem Bereich recherchiert habe, habe ich diese Lösung gefunden, die JInput nicht verwendet:
Ich habe überprüft, wie JFactory JSession aufruft, aber ich habe keine Möglichkeit gefunden, den Ablauf beim Speichern von Daten festzulegen.
Innerhalb eines System-Plugins mit der Methode
onAfterRender()
Der einzige Nachteil, den ich festgestellt habe, war, dass es jetzt zwei Cookies mit identischem Namen und Inhalt gibt. Ich habe keine Nebenwirkungen bemerkt.
Hoffe das hilft.
Quelle: Joomla! Allgemeine Entwicklung ›Legen Sie den Ablauf der Front-End-Benutzersitzung fest
quelle
Versuchen Sie Folgendes:
quelle
$inputCookie
die Sie nicht definiert haben - sollte das nicht sein$cookie
?