0

我正在做一个项目,我必须在我们的系统中包含第三方应用程序。此应用程序在调用 index.php 时使用 jQuery ajax 将参数传输到 PHP 文件。确切的功能如下所示:

$.ajax( {
    type : "POST",
    cache : false,
    crossDomain : false,
    async : true,
    url : "/somwhere/somefile.php",
    data : "msg=37120&hello=true&USRID=1"
    )};

我对 AJAX 一点都不熟悉,但据我所知,参数最终"msg=37120&hello=true&USRID=1"会在 somefile.php 上得到 postet。现在我想使用 PHP 而不是 JS/AJAX 将变量直接发布到 somefile.php 上。

经过一些研究,我发现以下解决方案可以将帖子数据直接发送到somefile.php

$url = "/somwhere/somefile.php";

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, "msg=37120&hello=true&USRID=1");

$response = curl_exec( $ch );

不幸的是,这根本不起作用。执行此代码块时没有数据到达。我不知道我做错了什么。有人可以告诉我这里有什么错误吗?还是有更好的方法来做到这一点?

4

1 回答 1

1

编辑:对不起-我发布了获取,下面是要发布的代码。

这是我使用的运行良好的代码:

$cookie="cookie.txt";
$useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)";

$data=array(
  "field1" => 'data1',
  "field2" => 'data2',
  "SUBMIT" => 'true'
);

    $cr = curl_init($url);
    curl_setopt($cr, CURLOPT_RETURNTRANSFER, true);       // Get returned value as string (dont put to screen)
    curl_setopt($cr, CURLOPT_USERAGENT, $useragent);      // Spoof the user-agent to be the browser that the user is on (and accessing the php $
    curl_setopt($cr, CURLOPT_COOKIEJAR, $cookie);         // Use cookie.txt for STORING cookies
    curl_setopt($cr, CURLOPT_COOKIEFILE, $cookie);        // Use cookie.txt for STORING cookies
    curl_setopt($cr, CURLOPT_POST, true);                 // Tell curl that we are posting data
    curl_setopt($cr, CURLOPT_POSTFIELDS, $data);          // Post the data in the array above
    $output = curl_exec($cr); 
于 2013-07-11T14:13:05.417 回答