我想从邮件收件箱中删除mysql表行,是否可能!如果是,我如何从任何邮件收件箱帐户中删除我的服务器数据库中的表行,请告诉我解决方案
表格结构:
id usrname password status usercat
1 xxxxxxx xxxxxxx new 1
2 uuuuuuu uuuuuuu new 5
$del_qry= mysql_query("DELETE FROM table_name WHERE some_column=some_value")
在注册后的我的网站中,注册人获得提醒邮件,并且网站管理员获得注册用户详细信息的邮件。因此,如果管理员想要从他的邮件帐户中删除第二个用户(用户名 - uuuuuu)。
我怎么能这样做,请告诉我,我是新来的......
答案 0 :(得分:2)
您发送给管理员的电子邮件必须包含以下链接:
http://www.example.org/admin/remove_account.php?id=123
其中123
是已注册的用户,remove_account.php
是单击链接时将加载的脚本。
在脚本中你会有这样的东西:
mysql_query("DELETE FROM table_name WHERE id=" . mysql_real_escape_string($_GET['id']));
<强>注意强>
请注意几句。上述链接应受以下其中一项保护:
签名保护通过添加签名来防止篡改/伪造链接参数。像这样工作:
$secret = "some reasonably long string of random data";
$id = "123"; // like above, the user id
$sig = hash_hmac('sha1', $id, $secret);
$link = 'http://www.example.org/admin/remove_account.php?' . http_build_query(array(
'id' => $id,
'sig' => $sig,
));
验证签名:
$secret = "some reasonably long string of random data";
if (isset($_GET['id'], $_GET['sig'])) {
$calc_sig = hash_hmac('sha1', $_GET['id'], $secret);
if ($calc_sig === $_GET['sig']) {
// your delete query here
}
}
请注意,尽管该链接可以防止有人试图访问您的管理脚本,但如果它落入了错误的手中,您仍然会被搞砸。不要低估安全性:))
答案 1 :(得分:0)
我认为您必须在用户列表的删除邮件中添加您网站页面的链接。当用户点击链接时,它将重定向到特定页面,它将从链接的URL获取该用户ID,然后您可以执行删除操作。有必要从邮件重定向到网站页面,因为在邮件中你不能直接连接数据库。
感谢