• 14-12-2023, 17:35:47
    #1
    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)
  • 14-12-2023, 17:38:18
    #2
    pm gönderildi.
  • 14-12-2023, 17:39:17
    #3
    caneraltinel adlı üyeden alıntı: mesajı görüntüle
    pm gönderildi.
    cevaplandi, başka yapabilecek arkadaş ?
  • 14-12-2023, 17:46:06
    #4
    sql sorgusu için

    CREATE TABLE IF NOT EXISTS proxy_data (
        id INT AUTO_INCREMENT PRIMARY KEY,
        proxy_info VARCHAR(255) NOT NULL,
        last_accessed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );
    örnek php dosyası
    <?php
    // Veritabanı bağlantısı için bilgiler
    $servername = "localhost"; // Sunucu adı
    $username = "kullanici_adi"; // Veritabanı kullanıcı adı
    $password = "sifre"; // Veritabanı şifresi
    $dbname = "veritabani_adi"; // Veritabanı adı
    
    // Veritabanı bağlantısını oluşturma
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Veritabanı bağlantı hatası kontrolü
    if ($conn->connect_error) {
        die("Veritabanı bağlantı hatası: " . $conn->connect_error);
    }
    
    // Yeni proxy verisini ekleme
    function addProxyData($proxy_info) {
        global $conn;
        $proxy_info = $conn->real_escape_string($proxy_info);
    
        // Veritabanında aynı veri var mı kontrol etme
        $check_query = "SELECT * FROM proxy_data WHERE proxy_info = '$proxy_info'";
        $result = $conn->query($check_query);
    
        if ($result->num_rows == 0) {
            // Veri yoksa ekleme
            $insert_query = "INSERT INTO proxy_data (proxy_info) VALUES ('$proxy_info')";
            $conn->query($insert_query);
            return true;
        } else {
            return false; // Veri zaten varsa ekleme
        }
    }
    
    // Son erişim zamanına göre bekleyen veri sayısını alma
    function getPendingDataCount() {
        global $conn;
        $twentyFourHoursAgo = date("Y-m-d H:i:s", strtotime('-24 hours'));
        $count_query = "SELECT COUNT(*) AS count FROM proxy_data WHERE last_accessed_at < '$twentyFourHoursAgo'";
        $result = $conn->query($count_query);
        $row = $result->fetch_assoc();
        return $row['count'];
    }
    
    // Bir veriyi getirme ve son erişim zamanını güncelleme
    function getProxyData() {
        global $conn;
        $twentyFourHoursAgo = date("Y-m-d H:i:s", strtotime('-24 hours'));
        $select_query = "SELECT * FROM proxy_data WHERE last_accessed_at < '$twentyFourHoursAgo' ORDER BY last_accessed_at ASC LIMIT 1";
        $result = $conn->query($select_query);
    
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            $proxy_info = $row['proxy_info'];
            
            // Son erişim zamanını güncelleme
            $update_query = "UPDATE proxy_data SET last_accessed_at = CURRENT_TIMESTAMP WHERE id = " . $row['id'];
            $conn->query($update_query);
    
            return $proxy_info;
        } else {
            return null;
        }
    }
    
    // Veritabanı bağlantısını kapatma
    $conn->close();
    ?>
    admin.php
    <?php
    // Bu kısımda veritabanı bağlantısı ve gerekli fonksiyonlar yer almalı
    
    // Giriş kontrolü
    session_start();
    
    // Giriş yapılmamışsa giriş sayfasına yönlendirme
    if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
        header('Location: login.php');
        exit;
    }
    
    // Yeni proxy ekleme
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (isset($_POST['proxy_info'])) {
            $proxy_info = $_POST['proxy_info'];
    
            if (addProxyData($proxy_info)) {
                echo "Proxy verisi başarıyla eklendi.";
            } else {
                echo "Bu proxy verisi zaten mevcut.";
            }
        }
    }
    
    // Bekleyen veri sayısını al
    $pending_count = getPendingDataCount();
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
        <title>Admin Paneli</title>
    </head>
    <body>
        <h1>Admin Paneli</h1>
        <p>Bekleyen veri sayısı: <?php echo $pending_count; ?></p>
        
        <h2>Proxy Verisi Ekle</h2>
        <form method="post" action="">
            <label for="proxy_info">Proxy Bilgisi:</label><br>
            <input type="text" id="proxy_info" name="proxy_info"><br><br>
            <input type="submit" value="Ekle">
        </form>
        
        <br>
        <a href="logout.php">Çıkış Yap</a> <!-- Çıkış yapmak için logout.php sayfasına yönlendirme -->
    </body>
    </html>
  • 14-12-2023, 18:26:40
    #5
    ücretsiz kod için öncelikle teşekkür ederim, mesaj kutunuz dolu pm attim ulaşmadi.

    konu günceldir, yapacak arkadaş ariyorum..

    shms adlı üyeden alıntı: mesajı görüntüle
    sql sorgusu için

    CREATE TABLE IF NOT EXISTS proxy_data (
        id INT AUTO_INCREMENT PRIMARY KEY,
        proxy_info VARCHAR(255) NOT NULL,
        last_accessed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );
    örnek php dosyası
    <?php
    // Veritabanı bağlantısı için bilgiler
    $servername = "localhost"; // Sunucu adı
    $username = "kullanici_adi"; // Veritabanı kullanıcı adı
    $password = "sifre"; // Veritabanı şifresi
    $dbname = "veritabani_adi"; // Veritabanı adı
    
    // Veritabanı bağlantısını oluşturma
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Veritabanı bağlantı hatası kontrolü
    if ($conn->connect_error) {
        die("Veritabanı bağlantı hatası: " . $conn->connect_error);
    }
    
    // Yeni proxy verisini ekleme
    function addProxyData($proxy_info) {
        global $conn;
        $proxy_info = $conn->real_escape_string($proxy_info);
    
        // Veritabanında aynı veri var mı kontrol etme
        $check_query = "SELECT * FROM proxy_data WHERE proxy_info = '$proxy_info'";
        $result = $conn->query($check_query);
    
        if ($result->num_rows == 0) {
            // Veri yoksa ekleme
            $insert_query = "INSERT INTO proxy_data (proxy_info) VALUES ('$proxy_info')";
            $conn->query($insert_query);
            return true;
        } else {
            return false; // Veri zaten varsa ekleme
        }
    }
    
    // Son erişim zamanına göre bekleyen veri sayısını alma
    function getPendingDataCount() {
        global $conn;
        $twentyFourHoursAgo = date("Y-m-d H:i:s", strtotime('-24 hours'));
        $count_query = "SELECT COUNT(*) AS count FROM proxy_data WHERE last_accessed_at < '$twentyFourHoursAgo'";
        $result = $conn->query($count_query);
        $row = $result->fetch_assoc();
        return $row['count'];
    }
    
    // Bir veriyi getirme ve son erişim zamanını güncelleme
    function getProxyData() {
        global $conn;
        $twentyFourHoursAgo = date("Y-m-d H:i:s", strtotime('-24 hours'));
        $select_query = "SELECT * FROM proxy_data WHERE last_accessed_at < '$twentyFourHoursAgo' ORDER BY last_accessed_at ASC LIMIT 1";
        $result = $conn->query($select_query);
    
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            $proxy_info = $row['proxy_info'];
            
            // Son erişim zamanını güncelleme
            $update_query = "UPDATE proxy_data SET last_accessed_at = CURRENT_TIMESTAMP WHERE id = " . $row['id'];
            $conn->query($update_query);
    
            return $proxy_info;
        } else {
            return null;
        }
    }
    
    // Veritabanı bağlantısını kapatma
    $conn->close();
    ?>
    admin.php
    <?php
    // Bu kısımda veritabanı bağlantısı ve gerekli fonksiyonlar yer almalı
    
    // Giriş kontrolü
    session_start();
    
    // Giriş yapılmamışsa giriş sayfasına yönlendirme
    if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
        header('Location: login.php');
        exit;
    }
    
    // Yeni proxy ekleme
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (isset($_POST['proxy_info'])) {
            $proxy_info = $_POST['proxy_info'];
    
            if (addProxyData($proxy_info)) {
                echo "Proxy verisi başarıyla eklendi.";
            } else {
                echo "Bu proxy verisi zaten mevcut.";
            }
        }
    }
    
    // Bekleyen veri sayısını al
    $pending_count = getPendingDataCount();
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
        <title>Admin Paneli</title>
    </head>
    <body>
        <h1>Admin Paneli</h1>
        <p>Bekleyen veri sayısı: <?php echo $pending_count; ?></p>
        
        <h2>Proxy Verisi Ekle</h2>
        <form method="post" action="">
            <label for="proxy_info">Proxy Bilgisi:</label><br>
            <input type="text" id="proxy_info" name="proxy_info"><br><br>
            <input type="submit" value="Ekle">
        </form>
        
        <br>
        <a href="logout.php">Çıkış Yap</a> <!-- Çıkış yapmak için logout.php sayfasına yönlendirme -->
    </body>
    </html>
    • shms
    shms bunu beğendi.
    1 kişi bunu beğendi.