Saya ingin menetapkan cookie "tujuan" untuk semua pengguna di situs saya, untuk menyajikan konten yang disesuaikan. Cookie harus tetap ada di seluruh login / logout sehingga sepertinya saya tidak bisa menggunakan jSession, yang dihapus pada login / logout.
Saya bisa semacam mencapai ini dengan cara kuno
setcookie( "destinationcookie", $_POST['destination'], strtotime( '+90 days' ) );
$destination = isset($_POST['destination']) ? $_POST['destination'] : $_COOKIE["destinationcookie"];
... tapi saya yakin joomla memiliki cara yang lebih baik disembunyikan di suatu tempat. PS - dokumentasi tentang hal ini praktis tidak ada sejauh yang saya dapat temukan.
joomla-3.x
jinput
cookies
pengguna2097091
sumber
sumber
Jawaban:
Anda mungkin ingin melihat pada plugin autentikasi cookie. Ini mengatur dan membaca cookie yang persisten.
Itu ditemukan di sini: https://github.com/joomla/joomla-cms/tree/staging/plugins/authentication/cookie
Untuk membaca cookie, Anda dapat menggunakan
Untuk mengatur cookie, Anda gunakan
Beberapa dokumentasi dapat ditemukan di halaman API: http://api.joomla.org/cms-3/classes/JInputCookie.html
sumber
$lifetime
berasal dari parameter di plugin cookie. Argumennya adalah saat cookie akan kedaluwarsa. Anda cukup memberikan nilai Anda sendiri di sana. Argumen SSL mengatakan jika cookie hanya akan valid melalui koneksi SSL. Dalam hal ini hanya terlihat jika halaman diakses menggunakan SSL dan menetapkan bendera aman di cookie yang sesuai.Terakhir kali saya melakukan riset di bidang ini (Maret 2013), saya menemukan solusi ini, yang tidak menggunakan JInput:
Saya telah memeriksa bagaimana JFactory memanggil JSession tapi saya belum menemukan cara untuk mengatur kedaluwarsa saat menyimpan data.
Di dalam plugin sistem, menggunakan metode
onAfterRender()
Satu-satunya undian yang saya temukan adalah sekarang ada dua cookie dengan nama dan konten yang identik. Saya belum melihat adanya efek samping.
Semoga ini membantu.
Sumber: Joomla! Pengembangan Umum ›Atur kedaluwarsa sesi pengguna ujung depan
sumber
Coba gunakan sesuatu seperti berikut ini:
sumber
$inputCookie
yang belum Anda tetapkan - bukankah ini seharusnya$cookie
?