Benim web uygulaması için uygulanan run-of-the-mill giriş-tabanlı PHPSESSID mekanizması var. Beni rahatsız eden bir yönü, bir kullanıcının (bilgisayar A) tarayıcı A yaptığı oturumu yetimleri (bilgisayar B) tarayıcı B başka bir açılır basit senaryo, bu yüzden ileri geri tarayıcı A yürümek ve yetim olduğunu. Muhtemelen tüm bu (makul uzun) zaman dilimi içinde hangi PHPSESSID tanımlama geçerlidir. Her iki oturumu kullanıcı statik verileri görüntülemek ve kullanıcı bu manipüle ise, iki tarayıcılar mutlaka veritabanında ne ile tutarlı olduğunu verilerini göstermek olmaz.
Bu senaryo benim tercih cevap ikinci giriş iki ilk geçersiz içindir. Ben veritabanı kullanıcı kimliği ile ilişkili bir PHPSESSID tutabilirsiniz. Yeter kolay. Şimdi zor kısmı: ikinci oturum açma, nasıl veritabanına yazıldığı PHPSESSID geçersiz olabilir (şimdi geçersiz PHPSESSID ile) ilk oturumları, bir sonraki erişim başarısız olur böyle?
(Yani ikinci PHPSESSID, ben aslında saklamak istediğiniz birini öldürmek istiyor, çünkü ben) (session_destroy kullanamazsınız. Ve ben tam olarak aynı nedenle () SetCookie kullanamazsınız.)
Ben Bir fikir veritabanı erişim sıra numarası içerir. Her yeni istek önceki artı bir döndürür. Eğer sıranın dışında, session_destroy () geçerli Enquirer. Ben bu ile görmek hafif bir rahatsızlık ekstra bir veritabanı her kullanıcının erişimine önce sıra numarası kurtarmak için alıp gerektirir.
Her çerez yayınlar içermeyen sunucunun önbelleğine içinde bir yerde bir kullanıcı kimliği ile bu sıra numarasını ilişkilendirerek herhangi bir yolu var mı?
Teşekkürler.