Я хотел бы установить «целевой» cookie для всех пользователей на моем сайте, чтобы обслуживать индивидуальный контент. Файл cookie должен сохраняться при входе / выходе, поэтому я не могу использовать jSession, который очищается при входе / выходе.
Я могу добиться этого по старинке
setcookie( "destinationcookie", $_POST['destination'], strtotime( '+90 days' ) );
$destination = isset($_POST['destination']) ? $_POST['destination'] : $_COOKIE["destinationcookie"];
... но я уверен, что у joomla есть куда лучше спрятаться. PS - документации по этому практически не существует, насколько я могу найти.
joomla-3.x
jinput
cookies
user2097091
источник
источник
Ответы:
Возможно, вы захотите взглянуть на плагин проверки подлинности cookie. Он устанавливает и читает постоянный файл cookie.
Он находится здесь: https://github.com/joomla/joomla-cms/tree/staging/plugins/authentication/cookie
Чтобы прочитать куки, вы можете использовать
Чтобы установить куки, вы используете
Некоторая документация находится на странице API: http://api.joomla.org/cms-3/classes/JInputCookie.html
источник
$lifetime
происходит от параметра в плагине cookie. Аргумент - это время истечения срока действия куки. Вы просто передаете свою собственную ценность там. Аргумент SSL говорит, что cookie будет действителен только для SSL-соединений. В этом случае он просто смотрит на доступ к странице с использованием SSL и соответственно устанавливает флаг безопасности в куки.В последний раз, когда я проводил некоторые исследования в этой области (март 2013 года), я нашел это решение, которое не использует JInput:
Я проверил, как JFactory вызывает JSession, но я не нашел способа установить срок действия при хранении данных.
Внутри системного плагина, используя метод
onAfterRender()
Единственный недостаток, который я обнаружил, заключался в том, что теперь есть два куки с одинаковым именем и содержанием. Я не заметил никаких побочных эффектов.
Надеюсь это поможет.
Источник: Joomla! Общее развитие ›Установить срок действия сеанса интерфейсного пользователя
источник
Попробуйте использовать что-то вроде следующего:
источник
$inputCookie
которую вы не определили - не так ли$cookie
?