• 06-09-2013, 12:07:58
    #1
    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.
  • 06-09-2013, 12:27:16
    #2
    Üyeliğin başladığı gün users tablosuna başlangıç tarihi girersin daha sonra düzenli kontrol ile başlangıç tarihinden 30 gün geçtiyse active 0 yaparsın olur biter.
  • 06-09-2013, 12:51:14
    #3
    İşte hocam onu bende akıl ettim ama düzenli kontrol kısmını nasıl yapacağım Cron jobs tamamda işlem nasıl olacak?
  • 06-09-2013, 12:59:54
    #4
    Ü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
    #5
    quaick adlı üyeden alıntı: mesajı görüntüle
    İşte hocam onu bende akıl ettim ama düzenli kontrol kısmını nasıl yapacağım Cron jobs tamamda işlem nasıl olacak?
    Ü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.
  • 06-09-2013, 13:13:26
    #6
    Teşekkürler,

    Kayıt tarihini(d/m/y) ve üyelik süresini (30 gün gibi) kayıt ettim.
    strtotime fonksiyonu ile kayıt tarihinden x(= üyelik suresi) gün ileri bugün ise active 0 yaparak sisteme girişi engelledim.
  • 06-09-2013, 13:18:37
    #7
    quaick adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler,

    Kayıt tarihini(d/m/y) ve üyelik süresini (30 gün gibi) kayıt ettim.
    strtotime fonksiyonu ile kayıt tarihinden x(= üyelik suresi) gün ileri bugün ise active 0 yaparak sisteme girişi engelledim.
    Şö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 sana
  • 06-09-2013, 13:32:29
    #8
    Bö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.
  • 06-09-2013, 13:32:39
    #9
    loc adlı üyeden alıntı: mesajı görüntüle
    Şö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 sana
    O da iyiymiş hocam