如何将POST数据以货币格式回送到javascript描述符中?条带检验

如何将POST数据以货币格式回送到javascript描述符中?条带检验,javascript,php,post,stripe-payments,Javascript,Php,Post,Stripe Payments,我有一个条带表单,我正在尝试为购买金额添加一个显示: data-description="<?php echo $_POST['plan']; ?>" data description=“” 但是,即使使用isset,上面显示的“注意未定义的变量”也会输出错误 下面的代码可以正常工作,只有一次我尝试回显POST数据 <form action="pages/scharge.php" method="post"> <div> <

我有一个条带表单,我正在尝试为购买金额添加一个显示:

data-description="<?php echo $_POST['plan']; ?>"
data description=“”
但是,即使使用isset,上面显示的“注意未定义的变量”也会输出错误

下面的代码可以正常工作,只有一次我尝试回显POST数据

<form action="pages/scharge.php" method="post">
    <div>

        <input type="radio" name="plan" value="2500"> Beta membership <br>
        <input type="radio" name="plan" value="3500"> VIP membership <br>

    </div>
    <div>

                <label for="plan"> If you would like to pay another amount, enter the amount here:</label>
                <input type="text" name="plan" />
                <label for="invoice_num"> Enter the invoice number here:</label>
                <input type="text" name="invoice_num" />

        </div>
        <div>
        <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
                data-key="<?php echo $stripe['publishable_key']; ?>"
                data-amount="<?php if(isset($_POST['plan'])); echo $_POST['plan']; ?> " data-description=" ">
        </script>

        </div>
</form>

Beta会员资格
VIP会员资格
如果您想支付其他金额,请在此处输入金额: 在此处输入发票号: 这应该起作用:

data description=“”
请注意,没有
if(设置($\u POST['plan'])之后
。如果在那里放了一个分号,PHP将该分号解释为
If
应该有条件执行的(空)语句

如果您对分号感到困惑,另一种可能更安全的书写方式是:

data description=“”
在这里,您可以在大括号之间包含任意数量的语句(用分号分隔),并且只有在设置了
$\u POST['plan']
时,才会执行所有语句。但是,请确保
if
条件和
{
之间仍然没有分号

另外,请注意。如果没有它,您的代码很容易受到攻击者的攻击,攻击者会传入一个参数,如
plan=“>alert(“XSS”);//


当您在HTML输出中嵌入字符串(不打算解析为HTML代码)时,最好是这样做,即使您确定该字符串不能包含任何可以解析为HTML标记的字符;这只是一个好习惯,如果您以后决定更改字符串,也可以避免代码中断。

if(isset($_POST['plan']);
实际上意味着“如果设置了$_POST['plain'],那么就什么也不做。”“@briosheje只是回显它会在签出代码中抛出一个“无效整数”异常。运气不好,isset修复了这个错误,并允许它将POST数据实际携带到我的scharge.php。这真的是您正在使用的代码吗?正如briosheje所指出的,
if(isset($\u POST['plan'))
结尾加分号是不可操作的,应该不会对任何事情产生任何影响。或者你是在复制粘贴代码时意外添加了分号吗?@IlmariKaronen分号是一个错误,讽刺的是,无论有没有分号,我都会收到行为。不过,我刚刚意识到我的单选按钮坏了。没有真正的想象力,是没有办法的将POST数据转换为数据描述的技巧,因为POST发生在最后。我必须使用自己的提交按钮在前面创建一个单独的表单页面。从那里我使用了一个标题向前,并设置$\u SESSION['plan']=$\u POST['plan'].在那里,签出使用了已存在数据的会话,一切正常fine@IImariKaronen仍然没有使用以下代码@mine进行输出:HTML输出是什么样子的?您实际得到的是空的
数据描述
属性,但非空的
数据量
?@IImari Karonen是的,空的vs.OK、 但是,如果在浏览器中使用View Source(或Inspect元素),HTML是什么样子的呢?