回调网址的工作原理

时间:2015-05-16 21:32:04

标签: javascript php jquery

我正在尝试使用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>

2 个答案:

答案 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中可用。您还可以使用包含$_REQUESTGET数据的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()传递参数。