如何根据id删除留言

LiveAsaMonster 2011-02-17 06:03:35
我的第一个页面
<?php
@session_start();
include_once('conn.php');
$link=connectDB();
$query="select * from notepad where name='".$_SESSION["name"]."'";
$result=mysql_query($query) or die($query);
if($result){
echo "<html>
<head>
<title>留言列表</title>
</head>
<body>
<form method=\"post\">
<p align=\"left\"><font size=\"5\">我的留言列表</font></p>
<table border=\"1\" width=\"320\" height=\"170\" align=\"centre\">
<tr align=\"center\">
<td>留言标题</td>
<td>留言内容</td>
<td>修改留言</td>
<td>是否删除</td>";
while($row=mysql_fetch_array($result)){
$_SESSION['id']=$row[id];
echo "<tr align=\"center\">";
echo "<td>".$row[title]."</td>";
echo "<td>".nl2br(htmlspecialchars($row[content]))."</td>";
echo "<td><a href=\"edit_message.php?id=".$row[id]."\">编辑</a></td>";
echo "<td><a href=\"delete_message.php?id=".$row[id]."\">删除</a></td>";
}
echo"</tr></table>";
echo "<br/>";
}else{
echo "对不起,您没有留言!";
}
echo "<a href=\"afterlogin.php\">返回继续留言</a>";
?>

第二个删除页:
session_start();
include_once('conn.php');
$link=connectDB();
$query="delete from notepad where id='".$_SESSION['id']."'";
$result=mysql_query($query,$link) or die($query.mysql_error());
if($result){
echo "<script language=\"javascript\">
alert(\"删除成功\");
window.location=\"message.php\"
</script>";
}

我是根据留言信息的id来删除留言,为什么不能删除正确的行?以上代码删除的是留言的最后一条。。。。
求教如何修改?
...全文
364 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
看看山观观海 2011-02-18
  • 打赏
  • 举报
回复
id传值过去,然后在表里,留言那个表加个id字段, where id = id ,这样就可以了、、
我刚学php那会就是这样做的、完全能实现。
life169 2011-02-18
  • 打赏
  • 举报
回复
echo "<td><a href=\"edit_message.php?id=".$row[id]."\">编辑</a></td>";
echo "<td><a href=\"delete_message.php?id=".$row[id]."\">删除</a></td>";
这两句应该改成:

echo "<td><a href=\"edit_message.php?id=".$row['id']."\">编辑</a></td>";
echo "<td><a href=\"delete_message.php?id=".$row['id']."\">删除</a></td>";
dhc_1229 2011-02-18
  • 打赏
  • 举报
回复
id就没有取到,先get id
wzwen 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 apachectl 的回复:]

在一个,".$_GET['id']." 在合并入SQL 语句的时候,应该这样写
$id=$_GET[id]+0;

$sql="....... id=$id";

否则严重SQL注入漏洞,等着黑客攻入你的系统吧,看样子你应该注意的还很多呢
[/Quote]

+0这个不错,学习了
guojing916 2011-02-18
  • 打赏
  • 举报
回复
1.的确,这样删除不可取,最好在数据库中用用一个字段表示删除的标志,这样为以后查询删除的和不删除的留言很方便。
2.SQL语句中的需要插入和更新到数据库中的值,最好先经过处理,不然,里面带有一个单引号和双引号会导致sql语句出错,这样就执行错误了。如$username = mysql_real_escape_string($username);当然还有其它处理函数,这样也更安全点。
3.想知道自己的错误到哪儿了,可以mysql_query($sql) or die($sql);这样颜色sql语句有问题的话就会显示sql语句,你把语句复制丢到数据库中查询就知道了。
apachectl 2011-02-17
  • 打赏
  • 举报
回复
在一个,".$_GET['id']." 在合并入SQL 语句的时候,应该这样写
$id=$_GET[id]+0;

$sql="....... id=$id";

否则严重SQL注入漏洞,等着黑客攻入你的系统吧,看样子你应该注意的还很多呢
apachectl 2011-02-17
  • 打赏
  • 举报
回复
这样写程序不可取,在删除的时候应该判断一下删除的用户,否则我写一个循环程序,循环调用delete_message.php?id={id},结果你的数据都被我删完了
life169 2011-02-17
  • 打赏
  • 举报
回复
$query="delete from notepad where id='".$_SESSION['id']."'";
改成:
$query="delete from notepad where id='".$_GET['id']."'";

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧