Php 购物车有时售价为0美元…如何排除故障?

Php 购物车有时售价为0美元…如何排除故障?,php,shopping-cart,Php,Shopping Cart,我没有使用预先制作的购物车,我自己编程。99%的情况下,它都能正常工作,但大约每两个月就有一次订单,价格为0美元。我不明白为什么。我用相同的产品和所有相同的信息进行测试购买,但我不能让它为我的0美元。我不知道如何解决这个问题,我有一个免责声明说,我们不尊重错误的价格。但客户希望这种情况停止发生。我正在使用PHP来完成所有这些。由于我自己似乎无法复制这一事件,我发现很难找到问题的根源。有人能就如何解决这个问题提供一些建议吗 谢谢 你有该网站的URL吗 否则,我只能猜测,您正在允许用户传入数据以确定

我没有使用预先制作的购物车,我自己编程。99%的情况下,它都能正常工作,但大约每两个月就有一次订单,价格为0美元。我不明白为什么。我用相同的产品和所有相同的信息进行测试购买,但我不能让它为我的0美元。我不知道如何解决这个问题,我有一个免责声明说,我们不尊重错误的价格。但客户希望这种情况停止发生。我正在使用PHP来完成所有这些。由于我自己似乎无法复制这一事件,我发现很难找到问题的根源。有人能就如何解决这个问题提供一些建议吗


谢谢

你有该网站的URL吗

否则,我只能猜测,您正在允许用户传入数据以确定价格,例如,用户可以覆盖的隐藏字段或参数


确保将产品的ID传递给服务器端代码,并将服务器上的价格乘以订单数量。e、 g.永远不要相信用户输入

你有网站的URL吗

否则,我只能猜测,您正在允许用户传入数据以确定价格,例如,用户可以覆盖的隐藏字段或参数


确保将产品的ID传递给服务器端代码,并将服务器上的价格乘以订单数量。e、 g.永远不要相信用户输入

最终,你会想弄清楚为什么会发生这种情况。没有看到你的代码,我真的不能帮你很多。但在短期内,为什么不在结账过程结束时添加一个健全检查呢

if ( $final_price < 1 ) {
    do_epic_fail(); // Show an error, whatever.
}

最终,你会想弄清楚为什么会发生这种情况。没有看到你的代码,我真的不能帮你很多。但在短期内,为什么不在结账过程结束时添加一个健全检查呢

if ( $final_price < 1 ) {
    do_epic_fail(); // Show an error, whatever.
}

您是否从客户端隐藏表单字段将金额详细信息发布到支付网关?如果是这样,那么它可以通过使用浏览器工具栏(如WebDeveloper等)轻松覆盖


始终从服务器端发布付款详细信息。

是否从客户端隐藏表单字段将金额详细信息发布到付款网关?如果是这样,那么它可以通过使用浏览器工具栏(如WebDeveloper等)轻松覆盖


始终从服务器端发布付款详细信息。

我首先使用一些广泛的订单记录。每次单击、每次输入、每次sql查询。然后,当它再次发生时,检查该订单的日志,看看发生了什么

我突然想到了几个可能性。首先,在查询项目总数时出现了一个暂时性错误。也许当查询失败时,您只是默认为0.00。例如,当他们为数量键入-1或输入诸如“ABC”之类的文本时会发生什么

或者,您可能会遇到sql注入问题,如果用户在其中一个字段中输入错误,它会加载一个零价格值


无论它是什么,都将通过正确的日志记录来揭示。

我将首先使用一些广泛的订单日志记录。每次单击、每次输入、每次sql查询。然后,当它再次发生时,检查该订单的日志,看看发生了什么

我突然想到了几个可能性。首先,在查询项目总数时出现了一个暂时性错误。也许当查询失败时,您只是默认为0.00。例如,当他们为数量键入-1或输入诸如“ABC”之类的文本时会发生什么

或者,您可能会遇到sql注入问题,如果用户在其中一个字段中输入错误,它会加载一个零价格值


无论它是什么,都将通过正确的日志记录来揭示。

您的代码是否依赖于$\u会话数据?如果用户等待很长时间,一些必要的数据可能会过期,但签出仍可能继续


正如其他人所说,如果没有源代码,很难进一步评论。

您的代码是否依赖于$\u会话数据?如果用户等待很长时间,一些必要的数据可能会过期,但签出仍可能继续


正如其他人所说,如果没有源代码,很难进一步评论。

如果最终价格为0,也许可以再次检查订单,看看它是否确实包含任何项目。如果你有任何免费物品或特别促销活动,我可以看到你可能会有一个零订单,所以也许这是最好的选择


这是一个很难回答的问题,没有看到您的来源。

如果最终价格是0,也许可以再次检查订单,看看它是否确实包含任何项目。如果你有任何免费物品或特别促销活动,我可以看到你可能会有一个零订单,所以也许这是最好的选择

这是一个很难回答的问题,没有看到你的消息来源。

我无法解释w

是的,但由于某种原因,你的失败让我崩溃了。我肯定是在给下一次机会得到的函数命名。谢谢,但是一些订单可能是免费的,如果他们使用优惠券代码的话。那么为什么不保留两个单独的变量呢$基本成本和美元折扣?显示的总成本为$base_cost-$折扣。你可以用上面的if语句来表示$base\u成本。我在工作中给CMS添加了自定义错误代码,这可能会让我觉得很奇怪:我无法解释为什么,但由于某种原因,do_epic_fail让我崩溃了。我肯定是在给下一次机会得到的函数命名。谢谢,但是一些订单可能是免费的,如果他们使用优惠券代码的话。那么为什么不保留两个单独的变量呢$基本成本和美元折扣?显示的总成本为$base_cost-$折扣。你可以用上面的if语句来表示$base\u成本。我在工作时向CMS添加自定义错误代码,这可能需要表现出来:我是,我从不在客户端存储价格,我从服务器检索价格,这样用户就无法操纵它。下面是购买产品的产品页面的URL:我是,我从不在客户端存储价格,我从服务器上检索价格,这样用户就无法对其进行操作。以下是购买产品的产品页面的URL:你能告诉我如何开始这样做的正确方向吗?如果重要的话,我会使用PLESK。谢谢如果您自己编写了购物车代码,那么只需在数据库中添加一个表来存储日志信息。然后在不同的时间点,例如每次运行sql查询时,记录post VAR、sql查询以及您可以访问的任何其他信息。日志将变得非常大,因此经常监视它并根据需要进行修剪。您能告诉我如何开始这样做的正确方向吗?如果重要的话,我会使用PLESK。谢谢如果您自己编写了购物车代码,那么只需在数据库中添加一个表来存储日志信息。然后在不同的时间点,例如每次运行sql查询时,记录post VAR、sql查询以及您可以访问的任何其他信息。日志将变得非常大,因此经常监视它并根据需要进行修剪。谢谢,我在$u会话中将项目存储在他们的购物车中,但不是项目的价格。物品也保存在订单中。谢谢,我将物品存储在$u会话中的购物车中,但不是物品的价格。该项目也保存在订单中。