为了账号安全,请及时绑定邮箱和手机立即绑定

阻止用户在付款页面上更改收费金额

阻止用户在付款页面上更改收费金额

PHP
天涯尽头无女友 2022-09-25 20:36:17
我正在尝试在我的网站上集成支付网关。有三门课程,每门课程都有不同的价格。我正在传递金额和包的值,并且我已经使输入字段只读,但用户仍然可以更改检查元素中的金额并将其设置为0并传递值并免费获取课程。如何阻止用户更改值?或者有没有其他方法可以传递值?还是加密它,然后再次解密?form.php这是我的代码index.php<div id="outer">        <div class="box">            <h4>Rs. 9,900/-</h4>            <ul>                <li>2-Days Classroom Training</li>                <li>E-Learning Course</li>            </ul>            <form action="form.php" method="post">                <input type="hidden" name="amount" value="9900" readonly="readonly">                <input type="hidden" name="package" value="basic" readonly="readonly">                <input type="submit" name="BUY NOW" value="BUY NOW">            </form>        </div>        <div class="box">            <h4>Rs. 11,900/-</h4>            <ul>                <li>4-Days Classroom Training</li>                <li>E-Learning Course</li>            </ul>            <form action="form.php" method="post">                <input type="hidden" name="amount" value="11900" readonly="readonly">                <input type="hidden" name="package" value="standard" readonly="readonly">                <input type="submit" name="BUY NOW" value="BUY NOW">            </form>         </div>        <div class="box">            <h4>Rs. 14,900/-</h4>            <ul>                <li>4-Days Classroom Training</li>                <li>E-Learning Course</li>                <li>5 Hours Personal Session With The Trainer</li>            </ul>            <form action="form.php" method="post">                <input type="hidden" name="amount" value="14900" readonly="readonly">                <input type="hidden" name="package" value="pro" readonly="readonly">                <input type="submit" name="BUY NOW" value="BUY NOW">            </form>        </div>    </div>form.php<body>    <?php        if (isset($_POST['amount']) && isset($_POST['package'])) {            $amount = $_POST['amount'];            $package = $_POST['package'];        }    ?>
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

永远不要让用户发送价格。每个课程都有一个 ID。让我们假设这个:

  • 课程 1,ID = 1,价格 = 499,名称 = 2 天课堂培训

  • 课程 2,ID = 2,价格 = 999,名称 = 4 天课堂培训

在您的付款页面上,内部仅发送。<forms>course_id = X

在接收请求的PHP脚本上,您知道该脚本具有...这是您将收取的价格。course_id = Xprice = Y

// index.php

<form action="form.php" method="post">

    <input type="hidden" name="course_id" value="1" readonly="readonly">

    <label>

        2-days learning course

    </label>

    <input type="submit" name="BUY NOW" value="BUY NOW">

</form>



//form.php

if (isset($_POST['course_id']){

   if ($_POST['course_id'] == 1){

       $amount = 499;

   }

} else {

    echo 'invalid request'; exit();

}


查看完整回答
反对 回复 2022-09-25
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您可以做一件事来避免陷阱,只需为金额值创建一个会话变量,然后在下一页中获取会话变量,然后将金额元素(mandatory)的会话变量以及由支付网关加密/解密的其他字段一起发送。


查看完整回答
反对 回复 2022-09-25
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

检查字段的值,如果其为零,只需终止代码的执行,将用户发送回表单并打印警告...

或者,您可以使用 JavaScript 在提交后双击并仔细检查数量。

外面就是丛林!!!


查看完整回答
反对 回复 2022-09-25
  • 3 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信