web-dev-qa-db-ja.com

Cookieにデータを保存する

Ajaxを介して製品ページからカートに一時データ(IDおよび名前)を保存したい。問題は、Joomlaファイルの未処理を使用して、Cookieに新しい変数を記録することです。私は試した:

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

しかし、var_dump($ _ COOKIE)には、値を持つ「myCoolie」変数はありません。

そして、おそらく安全のために、製品をカートに保管するためにCookieではなくSessionを使用する必要がありますか?

3
user3774771

コードが最初に機能しないという問題が原因で、get値に基づいてset cookie値が試行されます。これは常にnullです。初期値を設定することはありません。

Cookieを設定するには、以下を使用できます。

$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());
4
Lodder

これはあなたを助けることができます。

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

setvarメソッドとgetStringメソッドを使用する

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

または

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

または

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

0
Info Truth