在通过ajax调用的页面上执行其他服务器脚本
我有一种情况;在通过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")
}
,我可以想到的选项。
- 使用exec(“PHP script?q = value”);
- 或者在Ajax调用成功时通过JSONP调用另一个调用来访问远程服务器。
但我不知道这些选项是多么实际,因为我也在查询字符串中使用加密数据。
最终我不得不去用的另一种选择阿贾克斯电话,但我想分享一个奇怪的情况。 它可能会帮助某人。
我使用Ajax调用哪个没有回叫和每个请求也有失败消息
“的XMLHttpRequest不能加载产地http://mystuff.local不受访问控制允许来源允许的‘远程服务器地址’”
但奇怪的是,每个请求也成功与电子邮件递送..
上面的错误通过把'header( 'Access-Control-Allow-Origin:*');'在请求页面的顶部 – 2013-02-14 12:07:51
第一次成功使用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');
}
});
}
});
你的代码是受到SQL注入攻击,你需要逃避所有GET和POST在第一Ajax调用成功返回
发送使用AJAX调用
我的加密menthod正在处理sql注入威胁 – 2013-02-14 11:33:05
以及你不能做什么你问你的PHP,除非你刷新你的页面,以便排除PHP的执行功能。你需要ajax。你尝试过哪些ajax代码?你有什么问题? – Tucker 2013-02-14 07:38:23
你的问题不清楚,不能回答。请尝试更清楚地定义需求,特别是'远程服务器'所反映的内容。请不要写更多评论,编辑上面的问题。 – arkascha 2013-02-14 07:39:09
嗯,我正在尝试'头部(位置:Remotr地址?querystring)'来访问远程页面,但后来我才知道在Ajax调用重定向是不可能的;为什么'exec()'在这里不起作用? – 2013-02-14 07:41:53