2011-01-21 2 views
0

PHP curl을 사용하여 게시물 정보를 보내는 중입니다. 괜찮아. 문제 없어. 그러나 서버의 IP를 보냅니다. 이것은 나를위한 문제입니다.PHP (curl) 또는 jQuery를 통해 POST 정보를 보내고 있습니다 - IP 문제 -

jquery는 사용자 IP로 게시물 정보를 보내지 만 jQuery는 도메인 간 문제가 있습니다. 게시물 정보를 다른 도메인으로 보내지 않습니다. 동일한 도메인에서만 작동합니다.

게시 정보 (다른 도메인) + 사용자 ip (서버 ip가 아님)를 보내려고합니다. 이드는 당신의 조언을 배우고 싶습니다. 글쎄,이 직업을 만드는 다른 방법이 있습니까?

감사합니다.

답변

1

웹 페이지에서 지정된 리소스를 가리키는 양식을 가지고 POST 메서드를 제공하고 제출하는 유일한 방법입니다.

전체 페이지를 다시로드하지 않으려면 iframe을 사용하십시오. 때문에 상호 도메인/단일 출처 정책에 다시 -

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

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

당신은, 그러나, 결과 사이트 출력에 액세스 할 수 없습니다.

+0

답변 해 주셔서 감사합니다. 좋은 소리. 인스턴트 메신저 지금 내 localhost에서 그것을 테스트 .. 다시 한 번 감사드립니다. 대답은 – Eric

0

은 "일부-다른-사이트는"너무 당신을 그리고 당신은 그냥 거기에 클라이언트 IP가 필요한 경우 - 당신이 전역 배열 $_SERVER["REMOTE_ADDR"]

에서 값을 또 다른 POST 매개 변수를 전달할 수 있습니다하지만 당신이 필요로하는 경우 클라이언트로부터 요청을하려면 IP - iframe을 사용해야합니다. Pekka는 말했습니다.

+0

주셔서 감사합니다. 나는 iframe이 당신과 @ 페카가 말한 최고의 해결책이라고 생각합니다. 안부 답변을 – Eric

0

또한 통화를 프록 시화하는 PHP 스크립트를 설정할 수도 있습니다.

동일한 도메인에서 게시물 args를 잡아낼 PHP 스크립트를 넣고 curl 호출을 통해 다시 전송하십시오. jquery ajax 호출에 의해 catch 된 결과를 출력하십시오.

+0

감사합니다. 사실, 나는 그것을 이해하지 못했다. 나는 그것이 나를위한 복잡한 시스템이라고 생각한다. 어쨌든, 다시 한번 감사드립니다. – Eric

0

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

     } 
     } 
    } 
    ?> 

이제 어떻게 되나요?

관련 문제