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

问题描述:

我使用php curl发送发布信息。没关系。没问题。但是它发送服务器的IP。这对我来说是一个问题。通过PHP(curl)或jQuery - IP问题发送POST信息 -

jQuery是发送与用户的IP后的信息,但是有jQuery的跨域问题。它不会将发布信息发送到其他域。它只适用于相同的域。

我想送岗位信息(另一个域)+用户IP(而不是服务器IP)。我喜欢学习你的建议......那么,有没有其他的方式来完成这份工作?

谢谢,关心。

做到这一点的唯一方法是让网页指向指定的资源上的表单,给它一个POST方法,并提交。

如果你不想整个页面重新加载,使用iframe。

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

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

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

+0

感谢您的回答。听起来不错。即时在我的本地主机上测试它..再次感谢。 – Eric 2011-01-21 22:12:22

如果“一些,其他的现场”是你太,你只需要客户端IP有 - 你可以用值从全局数组$_SERVER["REMOTE_ADDR"]

通只是一个POST参数,但如果你需要从客户端的请求IP - 你应该使用iframe,就像佩卡说的那样。

+0

感谢您的回答。我认为iframe是您和@Pekka所说的最佳解决方案。问候 – Eric 2011-01-21 22:20:09

您还可以设置一个PHP脚本,将proxify你的电话。

在同一个域中,把一个PHP脚本,将捕获后ARGS,并重新发送直通卷曲电话。然后输出你的jquery ajax调用会捕获的结果。

+0

感谢您的答案。其实,我不明白这一点。我认为这对我来说是一个复杂的系统。无论如何,再次感谢。 – Eric 2011-01-21 22:31:11

是的。使用卷曲脚本发布图像,但那又如何?我如何得到结果?

<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); 

     } 
     } 
    } 
    ?> 

现在呢?