Online Mi Offline Mi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    merhabalar cümleten


    az önce kendi siteme yaptığım sistemi sizinle paylaşmak istedim , aslında basit bişiy forum filan gibi şeyler için gerekli olabülür
    üyenin online mı offline mı olduğunu göstercez
    öncelikle db ye (ben access kullanıyorum) onoff diye bi sutun açıyoruz. sayı olarak belirliyoruz.

     

    sonra   bunu

     

    <%
    Set foxxly = Server.CreateObject("ADODB.Recordset")
    sor = "Select * from uye Where uid = "&session("uid")
    foxxly.Open sor,Sur,1,3

    foxxly("onoff")= 1
    foxxly.update
    %>

     

    üye giriş dosyasının içine koyuyoruz

    bunuda çıkış dosyasına koyuyoruz. 

    <%
    Set foxxly = Server.CreateObject("ADODB.Recordset")
    sor = "Select * from uye Where uid = "&session("uid")
    foxxly.Open sor,Sur,1,3

    foxxly("onoff")= 0
    foxxly.update
    %>

    db bağlantısını yapmayı unutmayın tabü :)

    sonramasına ; 

    <%
    Set foxxly = Server.CreateObject("ADODB.Recordset")
    sor = "select onoff from uye where kullaniciadi = '"&uye("kimden")&"'"  'burasını kendinize göre düzenleyeceksiniz artık
    foxxly.Open sor,Sur,1,3
    %>

    <% if foxxly("onoff") = "1" Then %>
    onLine
    <% else %>
    offLine
    <% end if %>

    diyerek üyemizin  online mi offline mi olduğunu göstertiyoruz bu kadar =)


    kopiyrayt bay foksli :D


    kelimeler albayım bazı anlamlara gelmiyor.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cold-m4
    cold-m4's avatar
    Kayıt Tarihi: 12/Temmuz/2007
    Erkek

    saol hocam eline sağlık.. peyepe olsadı keşke, asp den hayır yok :) en azından bana :) bu arada önümüzdeki aylarda programlama dersleri veren bisite açıcam netogretim.com gibi, ama içi dolu olcak onun gibi boş olmıcak :) istersen asp döküman konusunda yardımda bulunabilirsin :D :C

    tabi yaşarsam o zamana kadar :S

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek
    cold-m4 bunu yazdı:
    -----------------------------

    saol hocam eline sağlık.. peyepe olsadı keşke, asp den hayır yok :) en azından bana :) bu arada önümüzdeki aylarda programlama dersleri veren bisite açıcam netogretim.com gibi, ama içi dolu olcak onun gibi boş olmıcak :) istersen asp döküman konusunda yardımda bulunabilirsin :D :C

    tabi yaşarsam o zamana kadar :S


    -----------------------------

    hocam kendi  siteme yazamıyom ki :) başkasitelere yazayım bu dökümanı kendi sitem için yazdım burada paylaşıyım dedim

    yaşarsın inşallah :) 


    kelimeler albayım bazı anlamlara gelmiyor.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Sigortacı
    DJ_Alper
    DJ_Alper's avatar
    Bilgi/Destek Madalyası
    Kayıt Tarihi: 03/Ocak/2006
    Erkek
    salla asp yi :)

    Sorularınızı cilginsigortaci@gmail.com a yazabilirsiniz cevaplar instagram sayfasında >>>instagram/cilginsigortaci/ █║▌│█│║▌║││█║▌║▌║
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alp
    alp's avatar
    Kayıt Tarihi: 28/Ekim/2003
    Erkek

    Hmm peki hocam adam çıkış yapmadan pencereyi kapatırsa nolacak??

    Herifin biri online oldu, çıkış yapmadan pencereyi kapattı, onoff field'ı 1 olarak kaldı..1 ay sonra bile baktığında adam online olarak gözükecek..Sence bu mantıklı olur mu? Olmaz !!

    Bu online offline işini ya global.asa ile yapacaksın ya da kişinin son hareket saatini kaydederek halledeceksin..

    Global.asa'ya pek güvenmiyorum ben kişinin son hareket saatini kaydederek yapıyorum.

    Örnek kod yazayım mı?

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alp
    alp's avatar
    Kayıt Tarihi: 28/Ekim/2003
    Erkek

    Neyse zamanım varken yazayım da örnek kodu, sonradan nolur nolmaz :) Abi şimdi sen asp ile yaptın ya bu siteyi, her sayfada include'lu bir sayfan vardır, mesela ust.asp gibi..yoksa da oluştur..İçine logonu falan koyarsın, bu işlemleri de o ust.asp gibi her sayfada include'lu olan ve ilk açılan sayfada yapıcaz.. :)

    Şimdi ust.asp olduğunu farzedelim..Ust asp'de veritabanına bağlanıp uyeler tablosunda kişinin session'unu sorgula..

    "Ulan bi online işi her sayfada veritabanına mı bağlanayım?" diye bişe düşünüyosan; avantajlarını söyleyim:

    1 - Online offline işi garanti olacak
    2 - Sitende banladığın kişi anında siteden pasif olacak, hiç bi sayfa gezemeyecek
    3 - Sitende "kim hangi sayfada" gibi bişe yapabileceksin..

    Bu yukardakileri elde edebileceğini, hatta isteğine göre daha fazlasını da elde edebileceğini düşününce veritabanına bağlanmak ve sorgular yapmanın gereksiz olmadığını anlayacaksın..

    Öncelikle yukarıdaki 3 şeyi de yapacağını farzederek kodları yazıyorum..

    Ust.asp'yi her sayfada include ettin ya, mesela default.asp'de ilk başta include file="ust.asp" deme..
    Önce
    <%
    sayfa_adi = "Anasayfa"
    %>
    include file = "ust.asp"


    şeklinde yap, yani ust.asp'nin kodları işlemeden önce, sayfanın ne olduğu belli olsun..

    Uyeler tablosuna : sonhar, banli, nerede diye 3 tane field aç..

    sonhar : uzun tarih
    banli : true/false
    nerede : metin


    olacak..

    Öncelikle veritabanına bağlan, ust.asp'de

    'db bağlantısı
    sql = "Select sonhar, nerede, banli from uyeler where username = ' " & session("vs") & " ' "
    ' recordset aç (rs)


    Şimdi adamın seçtiğimiz bilgileri karşımızda..
    Öncelikle banlı olup olmadığını kontrol e, banlı değilse sonhar fieldını now() olarak neredet

    if rs("banli") = 1 then
    response.write "Banlanmışsın, hadi şimdi siktir gir"
    response.end
    else
    rs("sonhar") = now()
    if not sayfa_adi="" then
    Rs("nerede") = sayfa_adi
    end if
    rs.update
    end if
    rs.close
    set rs = nothing

    Şimdi naptık hoca biz, önec banlı mı diye kontrol ettik, banlıysa yazı yazdık işlemleri durdurduk, banlı değilse son hareket zamanını ve hangi sayfada olduğunu veritabanına kaydettik..Bu sayede banladığın kişi hiç bir sayfayı gezemez, olduğu yere gömülür..

    Ban işi tamam şimdi online/offline olayıyla, Kim Hangi Sayfada olayı kaldı..

    Şimdi giriş sayfasına aynı şekilde,

    rs("sonhar") = now()
    rs.update


    diye bi kod yaz

    Çıkış sayfasına da (10 dk sitede durmayanları sileceğini düşünerek yazıyorum)

    rs("sonhar") = dateadd("n", -11, now())
    rs.update


    Olayın mantığını anlamışsındır..Çıkış yapan adamın sonhar bölümünü şimdiki zamandan 11 dakika öncesi olarak update ettik..

    Online Kişileri gösterirken de Sonhar fieldı Son 10 dakikadan büüyk olanları göstericez, bu sayede çıkış yapan adam anında listeden silinecek, çıkış yapmadan pencereyi kapatan en geç 10 dk içinde silinecek, sayfa açıkken, hiç bi işlem yapmayan da 10 dk sonra silinecek ama herhangi bir sayfa değiştirdiğinde online kişiler listesine tekrar girecek..Yani kendisinin listede olmadığını göremeyecek..çünkü bunu görmesi için refresh yapması lazım..Refresh yapınca da zaten online kişiler listesine girecek çünkü sonhar fieldı now() olarak kaydedilecek ve biz sonhar fieldı 10 dakika öncesinden küçük olanları çekiyoruz..

    Online kişileri gösterdiğin yerde alttaki sql yeterli olacaktır:

    sql = "Select username, id from uyeler where sonhar <= dateadd(n, -10, now())"

     

    Kim Hangi Sayfada bölümü için ise;

    Biz her sayfada sayfa adını kaydediyoruz ya mesela

    sayfa_adi = "Anasayfa"

    ya da

    sayfa_adi = "Forum <%=vs("konu")%> konusu"

    gibi..

    Heh, yani adamların nerede bölümleri sayfa gezdikçe o sayfa adıyla update ediliyor..

    Kim Hangi sayfada bölümü için de

    sql = "Select username, id, nerede from uyeler where sonhar <= dateadd(n, -10, now())"

    sql'i yeterli olacaktır..

    Yani ne yapmış olduk..Kim hangi sayfada bölümüne girenler şu an online olan ve herhangi bir sayfada bulunan kişileri görmüş olacaklar..Adam herhangi bir sayfada iken pencereyi kapattı diyelim, en geç 10 dk sonra online listesinde de, Kim Hangi Sayfada listesinde de görünmeyecek ama nerede field'ı o pencereyi kapattığı anki sayfa olarak kalacak ama sorun yok..Bu kişi siteye tekrar girmezse zaten listede görünmeyecek, girerse de giriş sayfasından sonra ilk ulaştığı sayfa default.asp gibi bi sayfa olacağı için nerede field'ı direk Anasayfa olarak update edilecek..


    Sen sadece online offline konusu yazdın ama bu online offline olayının en şaşmazı veritabanı ile yapılan..

    "Ben bi online offline olayı için veritabanına bağlanmam" dersin diye de bu bağlantı ile online offline dışında daha neler yapabileceğine örnek vermek için yazdım diğerlerini..İşine yarar umarım..

    Bu arada ayzdıklarımı okumadan gönderiyorum, hatalar olabilir

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    alp hocam harbiden unutmuşsum onu :D hiç aklıma gelmedi walla.

    ama hocam senin yazdığın kodlarda ben online/offline olayını anlamadım neye göre çıkarıyosun on/off u db ye şimdiki zamanı kaydediyosun.

    yani sende çıkış tuşuna basmadan dbye işlemiyosun (veya ben öle anladım)

    aklıma bi şey geldi acaba cookie ile olabilirmi bu iş ?
    yani cookie ye yazdırcan online diye sonra bi süre sonra offline


    kelimeler albayım bazı anlamlara gelmiyor.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    alp
    alp's avatar
    Kayıt Tarihi: 28/Ekim/2003
    Erkek

    Hocam her sayfada include'lu bi sayfadan bahsettim ya o sayfada..kişinin session değerini uyeler tablosunda sorgulayıp

    sonhar diye bi field'ına (sitedeki son sayfa değişimi anlamında)

    rs("sonhar")=now()
    rs.update


    yapıyorsun..Bunu her sayfada include'lu bir sayfada (ust.asp gibi) yapman adamın her sayfa değiştirdiğinde o zamanı kaydetmen için önemli..Online kişiler yerinde de 

    "Select username, id from uyeler where sonhar <= dateadd(n, -10, now())"

    şeklinde göstereceksin..Yani 10 dakika ya da 10 dakikadan önce herhangi bir harekette bulunmuş üyeleri listeleyeceksin..
    Bu sayede adam çıkış yapmayıp sayfayı kapatsa da en geç 10 dk içinde listeden silinecek..

    Peki çıkış yapsa dahi hemen listeden silinmeyecek mi diye sorarsan..Silinecek!

    Çıkış sayfasında adamın sonhar fieldına

    rs("sonhar") = dateadd("n", -11, now())
    rs.update


    yapacaksın..Yani adamın son hareket zamanını 11 dk öncesine alacaksın..Sen de 10 dakika içindekileri listelediğin için adam listeden silinmiş olacak..

    Peki adam siteden çıkış yapmadı, sayfayı da kapatmadı, hiç bi işlem yapmadan herhangi bi sayfada duruyor..O zaman nolcak dersen..

    en geç 10 dk içinde listeden silinecek..Bunu diğer üyeler görebilecek ama kendisi göremeyecek..Çünkü en son baktığında kendi listedeydi..10 dk hiç bi işlem yapmadı, yani sayfa değiştirmedi haliyle online kişilerin göründüğü sayfada refresh yapılmadı..Adam hâlâ kendisini listede görüyor..Şimdi sayfayı refresh yaptı diyelim.Hâlâ listede olacak..çünkü sayfayı refresh yaptığı anda ust.asp'deki senin

    rs("sonhar") = now()
    rs.update

    komutu çalışacak ve adam listeye girmiş olacak..

    Abi cookiler ile uğraşma bence..Üyenin müdahale edebileceği hiç bir şey kullanma ama sen bilirsin tabi..

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yawuz
    yawuz's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek
    evet tbt de güzel paylamşımların dewamını diliyoruz

    tahribat.com a can feda
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    alp hocam şimdi songiris diye bi sutun açtım. oraya now () ı kayıt ediyorum. ama bi türlü kullanıcının profili altında online mı offline mı olduğunu gösteremedim.

     

    <%
        songiris=soru2("songiris")
        simdiki = DateAdd("n" , -3, Now())
        if songiris >= simdiki Then
        onlinemi = "<img src=""online.gif"" alt=""Üye şu an sitede"">"
        else
        onlinemi = "<img src=""offline.gif"" alt=""Üye şu an sitede değil.."">"
        end if
    %>
    <%=onlinemi%>

     

    şöle bişi yaptım ama hep kapalı gösteriyor :'( ühühühhühh :'(


    kelimeler albayım bazı anlamlara gelmiyor.
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek
    bu arada hocam, öle hangi sayfada filan olayı gerekmez sadece profili altında online mı offline mı olduğunu yazdırmak yeterli benim için

    kelimeler albayım bazı anlamlara gelmiyor.
Toplam Hit: 2284 Toplam Mesaj: 18