【问题标题】:PHP listener script that can read incoming $_REQUEST or $_POST variables可以读取传入 $_REQUEST 或 $_POST 变量的 PHP 侦听器脚本
【发布时间】:2012-03-23 06:56:31
【问题描述】:

我正在尝试编写一个 PHP 脚本来侦听传入的 $_REQUEST 或 $_POST 变量,这些变量是作为 2 向通信的一部分由 Web 应用程序发送的。

HTTP GET 调用将以类似于this 的格式向网络应用发出。

然后,WEBAPP 将向我的侦听器脚本 (http://TRAVISNG.com/listener.php) 发送一个 POST 响应,所以我想知道我的 php 脚本是否可以在我不手动执行 php 脚本的情况下解析它?

请注意,我指的不是编写一个在套接字上侦听网络请求的脚本。

基本上,我想解析网络应用发送的 POST 数据并将其写入日志文件。因此,每次我运行我的侦听器脚本时,它都会读取日志文件并打印出所有发送到我的侦听器脚本的 POST 响应。

这是我写的一些代码:

<?php

    // Read incoming POST request
    if (!empty($_POST)){
        $params = join(" ", $_POST);
        //print_r($params);
        echo "|$params|";
    }

    // Print params & timestamp to file called listenerLog.txt
    $logFile = "http://travisng.com/listenerLog.txt";

    $fileHandle = fopen($logFile, 'a') or die("Unable to open the listenerLog.txt.");
    fwrite($fileHandle, $params);
    fclose($fileHandle);

    $output = file_get_contents($logFile);

    // Print listenerLog.txt
    //echo $output;

?>

干杯,

特拉维斯

【问题讨论】:

  • 不完全清楚请求是如何发生的,或者为什么这种方法是必要的。也许你可以重新解释发生了什么。 - 至于“日志记录”,您可能希望将serialized 数组存储在二进制文件中,或者为了简单起见在数据库中。
  • 结构如下:用户通过 HTTP 调用调用 Web 应用程序 -> Web 应用程序向调用中指定的 listener.php 脚本发送 HTTP POST -> listener.php 读取 HTTP POST 并将其打印到日志文件中。这种方法是确定 Web 应用程序是否已被正确调用,如果正确,则会将有效的 POST 响应发送到 listener.php 脚本。

标签: php scripting http-post


【解决方案1】:

为了克服这个问题,我决定创建一个 CGI 侦听器脚本并从那里处理 REQUEST 参数。每当 GET/POST 请求通过并将请求写入日志文件时,就会调用 CGI 脚本。

【讨论】:

    【解决方案2】:

    根据您的示例调用/url,它们将位于 $_GET 全局变量中。

    那就试试吧:

    // Read incoming POST request
    if (!empty($_GET)){
        $params = join(" ", $_GET);
        //print_r($params);
        echo "|$params|";
    }
    

    您可以使用 $_REQUEST - 这将包含项目 $_GET$_POST 和(也取决于版本或 php.ini 配置 $_COOKIE)。

    【讨论】:

    • 我尝试使用 $_GET 和 $_REQUEST 但无济于事。嗯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2013-03-04
    • 2019-07-20
    • 1970-01-01
    相关资源
    最近更新 更多