使用ajax从php文件检索数据库密码
我有一个js文件,它创建了一个表单来收集客户的联系信息。提交表单时,它会向数据库发送url字符串。但是,字符串需要包含令牌和密码才能登录到数据库。因此,我需要在php文件中隐藏令牌和密码,并在客户端点击submit时将其添加到字符串中。到目前为止,我已经能够使用.get或.ajax从php文件中获取数据,但是js文件已经使用了.ajax请求,我不知道如何将它们组合在一起。有什么想法吗?谢谢大家!使用ajax从php文件检索数据库密码,php,ajax,Php,Ajax,我有一个js文件,它创建了一个表单来收集客户的联系信息。提交表单时,它会向数据库发送url字符串。但是,字符串需要包含令牌和密码才能登录到数据库。因此,我需要在php文件中隐藏令牌和密码,并在客户端点击submit时将其添加到字符串中。到目前为止,我已经能够使用.get或.ajax从php文件中获取数据,但是js文件已经使用了.ajax请求,我不知道如何将它们组合在一起。有什么想法吗?谢谢大家! function initPopup() { // open on load
function initPopup() {
// open on load
if (xanadu_settings['show_popup'] == 'open') {
openXanadu();
}
// open on mouse out
else {
$('html > body').mouseleave(function() {
if (!popup_visible) {
openXanadu();
}
});
}
}
// This gets the login string i need to add to the form subit string below
var dataString = 'login';
$.ajax({
type: 'GET',
url: "login.php",
data: {data : dataString},
success: function(data) {
returnedvalue = data;
console.log(data);
}
});
$("#xanadu_wrapper form").validate({
rules: {
name: "required",
email: {
required: true,
email: true
}
},
messages: {
name: "Please specify your name",
email: {
required: "We need your email address to contact you",
email: "Your email address must be valid"
}
},
submitHandler: function(form, data) {
var report_url = "http://myLinkToTheAPI";
var submit_data = {
// token: $(form).find('input.token').val(),
// pass: $(form).find('input.pass').val(),
campaignId: $(form).find('input.campaignId').val(),
ipAddress: $(form).find('input#ipAddress').val(),
source: $(form).find('input.source').val(),
name: $(form).find('input.name').val(),
email: $(form).find('input.email').val(),
phone: $(form).find('input.phone').val(),
}
var form_submitted = false;
var submit_data = $(form).serialize();
$.ajax({
type: 'GET',
url: report_url,
data: submit_data,
complete: function() {
if ( ($(form).attr('action') != '') && (form_submitted == false) ) {
$(form)[0].submit();
form_submitted = true;
}
$(form).find('input, button').attr('disabled', '');
//Thank you! We will contact you shortly.
$(form).after('<p class="success-alert">' + xanadu_settings['success_message'] + '</p>');
$(form).next('.success-alert').fadeIn();
console.log(form);
console.log(form_submitted);
if (xanadu_settings['prevent_after_submission'] == 'true') {
setBlockCookie();
}
}
});
setTimeout(function(){
if ( ($(form).attr('action') != '') && (form_submitted == false) ) {
$(form)[0].submit();
form_submitted = true;
}
}, 500);
}
});
函数initPopup(){
//有载打开
如果(世外桃源设置['show\u popup']=='open'){
openXanadu();
}
//鼠标一出就打开
否则{
$('html>body').mouseleave(函数(){
如果(!弹出窗口_可见){
openXanadu();
}
});
}
}
//这将获取我需要添加到下面表单subit字符串中的登录字符串
var dataString='login';
$.ajax({
键入:“GET”,
url:“login.php”,
数据:{data:dataString},
成功:功能(数据){
返回值=数据;
控制台日志(数据);
}
});
$(“#世外桃源包装形式”)。验证({
规则:{
名称:“必需”,
电邮:{
要求:正确,
电子邮件:真的
}
},
信息:{
姓名:“请指定您的姓名”,
电邮:{
必填:“我们需要您的电子邮件地址与您联系”,
电子邮件:“您的电子邮件地址必须有效”
}
},
submitHandler:函数(表单、数据){
var报告\u url=”http://myLinkToTheAPI";
var提交_数据={
//令牌:$(form.find('input.token').val(),
//pass:$(form.find('input.pass').val(),
活动ID:$(表单).find('input.campaignId').val(),
ipAddress:$(form).find('input#ipAddress').val(),
source:$(form.find('input.source').val(),
名称:$(表单).find('input.name').val(),
电子邮件:$(表单).find('input.email').val(),
电话:$(form.find('input.phone').val(),
}
var form_submitted=错误;
var submit_data=$(form).serialize();
$.ajax({
键入:“GET”,
url:报告url,
数据:提交数据,
完成:函数(){
如果($(form.attr('action')!='')和(&(form_submitted==false)){
$(表单)[0]。提交();
提交的表格=真;
}
$(form).find('input,button').attr('disabled','');
//谢谢!我们将很快与您联系。
$(form).after(''+xanadu\u设置['success\u message']+'
');
$(表单).next('.success alert').fadeIn();
控制台日志(表格);
控制台日志(提交的表格);
如果(xanadu_设置['prevent_after_submission']=='true'){
setBlockCookie();
}
}
});
setTimeout(函数(){
如果($(form.attr('action')!='')和(&(form_submitted==false)){
$(表单)[0]。提交();
提交的表格=真;
}
}, 500);
}
});
只需在AJAX调用中进行更新/插入即可
当他们点击submit时,序列化Array()表单,将表单数据传递到接收页面,并处理服务器上的所有数据库交互。您永远不应该在客户端上存储数据库信息。我们需要查看一些代码,以便对您的设置进行任何更改。浏览器永远不应该知道您的数据库访问详细信息。数据库访问应由服务器处理。为什么浏览器需要了解数据库的任何信息…?!Javascript是如何将任何东西“发送到数据库”的…?!“但是字符串需要包含一个令牌和密码才能登录到数据库”我刚刚在帖子中添加了代码-希望它现在更有意义。好的,我有这部分
var submit_data=$(form).serialize()
将所有表单数据放入一个字符串中,并发送到数据库。但是我认为需要在这个字符串中包含令牌和密码,数据库才能接受它。你说我可以发送不带登录信息的字符串,然后在它到达服务器时添加它?我认为由于误用某些单词(可能是语言障碍)会导致一些混乱@如果我错了,用户3063712可以随意更正,但似乎您有一个表单,并且您正试图通过API将数据从表单发送到外部第三方服务。此API要求使用令牌和密码发送数据。您当前正在将令牌和密码存储在自己的数据库中,当加载表单页面时,您请求获取此信息,以便在提交表单时将其插入API请求中。编辑Patrick的响应:如果Patrick所说的是正确的,您需要进行一些更改。让AJAX指向一个独立的php页面。从数据库中获取API信息,构建API数据包,然后从那里将信息发送到API。如果需要,您可以将API响应传递给客户端。patrick Q-您说得对,只是我没有将登录名存储在db中,而是将其存储在外部php文件中。表格必须放在第三方网站上,该网站只允许我访问所见即所得。因此,我可以添加js脚本和一个div来将表单加载到。@user3063712,请查看您问题下的我的评论,了解如何操作。我没有时间为您编写所有代码,但这应该会让您朝着正确的方向前进。