admin auto delete user fonksiyonu için bir tartışma...

Eklentiler ile ilgili soru, sorun ve tartışmalar.

admin auto delete user fonksiyonu için bir tartışma...

İleti sabri ünal 01.01.2007, 19:26

üyeleri otomatik silde üye uçurmaya karşı önlem...

güzel bir fonksiyon olmasına rağmen kimi yerlerde insanın başını ağrıtabiliyor,

mesela fake_user_delete özelliğini kaldırıp üyeleri silmesini isterseniz ve ayarları yanlış yaparsanız gidiyor...

mesela forumu ziyaret etmeyen üyeleri sil seçeneği...

eğer benim gibi rakamı 30 gün derseniz üye sayınızın 4/3 ünü kaybedebilirsiniz..

tedbir olarak

seçeneğinin önüne

Kod: Tümünü seç
   $deletion_time = $board_config['admin_auto_delete_days'] * 86400;
   $deletion_time_inactive = $board_config['admin_auto_delete_days_inactive'] * 86400;
   $deletion_time_no_post = $board_config['admin_auto_delete_days_no_post'] * 86400;

bu sorguyu ekliyoruz

Kod: Tümünü seç
   if ($board_config['admin_auto_delete_days_inactive'] < 120 )
   {
      // bir güvenlik güncellemesi, hata bile olsa 120 günü doldurmamış üyeler silinemez...
      $board_config['admin_auto_delete_days_inactive'] = 120;
   }



böylece yanlış da ayarlamış olsanız son 120 gün içinde mesaj yazmamış üyeleriniz silinmeyecektir...


ikinci özellik ise mesaj yazmamış üyelerle ilgili... kişi mesaj yazmamış fakat okuyor olabilemez mi? oluyor...

onları da korumaya almak için

Kod: Tümünü seç
   $sql = 'SELECT user_id, username, user_regdate, user_posts FROM ' . USERS_TABLE . '
      WHERE user_id <> ' . ANONYMOUS . "
      AND user_posts = 0
      $fake_delete_sql
      HAVING (user_regdate + $deletion_time_no_post) < " . time();

sorgusunu aşağıdaki ile değiştiriyoruz...

Kod: Tümünü seç
   $sql = 'SELECT user_id, username, user_lastvisit, user_posts FROM ' . USERS_TABLE . '
      WHERE user_id <> ' . ANONYMOUS . "
      AND user_posts = 0
      $fake_delete_sql
      HAVING (user_lastvisit + $deletion_time_no_post) < " . time();

böylece işi kayıt tarihine değil son ziyaret tarihine ayarlıyoruz...

tabii bu kadarcık koruma yetmez en iyisi buna da bir aylık bir sınırı otomatik koymamız lazım...

yukarda eklediğimiz kontrol sorgusunun altına şunu da ekleyelim


Kod: Tümünü seç
   if ($board_config['admin_auto_delete_days_no_post'] < 30 )
   {
      // bir güvenlik güncellemesi, hata bile olsa 30 gündür forumu ziyaret etmemiş üyeler, mesaj yazmamışsalar bile silinemez...
      $board_config['admin_auto_delete_days_no_post'] = 30;
   }

üçüncü kısım ise daha zorlu, üyeleri otomatik sileceğiz, fakat üye hesabını aktif etmemiş olacak?

peki bunun için kişinin kayıt tarihi ile bizim girdiğimiz süre arasındaki tarihi almak ne kadar doğru? çünkü kişiyi biz
cezalandırmak için pasif etmiş olabiliriz? bu durumda en basit şekliyle iki şeyi mantık olarak üretebiliriz...

kişi hesabını aktif etmemişse ya son ziyaret tarihi olmayacaktır veya kayıt tarihiyle aynı olacaktır?

acaba öyle mi?

kişi üyeliğini aktif edene kadar ziyaret tarihi oluşmuyor... bundan yararlanarak yeni bir kontrol daha eklemek lazım...

mesela üye son ziyaret tarihi 2 den küçük ise..

çünkü veritabanında ziyaret etmemiş üyenin kayıt tarihi: 1 olarak görünüyor...

tabii bu yeni bir değişken demek, o durumda az önce sql sorgusunda kullanılmış fonksyionu kullanalım...

diyelim ki üyenin son ziyaret tarihi baktığımız şu zaman değil ise...

bu imkansız olacağına göre yeni sql sorgusu şöyle oluşuyor


....

işin özü, fonksiyonun bu kısmı zaten localde çalışıtıramadık ve daha da uğraşmayı gereksiz görüyorum, ilk iki kısım bana yetiyor..
Mutluyum, biraz komedi takılıyorum! sakın kızmayın yakında geçer, sebebini ben de bilmiyorum! yeni bir aşk da bulmuş değilim!
Kullanıcı avatarı
sabri ünal
Üye
Üye
 
İleti: 1325
Kayıt: 27.10.2005, 15:49
Konum: İstanbul

Re: admin auto delete user fonksiyonu için bir tartışma...

İleti NEFRİT 26.04.2007, 21:36

Tebrikler gerçekten çok mantıklı bir çalışma :)
Kullanıcı avatarı
NEFRİT
Üye
Üye
 
İleti: 287
Kayıt: 17.03.2006, 01:14
Konum: Elazığ

Re: admin auto delete user fonksiyonu için bir tartışma...

İleti superadam 10.07.2007, 19:34

Teşekkürler sabri ünal
Kullanıcı avatarı
superadam
Üye
Üye
 
İleti: 23
Kayıt: 15.02.2007, 14:35
Konum: İstanbul


Soru(n)lar & Tartışmalar



Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

cron