日期:2014-05-17  浏览次数:20470 次

小弟初学PHP。。。。。问下表单的提交问题
<?php
$connec=mysql_connect("localhost","root","vertrigo") or die("不能连接数据库服务器: ".mysql_error()); 
mysql_select_db("data",$connec) or die ("不能选择数据库: ".mysql_error()); 
mysql_query("set names 'utf8'");
?>
<?php
if($_POST["id"] and $_POST["action"]=="del")
{
$sql="delete from class where id=$_POST[id]";
mysql_query($sql,$connec);
echo("<script type='text/javascript'> alert('删除成功!');location.href='test.php';</script>");
}
?>
<table width="900" border="1">
<form action="test.php" method="post" >
  <tr>
  <td>ID</td>
  <td>classtitle</td>
  <td>classurl</td>
  <td>操作</td>
  </tr>
<?php
$sql="select * from class order by ID desc";
$conn=mysql_query($sql,$connec);
while($rs=mysql_fetch_array($conn)){ 
?>
  <tr>
  <td><?php echo $rs['ID'] ?></td>
  <td><?php echo $rs['stitle'] ?></td>
  <td><?php echo $rs['surl'] ?></td>
  <td><a href="?action=del&id=<?php echo $rs['ID']?>">删除</a></td>
  </tr>
  

<?php 
}
?></form></table>

老是有错误。。。。

想请问下如何判断form提交的动作?

还有,这样做不安全。如何做能有安全性?谢谢。

------解决方案--------------------
$_POST[id] 改为 $_GET[id]
------解决方案--------------------
报什么错呢?

判断用户类型,是否登录,就是最简易的安全检查。
------解决方案--------------------
<a href="?action=del&id=<?php echo $rs['ID']?>">删除</a>
表单提交里面最常见的是提交<input>之类,像超连接<a>是用GET提交的。
把<form></form>去掉,然后用$_GET接收。
------解决方案--------------------
要对参数进行基本判断,判断是否为数值,判断传过来是否为空。

一般没什么问题。