Je souhaite définir un cookie "de destination" pour tous les utilisateurs de mon site, afin de proposer un contenu personnalisé. Le cookie doit persister pendant la connexion / déconnexion, il semble donc que je ne puisse pas utiliser jSession, qui est effacé lors de la connexion / déconnexion.
Je peux en quelque sorte y parvenir à l'ancienne
setcookie( "destinationcookie", $_POST['destination'], strtotime( '+90 days' ) );
$destination = isset($_POST['destination']) ? $_POST['destination'] : $_COOKIE["destinationcookie"];
... mais je suis sûr que joomla a une meilleure façon de se cacher quelque part. PS - la documentation à ce sujet est pratiquement inexistante pour autant que je puisse trouver.
joomla-3.x
jinput
cookies
user2097091
la source
la source
Réponses:
Vous voudrez peut-être jeter un œil au plugin d'authentification des cookies. Il définit et lit un cookie persistant.
Il se trouve ici: https://github.com/joomla/joomla-cms/tree/staging/plugins/authentication/cookie
Pour lire un cookie, vous pouvez utiliser
Pour définir un cookie, vous utilisez
Une documentation peut être trouvée sur la page API: http://api.joomla.org/cms-3/classes/JInputCookie.html
la source
$lifetime
provient d'un paramètre du plugin cookie. L'argument est le moment où le cookie expirera. Vous passez juste votre propre valeur là-bas. L'argument SSL indique si le cookie ne sera valide que sur les connexions SSL. Dans ce cas, il regarde simplement si la page est accessible en utilisant SSL et définit le drapeau sécurisé dans le cookie en conséquence.La dernière fois que j'ai fait des recherches dans ce domaine (mars 2013), j'ai trouvé cette solution, qui n'utilise pas JInput:
J'ai vérifié comment JFactory appelle JSession mais je n'ai pas trouvé de moyen de définir l'expiration lors du stockage des données.
À l'intérieur d'un plugin système, en utilisant la méthode
onAfterRender()
Le seul tirage au sort que j'ai trouvé était qu'il y a maintenant deux cookies avec un nom et un contenu identiques. Je n'ai remarqué aucun effet secondaire.
J'espère que cela t'aides.
Source: Joomla! Développement général ›Définir l'expiration de la session utilisateur front-end
la source
Essayez d'utiliser quelque chose comme ce qui suit:
la source
$inputCookie
que vous n'avez pas définie - ne devrait-il pas en être ainsi$cookie
?