[英]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.