回调URL如何工作

How callback URL works

本文关键字:工作 何工作 URL 回调      更新时间:2023-09-26

我正在尝试设置一个简单的流量监控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数据。您也可以使用包含GETPOST数据的$_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()传递参数