为什么这个删除function 找不到目录会删除了根目录?

sky94132003 2016-04-15 05:14:57
本地(网页)服务器~用curl发送一个删除请求

header('content-type:text/html;charset=utf8');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://data.XXXX.com/control.php?a=del_dir&dir=$dir");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
$result = curl_exec($curl);
curl_close($curl);


附件服务器 control.php 放在附件服务器中帮我删除目录

if (isset($_GET["a"]) && $_GET["a"]== "dir") {
$del_dir = dirname(__FILE__).$_GET["dir"];
removeDir("$del_dir");
}


我当然知道可以做个检验~,比如
if(file_exists( dirname(__FILE__).$_GET["dir"])){//xxxxx}


但我怕日后不小心做漏了~又再把整个根目录删除的话就麻烦了

想从根本下,就是那个 removeDir()



//删除整个目录
function removeDir($dirName){
$result = false;
if(! is_dir($dirName))
{
trigger_error("目录名称错误", E_USER_ERROR);
}
$handle = opendir($dirName);
while(($file = readdir($handle)) !== false)
{
if($file != '.' && $file != '..')
{
$dir = $dirName . DIRECTORY_SEPARATOR . $file;
is_dir($dir) ? removeDir($dir) : unlink($dir);
}
}
closedir($handle);
$result = rmdir($dirName) ? true : false;
return $result;
}



请教一下问题到底出在哪?
...全文
178 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky94132003 2016-04-28
  • 打赏
  • 举报
回复
推一下
sky94132003 2016-04-15
  • 打赏
  • 举报
回复
补充两点 1. 我是用lunix ,如果传值有误,会把我整个public_html 删除 2. 暂时改成这样来防止再发生删我整个根目录()

if (isset($_GET["a"]) && $_GET["a"]== "dir") {
  $del_dir = dirname(__FILE__).$_GET["dir"];
  if(file_exists($del_dir)){   
    removeDir("$del_dir");
  }
}

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧