我有一个表单,我可以向表中添加数据并将其存储在会话中。我的问题是,当我点击删除按钮的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"></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
。