我希望用户能够通过向他提供与哈希的直接链接来从链接中删除他的预订时间。
http://example.org/delete.php?=a8df5b232f5ed38c9574ecbd0c248feccc968e83
我想把这个哈希(a8df5b232f5ed38c9574ecbd0c248feccc968e83)与这个加到dB(这个顺序)的比较,如果它们匹配记录被删除。
这是我用于生成哈希并将其添加到我的dB
的代码$createDeleteHash = $getLastId['id'] . $nazwisko;
$deleteHash = sha1($createDeleteHash);
$stmt3 = $db->exec("UPDATE `order` SET delete_hash='$deleteHash' WHERE id='$getLastId[id]'");
答案 0 :(得分:1)
首先,您需要更改发送的网址:
http://example.org/delete.php?=a8df5b232f5ed38c9574ecbd0c248feccc968e83
以下
http://example.org/delete.php?id=a8df5b232f5ed38c9574ecbd0c248feccc968e83
注意哈希前面的id
。这允许您使用$_GET['id']
抓取GET变量。
所以在你的delet.php页面上,你需要这样的东西:
$sql="DELETE FROM order WHERE delete_hash = ':hash'";
$sth = $dbh->prepare($sql);
$sth->bindParam(':hash', $_GET['id'], PDO::PARAM_STR, 100);
$sth->execute();
然后,这将从表中删除哈希。因此,您可能希望将执行包装在if中,以便您可以在页面上发送消息,即删除或不删除等。