2013-02-14 3 views
0

상황이 있습니다.ajax 호출을 통해 호출 한 페이지에서 다른 서버 스크립트를 실행하십시오.

전자 메일 서버 권한이있는 다른 서버에서 스크립트를 실행해야하는 AJAX를 통해 PHP 페이지를 호출합니다. 데이터베이스에 데이터를 입력 한 후 PHP 페이지에서 더 자세히 설명하려면 쿼리 문자열에서 특정 매개 변수를 사용하여 전자 메일 서버에 액세스해야합니다.

index.php 페이지에서 AJAX 호출을 통해 데이터베이스에 데이터를 입력 한 다음 정보를 얻기 위해 사용자에게 전자 메일을 보내야하는 제출 단추가 있습니다. 이메일을 위해 나는 이메일 서버 접근이있는 다른 서버에서 PHP 스크립트를 실행해야한다. 내가 생각할 수

클라이언트 측

$.ajax({ 
      url:'vpms/server/updating.php', 
      type:'POST', 
      data:formvalues, 
      success: function(data) { 

        closelightbox('black_overlay','vendorfeedback',ref-1,'CLOSE'); 
        } 
      }); 


IN updating.php 
enter code here 



if($_POST['Type']=='SUBMITRATING') 
    { 

$sql->Query("INSERT INTO vpms_procurement(`prno`,`vn`,`category`,`paymentterms`,`c1`,`delivery`,`c2`,`communication`,`c3`,`dated`,emaildate) VALUES('$_POST[PRNO]','$_POST[$vendor]','$_POST[$category]','$_POST[$payment]','$_POST[$payment_txt]','$_POST[$delivery]','$_POST[$delivery_txt]','$_POST[$response]','$_POST[$response_txt]',NOW(),'$_POST[$date]')"); 

} 
$enc=Autoloader::encrypt(serialize($array));  
// Sending request to other server for email 
header("Location: 10.89.6.2/managerConfirmation.php?token=$enc"); //  This is not possible through ajax call 
//OR 
exec("10.89.6.2/managerConfirmation.php?token=$enc") 
} 

옵션을 선택합니다.

  1. exec ("PHP script? q = value");
  2. 또는 Ajax 호출이 성공하면 JSONP를 통해 다른 호출을 만들어 원격 서버에 액세스하십시오.

하지만 이러한 옵션이 얼마나 유용한 지 알지 못합니다. 쿼리 문자열에 암호화 된 데이터를 사용하고 있기 때문입니다.

+0

php의 exec 기능을 사용하지 않도록 페이지를 새로 고치지 않으면 php로 묻는 것을 수행 할 수 없습니다. 아약스가 필요해. 어떤 아약스 코드를 사용해 보셨습니까? 어떤 문제가 있습니까? – Tucker

+0

귀하의 질문에 명확하지 않은 답변을 드릴 수 없습니다. 요구 사항, 특히 '원격 서버'가 구체화 한 요구 사항을보다 명확하게 정의하십시오. 추가 의견을 쓰지 마시고 위에 질문을 편집하십시오. – arkascha

+0

글쎄, 원격 페이지에 접근하기 위해'Header (Location : Remotr Adress? querystring)'를 시도했지만, 아약스 호출 리다이렉션이 가능하지 않다는 것을 알게되었다. 왜'exec()'가 여기서 작동하지 않을까요? –

답변

0

모든 얻을 먼저 아약스 호출의 성공적인 복귀에

전송 사용 아약스 호출을 게시 탈출 할 필요가 SQL 인젝션에 취약 아약스 전화.하지만 이상한 사건을 나누고 싶었어. 누군가 도움이 될 수 있습니다.

나는 콜백 없었다 각각의 요청이 또한 실패 메시지를 가지고 Ajax 호출을 사용

"XMLHttpRequest의 원산지 http://mystuff.local가 액세스 제어 - 허용 - 원산지에 의해 허용되지 않습니다 '원격 서버 주소를'로드 할 수 없습니다"

이상하지만 각 요청도 이메일 전달과 함께 성공했습니다.

+0

위 오류가'header 'Access-Control-Allow-Origin : *');'요청 된 페이지 맨 위 –

0

첫 번째 성공적인 Ajax 응답에서 두 번째 Ajax 호출을 사용하십시오.

$.ajax({ 
     url:'vpms/server/updating.php', 
     type:'POST', 
     data:formvalues, 
     success: function(return_data) { 

       //Make 2nd ajax call here and run the remote script 
       enc = return_data ; 
       $.ajax({ 
        url:'10.89.6.2/managerConfirmation.php?token='+enc, 
        type:'POST', 
        data:anything, 
        success: function(data) { 

          closelightbox('black_overlay','vendorfeedback',ref-1,'CLOSE'); 

          } 
        }); 

       } 
     }); 
1

코드는 내가 다른 사람의 옵션을 가야했다 결국

+0

내 암호화 menthod가 SQL 삽입 위협으로 처리 중임 –

관련 문제