回调URL如何工作
How callback URL works
我正在尝试设置一个简单的流量监控web应用程序,使用php,并努力充分了解回调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>
正确。在发生特定事件时将调用回调URL。您应该阅读进行回调的工具的文档。
作为一种解决方案,当调用回调URL时,您可以将所有$_POST和$_GET数组条目记录到textfile (fwrite)中,以查看传递给脚本的内容。
表单不一定要POST
数据。这将是保存数据时使用的正确HTTP动词,但也可以将GET
与表单一起使用。这是用form元素的method
属性定义的:
<form method="post" action="I-handle-forms.php">
<!-- inputs, buttons, whatnots -->
</form>
使用的方法也会影响在PHP中访问数据的方式。$_GET
中有GET
数据,$_POST
中有POST
数据。您也可以使用包含GET
和POST
数据的$_REQUEST
,以及您的站点发送的任何cookie。
现在关于重定向用户的问题,您可以使用header()
:
header("Location: http://example.com/thank-you.php");
但是,它本身并没有必要重定向用户。大多数情况下,这是有意义的,但你也可以只在提交表单的页面上显示你的感谢。
请记住,header()
调用必须总是在向浏览器发送任何其他内容之前。即使在header()
之前从函数调用中转义了一个通知,重定向也不会起作用,所以请确保正确处理错误。
这里有一个很好的动词对比。然而,经验法则是GET
应该用于获取数据,比如执行搜索,POST
应该用于保存数据,比如注册。GET
参数在URL中发送,因此保存GET
调用的数据很容易导致无意义的数据库项。
因此,如果我正确理解了您的情况,在用户提交要保存的数据时,您应该使用POST
。您可以有一个专用的脚本form-processor.php
左右,用于发布数据。检查数据是否有效,如果有效,将其保存到数据库中。然后将用户重定向到一个感谢页面,或者任何适合你用例的页面。如果数据无效,您可以将错误消息保存到用户会话中,将其重定向到带有表单的页面,并要求他们纠正提交数据中的错误。如果您不使用会话,您也可以通过将数据附加到重定向url:
GET
参数传递。header("Location: http://example.com/form.php?error=Invalid+email");
记得先通过urlencode()
传递参数
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- 在JavaScript中的类中,push和concat的工作方式有何不同
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)