2013-02-14 76 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,除非你刷新你的页面,以便排除PHP的执行功能。你需要ajax。你尝试过哪些ajax代码?你有什么问题? – Tucker 2013-02-14 07:38:23

+0

你的问题不清楚,不能回答。请尝试更清楚地定义需求,特别是'远程服务器'所反映的内容。请不要写更多评论,编辑上面的问题。 – arkascha 2013-02-14 07:39:09

+0

嗯,我正在尝试'头部(位置:Remotr地址?querystring)'来访问远程页面,但后来我才知道在Ajax调用重定向是不可能的;为什么'exec()'在这里不起作用? – 2013-02-14 07:41:53

回答

0

最终我不得不去用的另一种选择阿贾克斯电话,但我想分享一个奇怪的情况。 它可能会帮助某人。

我使用Ajax调用哪个没有回叫和每个请求也有失败消息

“的XMLHttpRequest不能加载产地http://mystuff.local不受访问控制允许来源允许的‘远程服务器地址’”

但奇怪的是,每个请求也成功与电子邮件递送..

+0

上面的错误通过把'header( 'Access-Control-Allow-Origin:*');'在请求页面的顶部 – 2013-02-14 12:07:51

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

你的代码是受到SQL注入攻击,你需要逃避所有GET和POST在第一Ajax调用成功返回

发送使用AJAX调用

+0

我的加密menthod正在处理sql注入威胁 – 2013-02-14 11:33:05

相关问题