我的第一个页面<?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来删除留言,为什么不能删除正确的行?以上代码删除的是留言的最后一条。
求教如何修改?
@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来删除留言,为什么不能删除正确的行?以上代码删除的是留言的最后一条。
求教如何修改?
改成:
$query="delete from notepad where id='".$_GET['id']."'";
$id=$_GET[id]+0;$sql="....... id=$id";否则严重SQL注入漏洞,等着黑客攻入你的系统吧,看样子你应该注意的还很多呢
我刚学php那会就是这样做的、完全能实现。
2.SQL语句中的需要插入和更新到数据库中的值,最好先经过处理,不然,里面带有一个单引号和双引号会导致sql语句出错,这样就执行错误了。如$username = mysql_real_escape_string($username);当然还有其它处理函数,这样也更安全点。
3.想知道自己的错误到哪儿了,可以mysql_query($sql) or die($sql);这样颜色sql语句有问题的话就会显示sql语句,你把语句复制丢到数据库中查询就知道了。
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>";