oturumu ile oturum açma kodu

3 Cevap

tek oturumda giriş eğer ... nasıl aynı userid başka oturumdan giriş engellemek için & şifre? ...

3 Cevap

2 parça bu işleyebilir. İlk politika / yapılandırma. 15 dakika gibi bir şey olmak için sessionID üzerinde çerez zaman aşımı ayarlayın. Istedikleri sürece kullanıcı aynı tarayıcıyı kullanarak gibi, onlar gibi birçok sekme açabilirsiniz, ve hatta açık ve tarayıcıyı kapatmak ve hala sessionID ile birlikte, oturum tanımlama düşecek 15 dakika sonra oturum olacak ve onlar son zamanlarda sayfayı ziyaret değil varsa reauthenticate gerekir.

İkinci bölüm geçerli etkin SessionID belirli bir kullanıcı için ne tanımlar. Geçerli Sessionıd ve kullanıcının hesap satırında, son erişim zamanı saklayabilirsiniz. O satırdaki erişim zaman güncellenir yana, son erişim 15 dakikadan az olmuşsa, bu kullanıcı / geçiş kombinasyonu kullanarak hesabı kimlik doğrulaması için reddediyorum. Ayrıca açmış geçerli kullanıcı başkası onlara olarak oturum için çalışıyor görür, böylece bir bayrak yukarı atmak isteyebilirsiniz.

Son olarak, istediğiniz olabilecek bir "gerçek" hesap sahibi durumunda kendi kullanıcı adı / parola aşıldığını kim disambiguate için bir yol sağlar. Birisi oturum gider ve hesap kullanımda olduğundan reddetti alırsa, kendilerini doğrulamak ve diğer kişinin tekmeyi isteyebilirsiniz. Muhtemelen elle uğraşmak istiyorum, bu yüzden onları adamcağız olmadan bunu yapmak için auth mekanizması çeşit yapmazlar. Muhtemelen o zaman failin IP adresini oturum ve belki kusurlu IP ile bu hesaba oturum onları engellemek istiyorum. (Eğer örneğin tüm AOL kullanıcıları için tüm hesaplarını kilitlemek yok Bu şekilde)

Bir oturumda bir kullanıcı hesabı sınırlayıcı, diğer yanıtlar ve yorumlar belirtildiği gibi, biraz zor. Sorun, kullanıcıların normalde (benim deneyim) oturumu kalmamasıdır. Öte yandan PHP üzerinde bir oturumu yok olduğunda da sizi haberdar değildir, bu nedenle daha sonra herhangi bir görevleri yapamaz.

PHP yerleşik oturum ile sopa istiyorsanız ben bu gibi bir yaklaşım kullanmak istiyorum:

  • Kullanıcı tabloya insert session id kullanıcı günlükleri (başka bir session id zaten varsa üzerine yazma) zaman
  • Her sayfa hit çeke current session id kullanıcı tabloda birine eşit ise (değilse session_destroy())

Bu şekilde, her birisi günlükleri, bütün eski oturumlar geçersiz kılınır. Yani "kayıp" oturumları ile herhangi bir sorun yok. Dezavantajı her pageload ek bir sorguyu yürütmek gerekiyor olmasıdır.

Eh, pek çok yol o kadar yapmak için var ... Ben en çok kullandığınız biridir:

1. have @ users table one field that will receive the session id when login successfully occurred...

2. When logout, clear that field... Beware that people may not logout, so you must from time to time check if the user is still on-line...

3. giriş girişimleri, sadece onay alan temizlendiğinde zaman ...

Bu sadece genel bir fikir, ancak ışık yoluna koymak gerekir :)