tek kullanımlık bir link nasıl oluşturulur?
3
●144
- 12-10-2024, 16:06:28Php 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:56Evet hocam ama aradım aradım bulamadımxsnyrx adlı üyeden alıntı: mesajı görüntüle