douduan2272 2016-06-09 07:56
浏览 126
已采纳

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

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

  • 写回答

2条回答 默认 最新

  • douji5746 2016-06-09 08:08
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题