簡體   English   中英

通過ajax執行位於服務器上的php腳本

[英]Executing a php script located on server via ajax

我有一個托管服務器的網站,現在我想要的是當有人按下網站上的提交按鈕時運行.php腳本(也位於同一台服務器上)。

以下是ajax代碼

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

我的test.php由

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

當我導航到ip_address / test.php時, echo消息顯示正確,但似乎沒有執行mkdir命令,因為我的服務器目錄中沒有創建文件夾。

另外我想知道,當有人按下我網站上的提交按鈕時,如何運行此test.php腳本。

Javascript代碼是

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);
      }
    });
  });
});

任何有關這方面的幫助將非常感激。 謝謝

在這種情況下,建議在try...catch函數中使用mkdir並捕獲錯誤(如果是這種情況)。

另一方面, mkidr將返回一個布爾值:如果目錄創建成功則為true如果失敗則為false

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...';
}

如果mkdir無法創建文件夾,則需要檢查兩件事:文件夾是否存在以及是否具有正確的權限。 我的意思是,如果用戶組設置為apache(因為apache,通過Web瀏覽器正在執行mkdir命令),第二個如果apache( www-data )具有執行此命令的必要權限。

修改服務器中的php.ini ,標記disable_functions =“...”並確保mkdir不包括在列表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM