• 08-10-2009, 00:11:57
    #1
    Merhaba 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:20:12
    #2
    Üyeliği durduruldu
    arama yapalım lütfen
  • 08-10-2009, 00:25:09
    #3
    yaptı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
    #4
    Ü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:31:02
    #5
    burdaki bitis ne acaba onu eklemeyimi unutmuşsun yoksa ?
  • 08-10-2009, 01:33:55
    #6
    Üyeliği durduruldu
    tablonun zaman fieldini bitis olarak yap ben değiştirmiştim sonradan.
  • 08-10-2009, 01:39:05
    #7
    bide 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
    #8
    Üyeliği durduruldu
    sql hatalıymış yenisini ekledim. Eskisini sil verdiğim yeni sqlyi oluştur düzelir
  • 08-10-2009, 01:49:54
    #9
    $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...