HTML表格完成两个动作?验证然后通过一个提交按钮重定向
HTML form complete two actions? Verify then redirect through one submit button
我在将贝宝表格整合到我的订单页面时遇到问题。
我的订单页面目前已经有一个用户填写的表单和一个提交按钮:
<form id="order-form" form name="orderform" method="post" action="send_order_email.php">
这个 send_order_email.php 通过并验证表单是否有效,如果无效,它会重定向到一个抱歉的页面,如果有效,我希望它重定向到 paypal,如下所示:
<form target=paypal action="https://www.paypal.com/cgi-bin/webscr" method=post>
<input type=image src="https://www.paypal.com/en_GB/i/btn/x-click-but22.gif " border=0 name=submit alt="Make payments with PayPal - it's fast, free and secure!">
<input type=hidden name=add value=1>
<input type=hidden name=cmd value=_cart>
<input type=hidden name=business value=" info@info.co.uk">
<input type=hidden name=item_name value="item">
</form>
目前我只能通过设置 action="send_order_email.php"
来获取要发送的表单,或者我可以通过设置 form target=paypal action="https://www.paypal.com/cgi-bin/webscr"
将表单重定向到 paypal,但这并没有通过任何验证并且不发送电子邮件。
我怎样才能让表单执行这两项操作 - 验证一个表单,然后通过一个提交按钮使用 paypals 提交表单重定向?
任何帮助将不胜感激。
谢谢!
在 send_order_email 验证它是正确的之后,只需使用您发布的表单(具有隐藏字段的那个)生成一个 html 页面,用您收到的数据填充它并自动提交它使用 javascript,即
<body onload="document.theform.submit()">
<form target=paypal action="https://www.paypal.com/cgi-bin/webscr" method=post name="theform">
<input type=image src="https://www.paypal.com/en_GB/i/btn/x-click-but22.gif " border=0 name=submit alt="Make payments with PayPal - it's fast, free and secure!">
<input type=hidden name=add value=1>
<input type=hidden name=cmd value=_cart>
<input type=hidden name=business value=" info@info.co.uk">
<input type=hidden name=item_name value="item">
</form>
</body>
如果您使用 POST,或者更确切地说,如果 PayPal 需要 POST,那么我认为您无法重定向。无论如何,从返回 Location: http://www.paypal.com/foo/bar
HTTP header 的意义上讲。
您可以让 send_order_email.php
获取用户提供的信息,并将其提交给 PayPal。也就是说,您的 PHP 代码可以构造一个包含各种字段的 HTTP POST 请求,然后将其发送到 www.paypal.com 并处理结果。但我怀疑这是否可行,因为 PayPayl 可能会要求提供您不应该拥有的信用卡号或 PIN。
正如 BoydP 上面所说,如果您可以在 JavaScript 中的客户端上进行验证,那就太好了。但是,如果您想(或需要)在服务器上进行验证,在 PHP 中,那么最好的方法可能是使用两个屏幕:第一个屏幕,用户填写信息。第二,页面显示信息并要求用户确认交易,使用您在上面粘贴的 <form>
代码。
我在将贝宝表格整合到我的订单页面时遇到问题。
我的订单页面目前已经有一个用户填写的表单和一个提交按钮:
<form id="order-form" form name="orderform" method="post" action="send_order_email.php">
这个 send_order_email.php 通过并验证表单是否有效,如果无效,它会重定向到一个抱歉的页面,如果有效,我希望它重定向到 paypal,如下所示:
<form target=paypal action="https://www.paypal.com/cgi-bin/webscr" method=post>
<input type=image src="https://www.paypal.com/en_GB/i/btn/x-click-but22.gif " border=0 name=submit alt="Make payments with PayPal - it's fast, free and secure!">
<input type=hidden name=add value=1>
<input type=hidden name=cmd value=_cart>
<input type=hidden name=business value=" info@info.co.uk">
<input type=hidden name=item_name value="item">
</form>
目前我只能通过设置 action="send_order_email.php"
来获取要发送的表单,或者我可以通过设置 form target=paypal action="https://www.paypal.com/cgi-bin/webscr"
将表单重定向到 paypal,但这并没有通过任何验证并且不发送电子邮件。
我怎样才能让表单执行这两项操作 - 验证一个表单,然后通过一个提交按钮使用 paypals 提交表单重定向?
任何帮助将不胜感激。
谢谢!
在 send_order_email 验证它是正确的之后,只需使用您发布的表单(具有隐藏字段的那个)生成一个 html 页面,用您收到的数据填充它并自动提交它使用 javascript,即
<body onload="document.theform.submit()">
<form target=paypal action="https://www.paypal.com/cgi-bin/webscr" method=post name="theform">
<input type=image src="https://www.paypal.com/en_GB/i/btn/x-click-but22.gif " border=0 name=submit alt="Make payments with PayPal - it's fast, free and secure!">
<input type=hidden name=add value=1>
<input type=hidden name=cmd value=_cart>
<input type=hidden name=business value=" info@info.co.uk">
<input type=hidden name=item_name value="item">
</form>
</body>
如果您使用 POST,或者更确切地说,如果 PayPal 需要 POST,那么我认为您无法重定向。无论如何,从返回 Location: http://www.paypal.com/foo/bar
HTTP header 的意义上讲。
您可以让 send_order_email.php
获取用户提供的信息,并将其提交给 PayPal。也就是说,您的 PHP 代码可以构造一个包含各种字段的 HTTP POST 请求,然后将其发送到 www.paypal.com 并处理结果。但我怀疑这是否可行,因为 PayPayl 可能会要求提供您不应该拥有的信用卡号或 PIN。
正如 BoydP 上面所说,如果您可以在 JavaScript 中的客户端上进行验证,那就太好了。但是,如果您想(或需要)在服务器上进行验证,在 PHP 中,那么最好的方法可能是使用两个屏幕:第一个屏幕,用户填写信息。第二,页面显示信息并要求用户确认交易,使用您在上面粘贴的 <form>
代码。