Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP(curl)或jQuery发送帖子信息-IP问题-_Php_Jquery - Fatal编程技术网

通过PHP(curl)或jQuery发送帖子信息-IP问题-

通过PHP(curl)或jQuery发送帖子信息-IP问题-,php,jquery,Php,Jquery,我用php curl发送帖子信息。没关系。没问题。然而,它发送服务器的IP地址。这对我来说是个问题 jquery使用用户的IP发送帖子信息,但jquery存在跨域问题。它没有将帖子信息发送到另一个域。它只适用于同一个域 我想发送帖子信息(到另一个域)+用户ip(不是服务器ip)。我想听听你的建议。。。那么,还有其他的方法来完成这项工作吗 谢谢,您好。唯一的方法是在网页上有一个指向指定资源的表单,给它一个POST方法,然后提交它 如果不希望重新加载整个页面,请使用iframe <iframe

我用php curl发送帖子信息。没关系。没问题。然而,它发送服务器的IP地址。这对我来说是个问题

jquery使用用户的IP发送帖子信息,但jquery存在跨域问题。它没有将帖子信息发送到另一个域。它只适用于同一个域

我想发送帖子信息(到另一个域)+用户ip(不是服务器ip)。我想听听你的建议。。。那么,还有其他的方法来完成这项工作吗


谢谢,您好。

唯一的方法是在网页上有一个指向指定资源的表单,给它一个
POST
方法,然后提交它

如果不希望重新加载整个页面,请使用iframe

<iframe id="myiframe"></iframe>

<form action="http://some-other-site.com/page.php" method="post" target="myiframe">
....

....
但是,您将无法访问站点输出的结果-同样是由于跨域/单源策略。

如果“其他站点”也是您的,并且您在那里只需要客户端IP-您可以只传递另一个
POST
参数,该参数的值来自全局数组
$\u服务器[“REMOTE\u ADDR”]


但是,如果您需要从客户端IP发出请求,您应该使用iframe,正如Pekka所说。

您还可以设置一个php脚本来代理您的调用


在同一个域中,放置一个php脚本来捕获post参数,并通过curl调用重新发送它。然后打印jQueryAjax调用捕获的结果。

是。使用curl脚本发布图像,然后呢?我如何得到结果

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" name="sub" value="upload"/>
</form>

    <?php

    ini_set('display_errors',1);
    error_reporting(E_ALL);

    if($_POST['sub'])
    {

    if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")))
      {
      if ($_FILES["file"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
      else
        {
    //set POST variables
    $url = 'http://img.savvylist.com/';

    $contents = $_FILES["file"]["tmp_name"];
    //get image file as contents.


    $fields = array(
                'filetype'=>'jpg',
                'fileid'=>'test_suite:adam:head.jpg',
                'content'=>$contents           
            );

    //url-ify the data for the POST
    $fields_string = '';
    foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
    rtrim($fields_string,'&');

    //open connection
    $ch = curl_init();

    //set the url, number of POST vars, POST data
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_POST,count($fields));
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

    //execute post
    $result = curl_exec($ch);

    //close connection
    curl_close($ch);

        }
      }
    }
    ?>


现在怎么办?

谢谢你的回答。听起来不错。我现在正在本地主机上测试。。再次感谢。谢谢你的回答。正如你和@Pekka所说,我认为iframe是最好的解决方案。谢谢你的回答。其实我不明白。我认为这对我来说是一个复杂的系统。无论如何,再次谢谢你。