• 12-10-2024, 16:03:19
    #1
    tek kullanımlık bir link nasıl oluşturulur? yardımcı olabilecek var mı?
  • 12-10-2024, 16:04:36
    #2
    kişi linke girdikten sonra iptal olacak birşey mi istiyorsunuz hocam
  • 12-10-2024, 16:06:28
    #3
    R10'DA İLK | 81 İL SCRİPT
    Php ile bu işlemi böyle yapabilirsiniz;



    <?php
    // Veritabanına bağlanma (MySQL PDO)
    $pdo = new PDO('mysql:host=localhost;dbname=testdb', 'kullanici', 'sifre');

    // Tek kullanımlık link oluşturma ve veritabanına kaydetme
    function generateOneTimeLink($baseUrl, $pdo) {
    // Benzersiz bir token oluştur
    $token = bin2hex(random_bytes(16)); // 32 karakter uzunluğunda rastgele bir token


    $expiresAt = new DateTime('+1 hour');

    // Token'ı veritabanına kaydet
    $stmt = $pdo->prepare("INSERT INTO one_time_links (token, expires_at) VALUES (:token, :expires_at)");
    $stmt->execute([
    ':token' => $token,
    ':expires_at' => $expiresAt->format('Y-m-d H:i:s')
    ]);

    // Kullanıcıya göndermek için link oluştur
    return $baseUrl . '?token=' . $token;
    }

    // Token'ı kontrol etme ve geçersiz kılma
    function validateOneTimeLink($token, $pdo) {
    // Token'ın geçerli olup olmadığını kontrol et
    $stmt = $pdo->prepare("SELECT * FROM one_time_links WHERE token = :token AND used = 0 AND expires_at > NOW()");
    $stmt->execute([':token' => $token]);
    $link = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($link) {
    // Token'ı kullandı olarak işaretle
    $stmt = $pdo->prepare("UPDATE one_time_links SET used = 1 WHERE token = :token");
    $stmt->execute([':token' => $token]);
    return true; // Geçerli link
    }

    return false; // Geçersiz link
    }

    // Tek kullanımlık link oluşturma işlemi
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $baseUrl = "http://localhost/tek_kullanimlik_link.php"; // Kendi URL'inizi buraya yazın
    $oneTimeLink = generateOneTimeLink($baseUrl, $pdo);
    echo "Tek kullanımlık link: <a href="$oneTimeLink">$oneTimeLink</a>";
    }

    // Tek kullanımlık link doğrulama işlemi
    if (isset($_GET['token'])) {
    $token = $_GET['token'];

    if (validateOneTimeLink($token, $pdo)) {
    echo "Link geçerli, işleminize devam edebilirsiniz.";
    } else {
    echo "Link geçersiz veya süresi dolmuş.";
    }
    }
    ?>

    <!DOCTYPE html>
    <html>
    <head>
    <title>Tek Kullanımlık Link Oluşturma</title>
    </head>
    <body>
    <h1>Tek Kullanımlık Link Oluşturma</h1>
    <form method="POST">
    <button type="submit">Tek Kullanımlık Link Oluştur</button>
    </form>
    </body>
    </html>
  • 12-10-2024, 17:00:56
    #4
    xsnyrx adlı üyeden alıntı: mesajı görüntüle
    kişi linke girdikten sonra iptal olacak birşey mi istiyorsunuz hocam
    Evet hocam ama aradım aradım bulamadım