Online Üye
17
●1.070
- 08-10-2009, 00:11:57Merhaba arkadaşlar ben online üye kısmı yapmak istiyorum.üye tabloma uye_online diye bir sütun açtım. time ile 15 dk süre aldım fakat update yaparken tüm üyeleri sildim yanlışlıkla.Bu konuda örnek verebileceginiz bir kod varsa sevinirim.Tşk....
- 08-10-2009, 00:25:09yaptım hocam emin olun bu konuda alıntı bir cevap var ama oda pek saglıklı deil. bildiginiz varsa yardımlarınızı esirgemeyin....
- 08-10-2009, 01:15:28Üyeliği durdurulduşu tabloyu oluştur;
CREATE TABLE IF NOT EXISTS `online` ( `id` int(20) NOT NULL AUTO_INCREMENT, `bitis` varchar(20) NOT NULL, `ip` varchar(100) NOT NULL DEFAULT '', `username` varchar(50) NOT NULL, `userid` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
sonra scriptine aşağıdaki kodları ekle;
//Online süre kontrol if ($_SESSION['username']) { $sure_kontrol = @mysql_fetch_array(mysql_query("SELECT COUNT(id) AS kayit FROM online WHERE bitis <" . time())); if ($sure_kontrol['kayit'] == 0) { mysql_query("UPDATE online SET bitis = '" . (time() + 300) ."' WHERE username = '" . $_SESSION['username'] . "'"); } } $online = @mysql_fetch_array(mysql_query("SELECT COUNT(id) as toplam FROM online")); echo 'Online Üye Sayısı: ' . $online['toplam'];Bu sistem, gerçek online kullanıcı alma sistemidir online ziyaretçi değil. $_SESSION['username'] değişkeninin yerine kendi üyelik sisteminin üye adı sessionu yada cookiesini ekleyeceksin.ör; $_SESSION['username'] yada $_COOKIE['username'] her neyse.
ve son olarak üye login oldugunda sessionun yada cookiesinin kaydedildiği yere
$kontrol = @mysql_fetch_array(mysql_query("SELECT * FROM online WHERE username = '" . $sessiona_keydedilecek_username . "'")); if ($kontrol < 1) { mysql_query("INSERT INTO online (bitis, ip, username, userid) VALUES('" . (time() + 300) ."', '" . $_SERVER['REMOTE_ADDR'] . "', '" . $sessiona_keydedilecek_username . "', '{$userid}')"); }ekleyeceksin. Yani üye login oldugu zaman üye adı sessionunun kaydedildiği zaman bu sorgu çalışacak online tablosuna üyenin giriş yapıldıgını belirten kayıdı ekleyecek. - 08-10-2009, 01:33:55Üyeliği durduruldutablonun zaman fieldini bitis olarak yap ben değiştirmiştim sonradan.
- 08-10-2009, 01:39:05bide where username demişsiniz sql sorgusunda böyle bir şey olmadigindan boş veri geliyor.Onu neden yazdınız acaba ?
- 08-10-2009, 01:42:19Üyeliği durduruldusql hatalıymış yenisini ekledim. Eskisini sil verdiğim yeni sqlyi oluştur düzelir
- 08-10-2009, 01:49:54$sure_kontrol = @mysql_fetch_array(mysql_query("SELECT COUNT(id) AS kayit FROM online WHERE bitis < {$suanki_zaman}"));
if ($sure_kontrol['kayit'] == 0)
kayit diye bir sütun olması gerekmiyor mu ? Çünkü halen boş veri veriyorda...