• 27-07-2010, 04:54:46
    #1
    Arkadaşlar merhaba sorunum şu
    üye girişi yapıyorum diğer browserdanda giriş yapıyorum aynı şifre ile bir kullanıcı 2 farklı hatta 4-5 browserda login oluyor bunu nasıl önlerim ? yardım edin lütfen
  • 27-07-2010, 04:59:52
    #2
    zaten olay budur yani hemen hemen her CMS'de aynı anda login olunabilir
  • 27-07-2010, 06:20:02
    #3
    Her CMS de olması bunu yapamayacağımız anlamına gelmez ki. Her ne kadar tam olarak ne işe yarayacak, amaç nedir anlamasam da, arkadaşın vardır bir bildiği.

    Belki benim gibi sırf aklına birşey geldi diye benim gibi günlerce boşa uğraşmayı seviyordur



    Basit olması açısından bir session tablosu oluştururuz. Kullanıcı bir tarayıcıdan oturum açtığında tablodaki is_online = 1 olmuş olsun. Oturum açma sayfamızda is_online değerini kontrol edelim ve sadece is_online = 0 ise oturum açmaya izin verelim. Bu mantık ile kullanıcı "oturum kapat" butonuna basıp, is_online = 0 durumuna getirmedeği sürece başka bir tarayıcıdan oturum açamaz. Yanına user_agent, çerez gibi birkaç ufak önlem de ekleriz.

    Bir de "kullanıcı 'oturum kapat' butonuna basmadan tarayıcıdan ayrılırsa, tarayıcıyı kapatırsa" kapatırsa ihtimali var. Bunun için de oturum sınırı koyabiliriz. Örneğin kullanıcı "beni hatırla" kutusunu işaretlemeden oturum açarsa x süre birşey yapmadığında veya tarayıcı kapattığında oturumunu otomatik kapatalım. Burada "beni hatırla" olayı biraz çıkmaza giriyor gibi. Normal şartlarda "beni hatırla" seçip oturum açılırsa, tarayıcıyı kapatsa bile oturum hemen sonlanmaz, ancak "beni hatırla" olayının da belli bir süresi olabilir.


    Ancak bu mantığı kurdum, uygulama yapmadan muhakkak arada ufak pürüzler çıkacaktır. Pürüzleri yok etmek için bunu uygulamaya dökmek lazım. Hazır kod istemeyin, kendiniz bir mantık oluşturun ve kodlamaya başlayın. Düzelte düzelte başarabilirsiniz. Çok karışık durumlarda da diyagram kullanabilirsiniz.
  • 27-07-2010, 10:44:00
    #4
    bunun için sessionid kaydettiğiniz yeri kullanıcıya ait bir satırla eşleştirmelisiniz. bu durumda her giripte bu id güncelleneceğinden ve her kullanıcı hatta pencere için farklı olacağından bir giriş diğerini düşürür. Netekim bende düşürüyor. Hatta beni hatırla cookiesi bile geçersiz oluyor.
  • 27-07-2010, 14:22:50
    #5
    Alexis algoritma için teşekkürler
    zee algoritma için teşekkürler
    by_antiseptic cms yazmıyorum forum scripti yazıyorum php oop ve kendi veritabanında ve bu olay çok gerekli birşey
  • 28-07-2010, 20:21:52
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    CREATE TABLE `cevirimici` (
      `id` int(14) NOT NULL,
      `kullanici_id` int(14) NOT NULL,
      `islem_zamani` int(14) NOT NULL,
      `ip` varchar(33) NOT NULL,
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    bu şekilde bir tablo oluşturup giriş yapanların nicklerinden veritabanından id lerini cekerek (hayali olarak bir kullanıcı tablosu üzerinden gittim

    $sorgu_1 = mysql_query("SELECT id FROM kullanicilar where kullanici_nick='$_POST[kullanici_adi]'");
    $yaz_1 = mysql_fetch_array($sorgu_1);
    $sorgum_sayisi = mysql_num_rows(mysql_query("SELECT id FROM cevirimici where kullanici_id='$yaz_1[id]'"));
    if($sorgum_sayisi>0){
    //Hiçbirsey yapma
    }
    else{
    $sorgu = mysql_query("INSERT INTO cevirimici (kullanici_id,islem_zamani,ip) VALUES ('$yaz_1[id]','time()','$_SERVER[REMOTE_ADDR]')");
    }