Nel codice che avevo postato prima non c'era neanche $level['folder_path']
questo è quello aggiornato:
Codice PHP:
<?php
include 'dbc.php';
page_protect();
$path=$_GET['path'];
$original_path=$path;
if($path!='' && $path!='null' && $path!='undefined') {
$site_name='http://farebury.exofire.net/';
$path=str_replace($site_name,'',$path);
$sept=str_replace('tree/','',$path);
$lengsept=stripos($sept,'/');
$iden=substr($sept, 0 ,$lengsept);
$iden=trim($iden);
/*check if you can delete the folder*/
$username=$_SESSION['user_nick'];
$usid=$_SESSION['user_id'];
$perm=$basepermfold.$usid.'/'.$username.'.txt';
$var = implode('', file ($perm));
$arrperm=explode("\n",$var);
$permissiondelete=false;
for($i=0;$i<count($arrperm);$i++){
if($arrperm[$i]==$iden){
$permissiondelete=true;
break;
}
}
if($permissiondelete==true){
/*Folder level*/
$original_path=trim($original_path);
echo "<script>alert('percorso=".$original_path."');</script>";
$query="SELECT folder_level FROM folder WHERE folder_path = '$original_path'";
$result=mysql_query($query,$link) or die("Insertion Failed:" . mysql_error());
//$level =mysql_fetch_assoc($result);
$level =mysql_num_rows($result);
echo "<script>alert('risultati ottenuti=".$level."');</script>"; #in questo modo conosci quanti risultati hai ottenuto, conosci quanti folder_level hai
while($level = mysql_fetch_array($result)){
echo var_dump($level['folder_level'])."
"; #stampa string(1) "2"
}
$path=trim($path);
$ceckph=str_replace('/','',$path);
$ceckph=trim($ceckph);
$rope=$level['folder_level']; #null se faccio un intval($level['folder_level']) stampa int(0)
echo var_dump($rope);
$subfolder = '2' ;
$mainfolder = '1' ; #ho provato sia con sia senza apostrofi
$permtxt = '/'.$username.'.txt';
if($ceckph!='tree'){
//elimino file
if(is_file($path)==true){
unlink($path);
echo "The file has been deleted";
}
//elimino cartella
//sub folder
else if(is_dir($path) && $level['folder_level']==$subfolder){
$var = implode('', file ($read));
$arr=explode("\n",$var);
$check=delete_directory($path);
if($check==true){
echo "The folder and his content has been deleted";
}
else
echo "There was a problem,couldn't delete the subfolder,please contact the Administrator";
}
//main folder
else if(is_dir($path) && $level['folder_level']==$mainfolder){
$read=$path.$infotxt;
pulisci($read);
$var = implode('', file ($read));
$arr=explode("\n",$var);
if(count($arr)==1){ //only one person
$check=delete_directory($path);
if($check==true){
//delete permission
for($i=0;$i<count($arrperm);$i++){
if($arrperm[$i]==$iden){
$arrperm[$i]='';
break;
}
}
$file = fopen($perm, "w+");
fwrite($file,$arrperm."\n");
fclose($file);
pulisci($perm);
$operation="DELETE FROM folder WHERE folder_path='$original_path'";
mysql_query($operation,$link);
echo "The folder and his content has been deleted";
}
else
echo "There was a problem,couldn't delete the main folder,please contact the Administrator";
}
else{//more than one person
for($i=0;$i<count($arr);$i++){
if($arr[$i]==$username){
$arr[$i]='';
break;
}
}
$file = fopen($read, "w+");
fwrite($file,$arr."\n");
fclose($file);
pulisci($read);
//delete permission
for($i=0;$i<count($arrperm);$i++){
if($arrperm[$i]==$iden){
$arrperm[$i]='';
break;
}
}
$file = fopen($perm, "w+");
fwrite($file,$perm."\n");
fclose($file);
pulisci($perm);
}
}
//no file or folder
else {
echo "There was a problem,couldn't identify the folder type,please contact the Administrator";
}
}
else
echo "You can't delete the Parent Folder.";
}
else
echo "You can't delete this folder,because you don't own the permissions.";
}
function delete_directory($dirname) {
if (is_dir($dirname))
$dir_handle = opendir($dirname);
if (!$dir_handle)
return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file))
unlink($dirname."/".$file);
else
delete_directory($dirname.'/'.$file);
}
}
closedir($dir_handle);
rmdir($dirname);
return true;
}
function pulisci($store){
$arr=array();
foreach( file($store) as $line ){
$line=trim($line);
if($line != '') $arr[]=$line;
}
file_put_contents($store, implode("\n",$arr) );
}
?>