我正在尝试使用php设置一个简单的流量监控Web应用程序,并努力完全理解Callbacks URL实际上是如何工作的。根据我的理解,到目前为止,我需要提供一个Url链接,该链接将以登录页面的形式插入。一旦访问者点击“提交”按钮,表单值将(通过POST)发布到上述链接并进行监控。之后,交易完成用户被重新定向回原始页面或任何其他页面,例如谢谢你的页面。我想该页面是实际的回调URL。我错过了上述逻辑中的某些内容吗?有没有关于如何实现上述任务的php示例?感谢。
Receive.php
<?php
if( $_GET["name"] || $_GET["age"] )
{
// DO YOUR STUFF;
header( 'Location: http://www.yoursite.com/LandingPage.html' );
exit();
}
?>
LandingPage.html
<html>
<body>
<form action="http://www.mytrack.com/receive.php" method="GET">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
答案 0 :(得分:1)
这是正确的。在特定事件的情况下,将调用回调URL。您应该阅读进行回调的工具的文档。
作为一种变通方法,您可以在调用回调URL时将所有$ _POST和$ _GET数组条目记录到文本文件(fwrite)中,以查看完全传递给脚本的内容。
答案 1 :(得分:1)
表单不一定是POST
数据。这将是保存数据时使用的正确HTTP谓词,但也可以将GET
与表单一起使用。这是使用表单元素上的method
属性定义的:
<form method="post" action="I-handle-forms.php">
<!-- inputs, buttons, whatnots -->
</form>
您使用的方法也会影响您在PHP中访问数据的方式。 GET
数据可在$_GET
中获得,而POST
数据在$_POST
中可用。您还可以使用包含$_REQUEST
和GET
数据的POST
,以及您的网站发送的任何Cookie。
现在关于重定向用户的问题,您可以使用header()
:
header("Location: http://example.com/thank-you.php");
但话说回来,没有必要重新定位用户。它在大多数情况下都有意义,但您也可以在表单提交的页面上显示您的感谢信息。
请记住,header()
来电必须始终才能将任何其他内容发送到浏览器。即使通知在header()
之前从函数调用中转义,重定向也无法正常工作,因此请确保正确处理错误。
对不同的动词here进行了很好的比较。但是,拇指规则是GET
应该用于获取数据,例如执行搜索,并且在保存数据时应该使用POST
,例如注册。 GET
参数在URL中发送,因此从GET
调用中保存数据很容易导致无意义的数据库项。
因此,如果我正确理解您的情况,用户正在提交要保存的数据,则应使用POST
。您可以拥有一个专用脚本form-processor.php
左右,数据将发布到该脚本。检查数据是否有效,如果是,则将其保存到数据库。然后将用户重定向到感谢页面,或者哪个页面适合您的用例。如果数据无效,您可以将错误消息保存到用户的会话中,将它们重定向回包含该表单的页面,并要求他们更正提交的数据中的任何错误。如果您没有使用会话,您可以轻松地将数据作为GET
参数传递,方法是将它们附加到重定向网址:
header("Location: http://example.com/form.php?error=Invalid+email");
请记住首先通过urlencode()
传递参数。