Aynı (farklı tarayıcılarda) kullanıcı atanan farklı bir oturum kimlikleri kaydedilir

3 Cevap php

I've implemented a mysql-based session interface in php. I just found out that if I log in to my account using browser A (e.g. Chrome), and then I log in to the same account in another browser B (e.g. IE), each browser is assigned 2 separate session ids. How can I make it such that when I log in again using browser B, I retain the active session of the previous browser A?

Eldeki sorunu ben oturumda bazı bilgileri depolamak kulüpler ve veriler farklı tarayıcılarda aynı kullanıcılar arasında senkronize ediliyor ve yıkım yıkım değil olmasıdır. : S

Bunu başarmak için bir yol var mı?

Teşekkürler!

3 Cevap

Eğer veritabanında oturum depolamak ediyorsanız, ben bir "semantik oturumu" aramak için ne gibi oluştururken, kullanıcı kimliği sizin veritabanının oturum kaydının parçası olarak depolanır sayede bir mekanizma eklemek. Kullanıcı oturum açtığında, başka bir oturum zaten varsa görmek için kontrol edin; eğer öyleyse, session_id() onlara katılacak olan, eski oturumun kimliği yeni bir oturum odaklanmamaya (ve sonraki tüm istekleri için yeni bir oturumun kimliğini değiştirmek gerekir) kullanın. Sadece giriş aşaması esnasında bu eylemi gerçekleştirmek için veya birbirleriyle ve "takas" olmaya çalışan iki seans garip yarış koşulları ile bitirmek olabilir emin olun.

, Oturumda veri depolamak o veritabanında tutmayın.

Oturumlar normalde bir tarayıcıda sadece görünür çerezler, tarafından tespit edilir. Muhtemelen tarayıcılar arasında oturum kimliği paylaşmak için Flash kullanabilirsiniz, ama ben bir kullanım durumunda düşünemiyorum. Oturumun nokta, tek bir tarama oturumu bağlı, ve genel olarak kullanıcıya verileri depolamak için. Eğer genel kullanıcı verileri için sunucu tarafı depolama bir veritabanı veya başka bir formu doldurmanız gerekmektedir.