如何在表单提交后删除get参数值



我有一个表单,我可以向表中添加数据并将其存储在会话中。我的问题是,当我点击删除按钮的id是在url。所以我不能添加其他数据。

我需要在点击remove

后去掉get值是这样的http://localhost:8085/examples/buyme.php?del=2我需要这样的生活http://localhost: 8085/例子/buyme.php

<table class="table">
<thead>

<tr>
<th>ID</th>
<th>Product Name</th>
<th>Price</th>
<th>Quantity</th>

<th>Action</th>
</tr>
</thead>

<tbody>

<tr>

</tr>
<?php
if(!empty($_SESSION["cart"])){
$values;
$total=0;
foreach($_SESSION["cart"] as $keys=>$values){
$amount = $values["quantity"]*$values["price"];
$total=$total+$amount;
?>
<tr>
<td> <?php echo $values["id"] ?> </td>
<td> <?php echo $values["pname"] ?> </td>
<td> <?php echo $values["price"] ?></td>
<td><?php echo $values["quantity"] ?> </td>

<td><a href="buyme.php?del=<?php echo $values["id"]  ?>"> Remove</a> 
<a href="#editProductModal" class="edit" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Edit">&#xE254;</i></a>



</td>
<td> </td>

</tr>

<?php   }?>
<tr>
<td></td>
<td></td>
<td></td>
<td>Total </td>
<td><?php echo $total ?> </td>

<td> </td>
<?php } ?>  
</tr>
<!-- Removing from cart -->
<?php   
if(isset($_GET["del"])){
foreach($_SESSION["cart"] as $keys=>$values){
if($values["id"]==$_GET["del"])
{
unset($_SESSION["cart"][$keys]);

echo "<meta http-equiv='refresh' content='0'>";//to refresh page after submit
}
}

}


?>
<br>
<br>


</tbody>

</table>

请帮帮我提前感谢

您需要在删除/取消设置session值后将redirect页面更改为buyme.php,为此在您的代码中替换这一行:

echo "<meta http-equiv='refresh' content='0'>";//to refresh page after submit

与这个:

header('Location: http://localhost:8085/examples/buyme.php');

如果不是通过GET请求而是通过POST请求发送id进行删除,则会更安全。为了实现这一点,您必须插入一个<form>method="POST",以及一个名称为del的隐藏输入字段和您想要为每个项目删除的id。然后,您必须在脚本中处理POST调用。

例如:

if($_POST['del']) {
# your delete action here
}

通过使用POST请求,不可能通过url更改id

最新更新