web-dev-qa-db-fra.com

Enregistrer les données dans un cookie

Je souhaite enregistrer des données temporaires (identifiant et nom) de la page produit au panier via Ajax. Le problème consiste à enregistrer de nouvelles variables dans un cookie, en utilisant les fichiers en attente du fichier Joomla. J'ai essayé:

$inputCookie  = JFactory::getApplication()->input->cookie;
$value        = $inputCookie->get($name = 'myCookie', $defaultValue = null);
$cookieExists = ($value !== null);
$inputCookie->set($name = 'myCookie', $value = '123', $expire = 0);

mais dans var_dump ($ _ COOKIE), il n'y a pas de variable 'myCoolie' avec value.

Et peut-être que pour des raisons de sécurité, j’ai besoin d’utiliser Session à la place de Cookie pour conserver les produits dans le panier?

3
user3774771

Le problème étant que votre code ne fonctionnera jamais la première fois, votre tentative de définir une valeur de cookie basée sur la valeur get, qui est toujours null comme vous ne définissez jamais la valeur initiale.

Pour définir un cookie, vous pouvez utiliser les éléments suivants:

$app = JFactory::getApplication();

// Get the cookie
$value = $app->input->cookie->get('myCookie', null);

// If there's no cookie value, manually set it
if ($value == null)
{
    $value = HOWEVER YOU GET THE CART DATA
}

// Set the cookie
$time = time() + 604800; // 1 week
$app->input->cookie->set('myCookie', $value, $time, $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection());
3
Lodder

Cela peut vous aider.

https://stackoverflow.com/questions/16206662/how-to-use-cookies-from-a-component

utiliser les méthodes setvar et getString

JRequest::setVar($var, $value, 'cookie');
JRequest::getString($var, $default, 'cookie')

Ou

https://api.joomla.org/cms-3/classes/Joomla.Input.Cookie.html

Ou

http://blog.tormix.com/joomla/set-and-get-cookies-in-joomla-cms/

0
Info Truth