php aynı giriş kimlik bilgileri ile birden fazla oturum önlemek

3 Cevap php

Benim web sitesi kullanıcılarının izlemek için ödemek zorunda olduğu için prim videolar vardır. Ödeme tamamlandığında ben kullanıcının e-posta id rasgele bir kullanıcı adı ve parola yolluyorum. Sonra aynı anda giriş kimlik no birden fazla kullanıcı kullanımını sağlamak istiyoruz. Bunun için ben giriş kimlik bilgileri ile veri tabanı tablosundaki bir login_status sütun kullanmak ve bunu 1 değişiklik olduğunda bir kullanıcı giriş ve 0 değiştirin kullanıcı oturumu. Yakın tarayıcı veya ağ bağlantısı kaybı meydana gelebilir kullanıcı veritabanını güncellemek olmaz ama eğer sorundur. Sonra login_status undefinitely 1 olacak ve hiç kimse tekrar giriş kimlik bilgilerini kullanabilirsiniz.

Benim görevi gerçekleştirmek için herhangi bir fikrin var mı?

3 Cevap

Nasıl veritabanına bir zaman damgası hakkında yazmak içeri kullanıcı günlükleri kullanıcı hala açtıysa periyodik olarak bu değeri güncelleştirmek için bazı mantık olabilir zaman - örneğin, sayfa değeri güncelleştirmek için bir ajax isteği her 5 dakikada yapabilir falan.

Değeri belirli bir eşiğin daha eski ise o zaman, (diyelim ki, 1 saat) İçinden bir yinelenen giriş izin verebilirsiniz - tabii ki zaman damgası sıfırlamak ve erişimini başkasının önlemek olacaktır.

Bir özel oturum işleyicisi oluşturmayı deneyin. Veri depolamak için doğru yerde oturum bilgileri yanında - ve tam otomatik çöp toplama faydaları olsun.

Kullanıcıların tarayıcılarını kapatılması yerine, süresi dolmuş oturum biçmek için çöp toplama için beklemek zorunda sonra oturuma devam böylece - Ayrıca sabit (ancak güncellenmesi) zaman aşımı süresi olan bir cookie kullanarak bu birleştirmek isteyebilirsiniz.

C.

Periyodik (saatlik?) Veritabanı üzerinden gitmek ve 0 login_statuses tüm değiştirin.

Kullanıcı herhangi bir nedenle siteyi kullandığında 1'e geri değiştirin.

Bu şekilde, hiç kimse bir anda birden fazla 1 saat boyunca kilitli olacaktır.