[英]Make a one-time link
我想知道是否可以在 php 中創建一個鏈接,一旦用戶使用它就會發出 mysql 請求,因此請確保該鏈接不可重復使用,例如通過令牌系統。
$bdd = new PDO("mysql:host=localhost;dbname=onetimeurl", 'root', '');
$bytes = openssl_random_pseudo_bytes(16, $cstrong);
$hex = bin2hex($bytes);
$sql = "INSERT INTO links (link, solde) VALUES ('$hex','10')";
$bdd->exec($sql);
$select = "SELECT * FROM links";
$result = $bdd->query($select);
while($row = $result->fetch()) {
}
if($_GET['hash'] == $row['link']) {
echo "You have been credited";
} else {
echo "This link to already was used";
}
$bdd = new PDO("mysql:host=localhost;dbname=onetimeurl", 'root', '');
$rand = bin2hex(openssl_random_pseudo_bytes(16, $cstrong));
$bdd->exec("INSERT INTO links (link, solde) VALUES ('".rand()."','10');");
$result = $bdd->query("SELECT * FROM links WHERE link='".$_GET['hash']."';");
$row = $result->fetch();
if(empty($row)) {
echo "This link is not valid";
} else {
echo "You have been credited";
$bdd->exec("DELETE FROM links WHERE link='".$_GET['hash']."';");
}
這是解決方案,但此示例代碼不安全
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.