• 15-12-2023, 03:07:55
    #1
    Yaptırıldı.

    10k-20k arasi proxy verisi var elimde, bunu sql'e gireceğim ve php çaliştiğinda her sirali veriyi 1 kez gösterecek ve 24 saat geçmeden bir daha göstermeyecek. yani her php get geldiğinde 1 adet veri görünecek ve 24 saat sonra görünebilir olacak.
    - verileri ekleyebileceğim küçük bir panel ( 10k veriden örneğin 3-4 tanesi sql'de varsa onlari eklemeyecek ayni verileri ekletmeyecek )
    - kaç adet veri beklemede ( 24 saat döngüsüne girmiş görebileceğim )
    redisle yapmak isterdim fakat hostingimde bulunmamaktadır onun için sql talep ediyorum.

    küçük bir admin panel bu isteklerime göre yazilacak sql ve paneli.

    ücret pm atiniz ( hemen yapacak arkadaşa iş verilecektir)
  • 15-12-2023, 03:11:34
    #2

    Chat GPT:



    Öncelikle, istediğiniz özelliklere sahip bir sistem oluşturmak için PHP ve MySQL kullanarak basit bir veritabanı tablosu ve yönetim paneli oluşturabiliriz. Aşağıda temel bir örnek verilmiştir:

    Veritabanı Tablosu Oluşturma






    CREATE TABLE IF NOT EXISTS `proxy_list` (
        `id` INT PRIMARY KEY AUTO_INCREMENT,
        `proxy` VARCHAR(255) NOT NULL,
        `last_access_time` INT NOT NULL
    );


    Bu tablo, proxy adlı sütunu kullanarak proxy bilgilerini saklamakta ve last_access_time adlı sütunu kullanarak son erişim zamanını kaydetmektedir.

    PHP Kodu




    <?php
    $dbHost = "localhost"; // Veritabanı sunucusu
    $dbUser = "kullanici_adi"; // Veritabanı kullanıcı adı
    $dbPass = "sifre"; // Veritabanı şifre
    $dbName = "veritabani_ad"; // Veritabanı adı
    
    $conn = new mysqli($dbHost, $dbUser, $dbPass, $dbName);
    
    if ($conn->connect_error) {
        die("Veritabanına bağlantı hatası: " . $conn->connect_error);
    }
    
    // Proxy ekleme fonksiyonu
    function addProxy($proxy) {
        global $conn;
        $currentTime = time();
        $stmt = $conn->prepare("INSERT INTO `proxy_list` (`proxy`, `last_access_time`) VALUES (?, ?)");
        $stmt->bind_param("si", $proxy, $currentTime);
        $stmt->execute();
        $stmt->close();
    }
    
    // 24 saat geçmiş verileri temizleme fonksiyonu
    function cleanExpiredProxies() {
        global $conn;
        $expiryTime = time() - 24 * 60 * 60; // 24 saat önceki zaman
        $stmt = $conn->prepare("DELETE FROM `proxy_list` WHERE `last_access_time` < ?");
        $stmt->bind_param("i", $expiryTime);
        $stmt->execute();
        $stmt->close();
    }
    
    // Bekleyen proxy sayısını getirme fonksiyonu
    function getPendingProxyCount() {
        global $conn;
        $currentTime = time();
        $expiryTime = $currentTime - 24 * 60 * 60; // 24 saat önceki zaman
        $stmt = $conn->prepare("SELECT COUNT(*) FROM `proxy_list` WHERE `last_access_time` < ?");
        $stmt->bind_param("i", $expiryTime);
        $stmt->execute();
        $result = $stmt->get_result();
        $count = $result->fetch_assoc()['COUNT(*)'];
        $stmt->close();
        return $count;
    }
    
    // Ana işlem
    cleanExpiredProxies();
    $pendingCount = getPendingProxyCount();
    
    if ($pendingCount > 0) {
        // İşlenecek proxy var, işleme al
        $stmt = $conn->prepare("SELECT `proxy` FROM `proxy_list` WHERE `last_access_time` < ? LIMIT 1");
        $stmt->bind_param("i", $expiryTime);
        $stmt->execute();
        $result = $stmt->get_result();
        $proxyData = $result->fetch_assoc();
        $stmt->close();
    
        // Proxy işlendikten sonra tekrar 24 saat beklemesi için güncelleme yap
        if ($proxyData) {
            echo "Gösterilecek Proxy: " . $proxyData['proxy'];
            // İşlendikten sonra güncelleme yap
            $stmt = $conn->prepare("UPDATE `proxy_list` SET `last_access_time` = ? WHERE `proxy` = ?");
            $stmt->bind_param("is", $currentTime, $proxyData['proxy']);
            $stmt->execute();
            $stmt->close();
        } else {
            echo "Hata: Proxy bulunamadı.";
        }
    } else {
        echo "Bekleyen Proxy Yok.";
    }
    
    $conn->close();
    ?>

    Bu PHP kodu, 24 saatlik döngüye girmiş ve henüz işlenmemiş olan bir proxy bilgisini seçer ve gösterir. İstenirse, bu kodu bir dosyaya kaydedip web sunucusunda çalıştırabilirsiniz. Ancak, bu kodun güvenlik ve performans iyileştirmelerine ihtiyaç duyabileceğini unutmayın.
    • F12
    F12 bunu beğendi.
    1 kişi bunu beğendi.
  • 15-12-2023, 03:18:31
    #3
    Teşekkürler benimde Chatgp4'e erişimim var.
    Yapacak arkadaş ariyorum..

    Misafir adlı üyeden alıntı: mesajı görüntüle

    Chat GPT:



    Öncelikle, istediğiniz özelliklere sahip bir sistem oluşturmak için PHP ve MySQL kullanarak basit bir veritabanı tablosu ve yönetim paneli oluşturabiliriz. Aşağıda temel bir örnek verilmiştir:

    Veritabanı Tablosu Oluşturma






    CREATE TABLE IF NOT EXISTS `proxy_list` (
        `id` INT PRIMARY KEY AUTO_INCREMENT,
        `proxy` VARCHAR(255) NOT NULL,
        `last_access_time` INT NOT NULL
    );
    Bu tablo, proxy adlı sütunu kullanarak proxy bilgilerini saklamakta ve last_access_time adlı sütunu kullanarak son erişim zamanını kaydetmektedir.

    PHP Kodu




    <?php
    $dbHost = "localhost"; // Veritabanı sunucusu
    $dbUser = "kullanici_adi"; // Veritabanı kullanıcı adı
    $dbPass = "sifre"; // Veritabanı şifre
    $dbName = "veritabani_ad"; // Veritabanı adı
    
    $conn = new mysqli($dbHost, $dbUser, $dbPass, $dbName);
    
    if ($conn->connect_error) {
        die("Veritabanına bağlantı hatası: " . $conn->connect_error);
    }
    
    // Proxy ekleme fonksiyonu
    function addProxy($proxy) {
        global $conn;
        $currentTime = time();
        $stmt = $conn->prepare("INSERT INTO `proxy_list` (`proxy`, `last_access_time`) VALUES (?, ?)");
        $stmt->bind_param("si", $proxy, $currentTime);
        $stmt->execute();
        $stmt->close();
    }
    
    // 24 saat geçmiş verileri temizleme fonksiyonu
    function cleanExpiredProxies() {
        global $conn;
        $expiryTime = time() - 24 * 60 * 60; // 24 saat önceki zaman
        $stmt = $conn->prepare("DELETE FROM `proxy_list` WHERE `last_access_time` < ?");
        $stmt->bind_param("i", $expiryTime);
        $stmt->execute();
        $stmt->close();
    }
    
    // Bekleyen proxy sayısını getirme fonksiyonu
    function getPendingProxyCount() {
        global $conn;
        $currentTime = time();
        $expiryTime = $currentTime - 24 * 60 * 60; // 24 saat önceki zaman
        $stmt = $conn->prepare("SELECT COUNT(*) FROM `proxy_list` WHERE `last_access_time` < ?");
        $stmt->bind_param("i", $expiryTime);
        $stmt->execute();
        $result = $stmt->get_result();
        $count = $result->fetch_assoc()['COUNT(*)'];
        $stmt->close();
        return $count;
    }
    
    // Ana işlem
    cleanExpiredProxies();
    $pendingCount = getPendingProxyCount();
    
    if ($pendingCount > 0) {
        // İşlenecek proxy var, işleme al
        $stmt = $conn->prepare("SELECT `proxy` FROM `proxy_list` WHERE `last_access_time` < ? LIMIT 1");
        $stmt->bind_param("i", $expiryTime);
        $stmt->execute();
        $result = $stmt->get_result();
        $proxyData = $result->fetch_assoc();
        $stmt->close();
    
        // Proxy işlendikten sonra tekrar 24 saat beklemesi için güncelleme yap
        if ($proxyData) {
            echo "Gösterilecek Proxy: " . $proxyData['proxy'];
            // İşlendikten sonra güncelleme yap
            $stmt = $conn->prepare("UPDATE `proxy_list` SET `last_access_time` = ? WHERE `proxy` = ?");
            $stmt->bind_param("is", $currentTime, $proxyData['proxy']);
            $stmt->execute();
            $stmt->close();
        } else {
            echo "Hata: Proxy bulunamadı.";
        }
    } else {
        echo "Bekleyen Proxy Yok.";
    }
    
    $conn->close();
    ?>
    Bu PHP kodu, 24 saatlik döngüye girmiş ve henüz işlenmemiş olan bir proxy bilgisini seçer ve gösterir. İstenirse, bu kodu bir dosyaya kaydedip web sunucusunda çalıştırabilirsiniz. Ancak, bu kodun güvenlik ve performans iyileştirmelerine ihtiyaç duyabileceğini unutmayın.
  • 15-12-2023, 05:30:31
    #4
    PM gönderilmiştir.
  • 15-12-2023, 05:54:05
    #5
    Yaptırıldı.