Foros del Web » Programando para Internet » PHP »

problema con borrar usuario y su carpeta

Estas en el tema de problema con borrar usuario y su carpeta en el foro de PHP en Foros del Web. Aqui tengo esto, en teoria deberia borrar usuario y carpeta del mismo. El usuario lo borra, la carpeta no. No devuelve error alguno. if($_GET['Esborrar'] == ...
  #1 (permalink)  
Antiguo 21/08/2008, 10:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 15 años, 8 meses
Puntos: 0
Exclamación problema con borrar usuario y su carpeta

Aqui tengo esto, en teoria deberia borrar usuario y carpeta del mismo. El usuario lo borra, la carpeta no. No devuelve error alguno.

if($_GET['Esborrar'] == "ok") {
$id = $_GET['id'];
mysql_query("DELETE FROM $tab_users WHERE id='$_GET[id]'") or die(print(mysql_error()));
$nome = $_GET['nome'];
function remove_dir($nome)
{
$handle = opendir($nome);
while (false!==($item = readdir($handle))) {

if($item != '.' && $item != '..')
{
if(is_dir($nome.'/'.$item))
{
remove_dir($nome.'/'.$item);
}
else {
unlink($nome.'/'.$item);
}
}
}
closedir($handle);
if(rmdir($nome))
{
$success = true;
}
return $success;
}
echo "Usuario borrado con éxito !!!";

br2(2);
echo "<a href = \"usuarios.php\">«« Volver </a>";
}
  #2 (permalink)  
Antiguo 21/08/2008, 11:42
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: problema con borrar usuario y su carpeta

Tu problema es que no invocas a la función remove_dir. Entonces obviamente no te lo borra. Por otro lado no estoy seguro de que tu función vaya a funcionar puesto que estos opendir() readdir() y demás son algo peculiares. Lo más normal es usar scandir() que no necesitas resources ni nada y es muy sencilla. Recuerdo que una vez yo necesité una que hacía lo mismo (también con el nombre de directorio sin '/' ni nada) y sé del cierto que funciona:

Código PHP:
<?php
 
function remove_dir($nome)
 {

   if(
is_dir($nome))
   {
        
$files scandir($nome);
        foreach(
$files as $file)
        {
         if(
$file!='.' and $file!='..')
         {
           if(
is_dir($nome.'/'.$file))
           {
                
$succ remove_dir($nome.'/'.$file);
                if(!
$succ//fail
                   
return false;
           }

           if(
is_file($nome.'/'.$file))
           {
                
$succ unlink($nome.'/'.$file);
                if(!
$succ)  //fail
                   
return false;
           }
         }
        }

        return 
rmdir($nome);
   }

   return 
false;
 }
?>
Evidentemente el nombre de la función lo he cambiado, que no hay tanta casualidad xDDD
__________________
Un Lannister siempre cumple sus promesas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.