• 20-06-2023, 13:16:44
    #1
    merhabalar php pdo scriptime online ziyaretci sistemi yapmak istiyorum fakat mysql kullanılmaması lazım. aşagıdaki kod çok iyi çalışıyor tek kötü yanı siteye giriş yaptıktan sonra sayıyor fakat çıkan kişiyi düşmesi için tekrar siteye birinin giriş yapmasını bekliyor bunun çözümü var mıdır? yada farklı bir sayaç kodu biliyor musunuz? php kullanarak yapmam önemlidir

    $timeout = 300; // 5 minutes
    $time = time();
    $ip = $_SERVER["REMOTE_ADDR"];
    $file = "users.txt";
    $arr = file($file);
    $users = 0;
      
      
    for ($i = 0; $i < count($arr); $i++){
        if ($time - intval(substr($arr[$i], strpos($arr[$i], "    ") + 4)) > $timeout){
            unset($arr[$i]);
            $arr = array_values($arr);
            file_put_contents($file, implode($arr)); // 'Glue' array elements into string
        }
        $users++;
    }
      
      
    echo $users;
      
      
    // Only add entry if user isn't already there, otherwise just edit timestamp
    for ($i = 0; $i < count($arr); $i++){
        if (substr($arr[$i], 0, strlen($ip)) == $ip){
            $arr[$i] = substr($arr[$i], 0, strlen($ip))."    ".$time."\n";
            $arr = array_values($arr);
            file_put_contents($file, implode($arr)); // 'Glue' array elements into string
            exit;  
        }
    }
      
      
    file_put_contents($file, $ip."    ".$time."\n", FILE_APPEND);
  • 20-06-2023, 13:25:11
    #2
    histats.com kullanıyorum. sayac kodları istenirse sitede gösterebiliyorsun istersen gizli kod kullanabiliyorsun. çok kullanışlı tavsiye ederim
  • 20-06-2023, 14:13:17
    #3
    Direkt php ile yapmanız biraz zor. İşin içine mutlaka javascript girecek bir noktada. Örnek olarak şu şekilde bir yol izlemeniz gerekmektedir. Kullanıcı sayfaya giriş yaptığında tetiklenecek bir javascript kodu ile ajax kullanarak php sayfaya istek atmalısınız. Bu kullanıcı sayısını arttıracaktır. Aynı şekilde kullanıcı sayfadan ayrıldığında düşürmeniz içinde bu işlemi tekrarlamalısınız.
    window.addEventListener('load', function() { kullaniciSayisiniGuncelle(1); });
    window.addEventListener('beforeunload', function() {  kullaniciSayisiniGuncelle(-1); });
  • 21-06-2023, 08:05:08
    #4
    Bunun için Sockket.io kullanabilirsiniz. Sockket io'nun mantığı sitenizi arka planda dinlemektir. Örneğin biri giriş yaptığında veya çıkış yaptığında bunu algılar. Ve siz de bu socket.io'nun özelliğini kullanarak çok basit online üyelerinizi kayıt edebilir ve anlık olarak sitenizde gösterebilirsiniz. VPS veya sunucu kullanıyorsanız npm i socket.io yazıp kurabilir ve bu konuda ücretsiz destek sağlayabilirim. kendim için kullandığım örnek kodları sana da ücretsiz veririrm lakin daha önce bu modülü kurman gerek.