我有两个页面,product.php 和 viewcart.php。当用户单击 product.php 上的按钮时,它会将产品添加到后端(连同它的属性)并转到 viewcart.php。数据通过下面的代码提交到 viewcart.php。除了来自 product.php 文本框的值之外,还有一些 php 变量需要传递(下面的变量是“val”)。
<script language="javascript">
function test()
{
var val=document.getElementById("textarea").value;
var hrf="viewcart.php?retailer=<?php echo $retailer?>&link=<?php echo $link; ?>&price=<?php echo $price; ?>&title=<?php echo $title; ?>&options="+val;
document.getElementById("a_link").href=hrf;
}
</script>
<a href ="#" id="a_link" onclick="test();" class="btn btn-success" type="submit"><i class="icon-shopping-cart icon-white"></i> Add to Cart</a>
在 viewcart.php 上,产品被添加到后端,然后通过以下代码显示:
@$link = $_GET['link'];
$price = $_GET['price'];
$title = $_GET['title'];
$retailer = $_GET['retailer'];
$options = $_GET['options'];
$session = session_id();
$_SESSION['sess_var'] = $session;
//connect to database code here
mysql_query("INSERT INTO sessionid (sessionid, link, retailer, price, title, qt, options) VALUES('$session' , '$link', '$retailer', '$price', '$title', 1, '$options') ");
我遇到的问题是当用户刷新 viewcart.php 时;由于上面的代码,产品被再次添加。我如何确保仅当用户单击 product.php 上的提交按钮(而不是通过刷新 viewcart.php 或单击“后退”按钮以转到 viewcart.php)时才将产品添加到数据库中?
最佳答案
从技术上讲,如果您使用相同的 POST 数据刷新页面,据我所知,您将拥有相同的引荐来源网址,因此您不应尝试检查引荐来源网址是否为 product.php。
您应该做的是使用更新/插入 MySQL 查询。首先确保您还在查询中插入主键(这样当页面刷新时,它将是相同的键),然后使用类似于:
INSERT INTO sessionid (id,a,b,c) VALUES (0,1,2,3)
ON DUPLICATE KEY UPDATE id=id;
最后,不要忘记清理您的输入。
关于php - 如何解决与使用 php 将条目插入 mysql 相关的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554253/