it-swarm-id.com

Apa yang bisa menyebabkan data sesi Joomla hilang sesekali?

Pertanyaan saya terinspirasi oleh masalah lama yang saya pikir tidak saya selesaikan dengan baik. Saya menyimpan informasi array dalam sesi Joomla yang saya akses beberapa saat kemudian. Saya menemukan bahwa sebentar-sebentar variabel Joomla yang saya atur hilang.

Untuk menarik Anda dapat melihat masalah asli saya di https://stackoverflow.com/questions/13052495/how-to-prevent-race-conditions-when-writing-reading-joomla-session-variables-fr =

Saya tidak akan menanyakan pertanyaan yang sama, tetapi saya berharap mendapatkan jawaban untuk pertanyaan terkait berikut.

  1. Apa yang bisa menyebabkan data sesi Joomla hilang sesekali?
  2. Bagaimana saya bisa memecahkan masalah variabel sesi Joomla yang hilang?
1
TryHarder

Berdasarkan apa yang saya lihat, ada beberapa cara agar data sesi "hilang".

  1. Cara pertama adalah persis apa yang telah disebutkan atau disarankan orang. Di sinilah Anda mencapai batas timer sesi. Setelah penghitung waktu sesi tercapai, sesi dihapus dari memori.

  2. Saat Anda keluar, data sesi Anda dihapus. Itu tergantung pada fungsi logout yang dipanggil dan versi Joomla mana. Saya telah melihat beberapa contoh di mana hanya bagian Sesi Joomla dibersihkan. Saya juga telah melihat contoh di mana seluruh $ _SESSION global dihapus.

  3. Saya juga telah melihat beberapa contoh mencoba untuk menyimpan data sesi melalui API Joomla tidak menyimpan apa pun atau menyimpannya di tempat yang tidak Anda harapkan. Setelah Anda mengatur variabel sesi, buang sesi untuk memastikan itu diatur dan di mana Anda pikir itu.

  4. Yang ini lebih umum untuk data sesi yang hilang secara acak. Ini adalah ketika Anda menekan batas www/non-www atau http/https. Apache (server web utama untuk situs Joomla) kadang-kadang menjadi bingung ketika browser yang sama melintasi batas www/non-www atau http/https. Beberapa pengaturan menanganinya dengan baik, yang lain tidak, tetapi sangat umum. Inilah bagian yang menarik, itu bahkan tidak harus menjadi tautan utama yang mereka tautkan ke jembatan itu, itu bisa berupa CSS, file JS, gambar, dll. Pada halaman yang sama yang melintasi www/non- www atau http/https jembatan yang dapat menyebabkan masalah. Ini sangat langka akhir-akhir ini tetapi saya sudah melihatnya di lebih dari satu situs.

Ini adalah satu-satunya cara saya dapat memikirkan kelelawar yang dapat menunjukkan perilaku ini.

2
Donald Champion

Kemungkinan lain adalah bahwa data sesi terpotong karena karakter bahasa. Jika menyimpan di db periksa data sesi sudah lengkap (terlampir dengan benar {}).

Misalnya, jika sesi mencoba menyimpan Montréal, sesi tersebut mungkin terpotong ke Montr. Semuanya setelah Montr hilang dan data sesi dapat lebih lama diperbarui.

1
mwf