使用 fsockopen 和 fwrite 时未发布参数

发布于 2024-12-04 00:21:14 字数 803 浏览 1 评论 0原文

我正在尝试将参数从 php 发布到另一台服务器。手动创建链接并在浏览器中打开它时,效果很好。但是当尝试从我的 php 脚本执行此操作时,它不起作用。我访问的文件被访问了,但是参数没有贴出来。

我想问题与我如何定义和发布参数有关($post_data .= "?companyid=banane";)。我的问题是什么?我该如何解决?

<?php
$fp = fsockopen("192.168.1.102", 80, $errno, $errstr, 30);
error_log("write done");
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {

    $post_data = "GET /cgi-bin/new_instance.pl HTTP/1.1\r\n";
    $post_data .= "Host: 192.168.1.102\r\n";
    $post_data .= "Connection: Close\r\n\r\n";
    $post_data .= "?companyid=banane";
    error_log("OUT - - - ".$post_data);
    fwrite($fp, $post_data);
        error_log("write done");
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

或者我使用了错误的方法?我在想,如果这是正确的方法,那么我应该能够在谷歌搜索时找到一些很好的例子。

I am trying to post parameters from php to another server. When creating the link manually and opening it in the browser it works fine. But when trying to do it from my php-script it doesn't work. The file I am accessing is accessed, but the parameter is not posted.

I guess the problem has to do with how I define and post the parameter ($post_data .= "?companyid=banane";). What is my problem and how do I solve it?

<?php
$fp = fsockopen("192.168.1.102", 80, $errno, $errstr, 30);
error_log("write done");
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {

    $post_data = "GET /cgi-bin/new_instance.pl HTTP/1.1\r\n";
    $post_data .= "Host: 192.168.1.102\r\n";
    $post_data .= "Connection: Close\r\n\r\n";
    $post_data .= "?companyid=banane";
    error_log("OUT - - - ".$post_data);
    fwrite($fp, $post_data);
        error_log("write done");
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Or am I using the wrong approach? I'm thinking, if this is the correct approach then I should be able to find some good examples when googling around.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温折酒 2024-12-11 00:21:14

尝试将其作为第一行:

GET /cgi-bin/new_instance.pl?companyid=banane HTTP/1.1\r\n

Try this as the first line instead:

GET /cgi-bin/new_instance.pl?companyid=banane HTTP/1.1\r\n

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文