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>";
}
}
?>