Php 表单post到数据库以及paypal

Php 表单post到数据库以及paypal,php,paypal,Php,Paypal,我有一个表单,它在提交时收集数据并写入数据库中字段的值。表单将post请求用于响应页面,然后该页面连接到数据库,并将所有必需的字段发布到my db 我还有一个单选按钮叫支付,其中一个选项是贝宝。我的目标是最终将字段发布到db,同时也将下面的表单数据一次性发布到我的paypal帐户 <form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <input ty

我有一个表单,它在提交时收集数据并写入数据库中字段的值。表单将post请求用于响应页面,然后该页面连接到数据库,并将所有必需的字段发布到my db

我还有一个单选按钮叫支付,其中一个选项是贝宝。我的目标是最终将字段发布到db,同时也将下面的表单数据一次性发布到我的paypal帐户

<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="myemails" />
<input type="hidden" name="currency_code" value="GBP" />
<input type="hidden" name="item_name" value="Digital Download" />
<input type="hidden" name="amount" value="9.99" />
<input type="hidden" name="return" value="http://myurl/form.htm" />
<input type="hidden" name="notify_url" value="http://myurl/example/ipn.php" />
<input type="image" src="btn_buynow_LG.gif" border="0" name="submit" alt="Paypal" />
</form>

然而,我只希望用户点击提交一次,我的数据库记录详细信息,然后自动重定向到贝宝

这很简单,只要做:

if($_POST['submit']) {
    // save the POSTed data to the DB
}

// now for PayPal
if($_POST['payment'] == "Paypal") {
    // now connect to PayPal API and process a payment
}

我建议您在需要的地方不要使用
$\u REQUEST
,只使用
$\u GET
和/或
$\u POST

不确定是否理解您的问题,但您应该在页面加载和paypal api回调调用您的inp.php时将临时数据创建到数据库中,将您的临时数据转换为经过验证的数据

为什么忘记$_请求?@fdreger这是一个潜在漏洞,允许攻击者更轻松地执行攻击…这似乎是最好的方法,但我使用的ipn类看起来不像使用Paypal API@shadyyx:为什么是潜在漏洞?许多技术(包括大多数JavaWeb框架)对来自不同来源的参数不使用单独的API,任何人都认为这是好的。您的应用程序是否抗XSRF,使用$\u POST而不是$\u请求并不会使其更安全。@使用直接POST或GET(如果适用)的fdreger更接近实现XSRF。特别是在需要只接收POST请求(甚至来自其他站点/应用程序)的情况下,不接受GET请求就像关闭后门以进行可能的攻击(确保攻击者可以使用撬锁打开它;-)-但这让它变得有点困难。)我想存储一个人的预订详细信息,不管他们是使用paypal付款还是其他手动方式。因此,我的回复页面记录了进行查询的人的详细信息,然后我希望它重定向到paypal网站(前提是在支付选项中选择了paypal)——但听起来我需要使用api来完成这项工作,而不是“表单”方法
if($_POST['submit']) {
    // save the POSTed data to the DB
}

// now for PayPal
if($_POST['payment'] == "Paypal") {
    // now connect to PayPal API and process a payment
}