通过ajax执行位于服务器上的php脚本

我在服务器上托管了一个网站,现在我想要的是运行.php脚本(也位于 相同的服务器)当有人按下网站上的提交按钮时。
</ p>

以下是ajax代码
</ p>

  $  .ajax({url:“/ test.php”,成功:功能(响应){
console.log(“成功”,响应);
}
});
</ code> < / pre>

我的test.php包含
</ p>

 &lt;?php 
// exec('sudo -u www-data python /var/www/html/test.py');\cho“PHP Script Ran”;
mkdir(“/ var / www / html / test”,0700);
?&gt;
</ code> </ pre>

当我导航到ip_address / test.php时, echo </ code>消息显示正确,但 mkdir </ code>命令似乎没有 执行,因为我的服务器目录中没有创建文件夹。</ p>

另外我想知道,当有人按下我网站上的提交按钮时,如何运行这个test.php脚本。 </ p>

Javascript代码是</ p>

  var $ = jQuery; 
var timestamp = Number(new Date());
var form = document.querySelector(“form”);
var database = firebase.database();
form.addEventListener(“submit”,function(event){
var ary = $(form).serializeArray();
var obj = {};
for(var a = 0; a&lt; ary.length; a ++)obj [ary [a] .name] = ary [a] .value;
console.log(“JSON”, obj);
\ firebase.database()。ref('users /'+ timestamp).set(obj);
database.ref('users /'+ timestamp).once('value')。then(function (快照){
console.log(“Received value”,snapshot.val());
$ .ajax({
url:“/ test.php”,成功:功能(响应){\ n console.log(“成功”,响应);
}
});
});
});
</ code> </ pre>

任何帮助 非常感谢。
谢谢</ p>
</ div>

展开原文

原文

I have a website hosted on server, now what I want is to run a .php script (Also located on the same server) when someone presses the submit button in the website.

Following is the ajax code

$.ajax({url: "/test.php",
  success: function(response){
      console.log("Success",response);
    }
  });

My test.php consists of

<?php
//exec('sudo -u www-data python /var/www/html/test.py');
echo "PHP Script Ran";
mkdir("/var/www/html/test", 0700);
?>

When I navigate to ip_address/test.php, the echo message is displayed correctly but the mkdir command doesn't seem to be executed as there is no folder created in my server's directory.

Also I want to know, how can I run this test.php script when someone presses the submit button in my website.

The Javascript code is

var $ = jQuery;
var timestamp = Number(new Date());
var form = document.querySelector("form");
var database = firebase.database();
form.addEventListener("submit", function(event) {
  var ary = $(form).serializeArray();
  var obj = {};
  for (var a = 0; a < ary.length; a++) obj[ary[a].name] = ary[a].value;
    console.log("JSON",obj);
  firebase.database().ref('users/' + timestamp).set(obj);
  database.ref('users/' + timestamp).once('value').then(function(snapshot) {
    console.log("Received value",snapshot.val());
    $.ajax({
      url: "/test.php",
      success: function(response){
        console.log("Success",response);
      }
    });
  });
});

Any help on this would be much appreciated. Thanks

drhs13583567608
drhs13583567608 这似乎是一个权限问题:脚本test.php可能没有添加该文件夹的权限。远程服务器上也可能存在路径/var/www/html。这些是我的想法......
4 年多之前 回复
dqmnueuu459279
dqmnueuu459279 所以我在form.addEventListener(“submit”,function(event){event.preventDefault();.....之后添加了这个,但我现在如何执行php脚本?从ajax获取后
4 年多之前 回复
dongyinglan8707
dongyinglan8707 event.preventDefault();缺少停止表单提交。
4 年多之前 回复

2个回答



在这种情况下,建议在 try ... catch </ code>中使用 mkdir </ code> 如果是这样的话,函数并捕获错误。</ p>

另一方面 mkidr </ code> 将返回一个布尔值:如果目录创建成功,则返回 true </ code>;如果是,则返回 false </ code> 失败。 </ p>

1.version </ strong> </ p>

  try {
mkdir(“/ var / www / html / test “,0700,true);
} catch($ ex Exception){
echo $ ex-&gt; getMessage();
}
</ code> </ pre>

< strong> 2.version </ strong> </ p>

  if(!mkdir(“/ var / www / html / test”,0700,true)){
echo'Failed 创建文件夹...';
}
</ code> </ pre>

如果 mkdir </ code>无法创建文件夹,则需要检查两件事:如果 文件夹存在,如果它具有正确的权限。 我的意思是,如果用户组设置为apache(因为apache,通过Web浏览器正在执行mkdir命令),第二个如果apache( www-data </ code>)具有执行此命令所需的权限。 </ p>
</ div>

展开原文

原文

In this case it's recommended to use mkdir within try...catch function and capture the error if it's the case.

On the other hand mkidr will return a boolean value: true if the directory creation was successful or false in the case of a failure.

1.version

try {
    mkdir("/var/www/html/test", 0700, true);
} catch ($ex Exception) {
    echo $ex->getMessage();
}

2.version

if (!mkdir("/var/www/html/test", 0700, true)) {
    echo 'Failed to create folder...';
}

If mkdir cannot create the folder two things you need to check: if the folder exist and if it has the right permissions. By this i mean if the user group is set to apache (because apache, through web browser is executing the mkdir command) and second if apache (www-data) has the necessary permissions to execute this command.

douya8978
douya8978 谢谢,它的工作原理:)必须使用本指南设置正确的权限http://fideloper.com/user-group-permissions-chmod-apache
4 年多之前 回复
dougu5847
dougu5847 它不是一个javascript动作,它与服务器端无关。 请检查我编辑的答案。
4 年多之前 回复
drfkl66684
drfkl66684 好吧,所以我做了这个,我得到的回答是“创建文件夹失败..”所以可能是一些权限问题,我将再看一下,还有一个命令提醒(响应); 在我的服务器上执行脚本? 我对此有点新意,所以这一部分对我不清楚。
4 年多之前 回复



修改服务器中的 php.ini </ strong>,标签 disable_functions </ strong> =“ ......“并确保mkdir不包含在列表中。</ p>
</ div>

展开原文

原文

Revise your php.ini in the server, the tag disable_functions = "..." and making sure that mkdir not this included in the list.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐