【问题标题】:Delete folder with PHP,JQuery and Ajax使用 PHP、JQuery 和 Ajax 删除文件夹
【发布时间】:2016-10-24 22:50:49
【问题描述】:

我有这一行用于删除文件夹

<button class='elimina' data-elimina='$path/$file'>elimina $path/$file</button>

通过 JQuery 获取文件夹路径

 $(".elimina").click(function(){
     var data = $(this).data('elimina');
     $.post('file.php',data, function(response) {
        // Log the response to the console
        console.log("Response: "+response);
        });
      });

最后我将它传递给我的 file.php

$archivo = $_POST['data'];

    rmdir($archivo);

但从来没有将 var data 传递给我的 php 文件。我放了一个 if(isset($_POST['data'])){echo $_POST['data'] ;} 并且从未见过路径,但我现在路径到达了 Jquery 脚本(因为也经过测试)。

我没有表单,只有按钮,可能是问题吗?

【问题讨论】:

  • 该代码非常危险。您允许任何人删除他们知道路径且您的网络服务器用户 ID 有权删除的任何文件服务器。
  • 仅供我的工作,希望大家不要尝试任何危险的东西

标签: php jquery ajax


【解决方案1】:

这是错误的:

 $.post('file.php',data, function(response) {
                    ^^^^

您发送的不是key:value 对,您只是发送value。没有密钥,PHP 无法生成 $_POST 条目

你应该有

 $.post('file.php',{data:data}, function(response) {
                    ^-key  ^--value

【讨论】:

  • 我做到了,但我仍然有同样的问题,任何文件夹都被删除了,我有任何回声(我为了测试而改变了它)
  • @Ini 这应该已经解决了问题,一定还有其他东西你没有向我们展示。 var_dump($_POST) 显示什么?
  • @ini 你是否使用了目录的绝对路径?
  • @ini 目录是空的吗? rmdir() 只会删除一个空目录。如果它不为空,则必须先删除其中的所有内容,然后再递归到子目录中。
  • rmdir 在失败时返回布尔值 false。您也应该返回它,例如像 if(rmdir(...)) { echo 'success'; } else { echo 'failure'; } 这样简单的东西
猜你喜欢
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 2010-11-24
  • 2021-06-24
  • 1970-01-01
  • 2015-04-24
相关资源
最近更新 更多