Merhaba,
Bir üyelik sistemim var. Mesela bir kişi 30 günlük üyelik aldı, 30 günün sonunda
users tablosundaki active'in 0 olmasını istiyorum. Users tabloma herhangi bir şey eklemelimiyim? Nasıl yapabilirim?
Teşekkürler,
İyi Forumlar.
Php süreli hizmet
14
●1.184
- 06-09-2013, 12:59:54Üyeler tablosuna tarihi microtime ile girip şuan ki zamanın microtime değerinde çıkartırsın eğer fark 2592000 değerinden büyükse (30 gün) o zaman aktiflik değerini 0 yaparsın.
cronjob içerisine bu işlemleri tüm üyeleri kapsayacak bir sorgu yazıp, cronu günde bir veya istediğin aralıklarla tekrar ettirirsen istediğin işlemi yapmış olursun. - 06-09-2013, 13:08:38Üye kayıt tarihini tutarsın. Aynı zamanda kayıt süresinin ne kadar olacağını belirtir veritabanına girersin. Cronjob ile günlük belirli bir saatte rutin kontrol yaptırırsın. Veritabanında şöyle bir sorgulama yaparsın. Bugün 30 günü dolduran kullanıcılar kimler. Eğer 30 gün dolmuşsa active 0 yap dersin. Mantık budur.quaick adlı üyeden alıntı: mesajı görüntüle
- 06-09-2013, 13:18:37Şöyle de yapabilirsin. Cron job ile çalıştırdığın dosyada dosyanın çalıştırıldığı tarihten 30 gün geri saydırırsın. 30 gün önceki tarih ile bugünün tarihleri arasında kalan üyeliklere bakarsın diye yazacaktım çokta güzel bir çözüm yolu gelmişti aklıma ama 30 günden fazlasını nasıl bulacaksın ozaman. neyse kafa gitmeye başladı yine kolay gelsin sanaquaick adlı üyeden alıntı: mesajı görüntüle
- 06-09-2013, 13:32:29Böyle karmaşık işlemlere ihtiyacınız yok bence
Bir kişi 30 günlük üyelik aldıysa
time()+(30*24*60*60) değerini tabloya kaydedersiniz.
Üye login olduğu sırada şu andaki time değerinden tablodaki bitiş tarihini çıkartırsınız.
süre geçmişse yani eksi değer veriyorsa üyeliğiniz bitmiş dersiniz.
Değer büyükse ayrıca kendisine üyeliğinizin bitmesine şu kadar zaman var dersiniz.
Login sırasında bunu kontrol ettirmek daha mantıklı.
Hiç login olmayan üyeler için devamlı bence db sorgu yapmaya gerek yok.
Cron jobs tamamda işlem nasıl olacak?