我有一个情况;
我正在通过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")
}
我可能会想到的选项。
但我不知道这些选项有多实用,因为我也在查询字符串中使用加密数据。
答案 0 :(得分:1)
你的代码很容易被sql注入,你需要转义所有的get和post
成功返回第一个ajax调用后发送使用ajax调用
答案 1 :(得分: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');
}
});
}
});
答案 2 :(得分:0)
最终我不得不选择另一个ajax电话,但我想分享一个奇怪的案例。 这可能对某人有帮助。
我使用了没有Callback的Ajax调用,每个请求也都有失败消息
“XMLHttpRequest无法加载'远程服务器地址'Access-Control-Allow-Origin不允许原点http://mystuff.local
但奇怪的是,每个请求也成功发送电子邮件..