• 17-01-2018, 01:37:47
    #1
    Üyeliği durduruldu
    Merhaba, web sitemde birden fazla sekme açıp haylazlık yapan bir eleman var O üyem sayesinde bir açık yakalamış oldum kendisini suçlamıyorum şimdilik Neyse ben yeni sekme tespitini yaptım ve işlemi engelledim fakat bunu cookie ile yaptım yani başka tarayıcıdan yada pcde oturum açsa işine devam ediyor. Bu yüzden aynı ipden aynı kişinin 2.kez login olmasını engellemek istiyorum. Nasıl yaparım ?
    login.php kısmına nasıl bir kontrol eklemem gerek ?
    Tamam arkadaşlar hallettim . Nasıl hallettiğimide anlatayım. IP adresinede gerek yoktu.
    1. Kullanıcıların olduğu MySql tablomuzu açıyoruz ve orada 'online' adında INT biçiminde bir sütun oluşturuyoruz yada direk bunu SQL konsolunuzda çalıştırın ;
    ALTER TABLE `tablonuzunismi` ADD `online` INT(1) NOT NULL DEFAULT '0' AFTER `online`;
    2. Giriş Yap butonuna ajax işlemi tanımlayacağız. Bunun için giriş yaptırdığınız sayfaya </body> etiketinin hemen üstüne bir <script> tanımlıyoruz.
    $( document ).ready(function() {
    $("#girisyap").click(function(){
        $.ajax({
            url: "online.php",
            type: "post",
            success:function(cevap){
                echo("<script>console.log('STATUS:OK');</script>");
            }
        });
    });
    });
    3.Gördüğünüz üzere bir online.php dosyasına ihtiyacımız var onuda oluşturalım ;
    <?php
    ob_start();
    session_start();
    error_reporting(E_ALL); ini_set("display_errors", 1);
    include "sql.php";    /*  Veritabanı bağlantısını ekleyin */
    if(isset($_SESSION["login"])) {
        $q = mysql_query("select * from tablonuzunismi where tablodakikullaniciadisütunismi = '".$_SESSION["user"]."'");
        if( mysql_num_rows($q) == 1 ){
            $row = mysql_fetch_assoc($q);
            //  ikinci bir girişi engelle (butona tıkladığında giriş yapmış olacak ve tablodaki online değeri 1 olacak )
            @mysql_query('UPDATE tablonuzunismi SET online = "1" WHERE tablodakikullaniciadisütunismi = "'.$row["tablodakikullaniciadisütunismi "].'"');
        }    
    }
     ?>
    5. cikisyap.php dosyanızada bu kodları girerek oturumu kapattığını mysql tablomuza iletiyoruz.. ( bu kodu biraz kısa tuttum sql bağlantısını sessionu eklemeyi unutmayın )
    @mysql_query('UPDATE tablonuzunismi SET online = "0" WHERE tablodakikullaniciadisütunismi = "'.$row["tablodakikullaniciadisütunismi "].'"');
    4. Son olarak girisyap.php dosyanızı açarak giriş yapmaya çalışan kişinin tablodaki durumu 1 mi 0 mı ona bakacağız.
    <?php
    if(isset($_SESSION["login"])) {
      $sorgu = mysql_query("select * from tablonuzunismi where name = '".$_SESSION["user"]."'");
      $bilgi = mysql_fetch_assoc($sorgu);
      // Eğer oyunda değilse oyna butonunu göster
      if($bilgi["online"] == "0") { 
            // çift oturum yok demek burada giriş yaptırma kodlarınız olacak
      } else { 
    // çift oturum varsa ..
    echo "<script>alert("çift oturum tespit edildi");</script>";
    }
    }
    ?>
  • 17-01-2018, 02:50:08
    #2
    Üyeliği durduruldu
    Giriş yapan kullanıcının session bilgilerini alarak mysql e yazdırabilirsiniz. Kullanıcı başka bir yerden login olduğunda ise session unset yaparak logout yaptırabilirsiniz.
  • 17-01-2018, 02:53:38
    #3
    Üyeliği durduruldu
    LDestek adlı üyeden alıntı: mesajı görüntüle
    Giriş yapan kullanıcının session bilgilerini alarak mysql e yazdırabilirsiniz. Kullanıcı başka bir yerden login olduğunda ise session unset yaparak logout yaptırabilirsiniz.
    Peki kullanıcı tarayıcıyı kapattığındaki işlem ne olacak ? ozaman mysqlde hala oturumda gözükecek ?
  • 17-01-2018, 02:55:44
    #4
    Üyeliği durduruldu
    yavuzwasheree adlı üyeden alıntı: mesajı görüntüle
    Peki kullanıcı tarayıcıyı kapattığındaki işlem ne olacak ? ozaman mysqlde hala oturumda gözükecek ?
    Session ının yazıldığı timestamp ı alırsanız 2 3 dakika aralıklarla cron kontrolü yapıp yine logout yaptırabilirsiniz.
  • 17-01-2018, 02:59:53
    #5
    Üyeliği durduruldu
    LDestek adlı üyeden alıntı: mesajı görüntüle
    Session ının yazıldığı timestamp ı alırsanız 2 3 dakika aralıklarla cron kontrolü yapıp yine logout yaptırabilirsiniz.
    benimde aklıma ilk mysql geldi ama tarayıcıyı kapatırsa nasıl yaparım diye düşünüyodum . ziyaretçinin aktif olup olmama durumuna göre mysqle veri ileteceğim. eğer xxx fonksiyonu aktifse mysqle sessionu true yap değilse false yap. login.phpyede eğer false ise giriş yaptırıcam. teşekkürler yinede başka bir çözüm olabilirmi diye fikir istedim