在php中进行删除确认

4

我正在尝试使用PHP从MySQL中删除记录。 我需要在我的代码中添加什么,以便首先进行删除确认。 因为在我的当前代码中,它会自动删除与pnum输入相对应的记录。

<html>
<style>
input { font-size: 16px;}
</style>

<?php include('header.php'); ?>
<div id="main_content">


</div>
<?php include('footer.php'); ?>
<head>

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form action="DeletebyPnumIn.php" method="post">
  <td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="9" style="background:#9ACD32; color:white; border:white 1px solid; text-align: center"><strong><font size="3">Delete In-patient</strong></td>
</tr>
<td><font size="3">Patient #:</td>
<td></td>
<td><input type="text" name="pnum" value="" maxlength="15" /><br/></td>


</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Delete" /></td>
</form>
</tr>
</table>



<body>
</body>
</html>

这里是表单操作:

<html>
<style>
input { font-size: 16px;}
</style>

<?php include('header.php'); ?>
<div id="main_content">

</div>
<?php include('footer.php'); ?>
<head>

    <?php
    $con = mysql_connect("localhost","root","nitoryolai123$%^");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("hospital", $con);

    mysql_query("DELETE FROM t2 WHERE PNUM='{$_POST["pnum"]}'") ;

    mysql_close($con);

    echo "<script>alert('Record successfully deleted!')</script>";
    ?>

请帮忙。


1
顺便提一下,当使用来自网络的输入时,您需要更加小心。有人可能会向您的Web服务器发送以下内容,并引起真正的混乱:form.php?submit = Delete&pnum = 1'%20or%201'='1 - a'r
1
同意ar的观点,您需要对输入进行过滤。您可以使用$pnum=(int)$_POST['pnum']进行过滤以确保其是一个数字(如果这是您想要的)。 - JAL
4个回答

5

提供删除确认的方式有很多种,从简单随意到复杂强大不等。最简单的方法可能是一个JavaScript确认对话框。要实现这个功能,您需要在用户点击“删除”按钮的页面上添加此功能,而不是在PHP端进行处理。

例如:

<a href="delete.php?id=<?php echo $id; ?>" onclick="return confirm('Delete this?');">Delete</a>

顺便提一下,要注意SQL注入问题。在将POST或GET数据插入SQL字符串之前,您需要对输入进行清理。


4

考虑到您当前的代码,最简单的方法就是在表单中添加一个onsubmit动作。

<form action="DeletebyPnumIn.php" method="post" onsubmit="return confirm('Really Delete?');">

或类似的东西。

3

我正想着要提出同样的建议 :-)。 - a'r

1
你可以在 <form> 中使用 onsubmit="return confirmationMessage()"。当然,这只有在启用 JavaScript 的情况下才有效。 confirmationMessage 应该询问用户是否要删除,并在是的情况下返回 true,否则返回 false。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接