• 20-06-2023, 03:20:06
    #1
    edit çözdüm
    $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, 08:40:23
    #2
    Bu kod siteye giren kişilerin ip bilgisini users.txt dosyasına kaydediyor. Bu kodu sitenin footer, header veya settings gibi tüm site dosyasında var olan bir yere yapıştırırsan çalışır. Lakin bu siteyi çok yorar çünkü her girişte çalışır ve sorgu gönderir users.txt'te ve bu kodda file() fonksiyonu yok. Büyük ihtimal çalışmayacaktır. Bunun yerine socket.io yöntemi ile arka planda çalışan ve üye girişlerinin ip bilgisini daha kolay ve daha hızlı kayıt edebilirsin. Sunucu veya vps kullanıyorsan socket.io kurulumu yapıp bunu daha kolay yapma imkanın var.