Avatar Image
Usuario habitual
Usuario habitual

Hola muy buenas, veran tengo un problemilla bastante raro. miren:

Spoiler:

<?php session_start();
include("conexion_bd.php");
$nombre_marca=$_REQUEST['marca'];
chmod('img',0777);
chmod('img/balines',0777);
chmod('img/balines/logos',0777);
foreach ($nombre_marca as $stupid)
{
    $consulta=mysql_query('SELECT imagen FROM marcas WHERE nombre LIKE "'.$stupid.'"');
    $resultado=mysql_fetch_array($consulta);
    if(file_exists('img/balines/logos/'.$resultado[0]))
    {
        unlink('img/balines/logos/'.$resultado[0]);
    }else{
    }
    $ruta='img/balines/'.strtolower($stupid);
    if(is_dir($ruta))
    {
        chmod($ruta,0777);
        $ruta_thumb=$ruta.'/thumb';
        chmod($ruta_thumb,0777);
        $thumb=opendir($ruta_thumb);
        while($archivo=readdir($thumb))
        {
            // carpeta thumb
            if($archivo=="_notes")
            {
                if(is_dir($ruta.'/thumb/_notes'))
                {
                    // carpeta thumb/_notes
                    chmod($ruta_thumb,0777);
                    while($thumb_notes=readdir(opendir($ruta_thumb)))
                    {
                        unlink($ruta_thumb.'/'.$thumb_notes);
                    }
                    closedir($ruta_thumb.'/_notes');
                    rmdir($ruta_thumb.'/_notes');
                }
            }
            if(!(($archivo==".")or($archivo=="..")))
            {
                unlink($ruta_thumb.'/'.$archivo);
                unlink($ruta.'/'.$archivo);
                mysql_query('DELETE FROM marcas_balines WHERE nombre LIKE "'.$archivo.'"');
            }   
        }
        if(rmdir($ruta_thumb))
        {
            if(rmdir($ruta))
            {
                mysql_query('DELETE FROM marcas WHERE nombre LIKE "'.$stupid.'"');
                mysql_query('DELETE FROM marcas_propiedades WHERE marca LIKE "'.$stupid.'"');
            }
        }
    }else{
        mysql_query('DELETE FROM marcas WHERE nombre LIKE "'.$stupid.'"');
        mysql_query('DELETE FROM marcas_propiedades WHERE marca LIKE "'.$stupid.'"');
    }
}
header('Location: quit_marca_name.php?sms=Las marcas seleccionadas y sus archivos han sido eliminados');
?>

Visto esto, os planteo el problema que me surge. Como veran (almenos eso creo) el codigo esta perfecto (Se que la funcion chmod() esta deshabilitada, pero por si acaso lo tengo puesto) pero el problema es que no me borra el ultimo directorio. ejemplo:
Esto es lo que tengo
-dir_raiz
    -thumb
        -imagen_1
        -imagen_2
        -imagen_3
        -imagen_4
        -imagen_5
        -...
    -imagen_1
    -imagen_2
    -imagen_3
    -imagen_4
    -imagen_5
    -...

el codigo lo borra todo menos el directorio raiz (dir_raiz, en el ejemplo) y me gustaría saber que pasa. Alguien tiene alguna idea?

Avatar Image
@man / @woman
@man / @woman

¿Los directorios están vacios?

Avatar Image
Usuario habitual
Usuario habitual

Problema resuelto. me faltava borrar alguna cosas de dentro de la raiz..xD ya esta. Gracias de todos modos. Pongo el codigo por si alguien tiene alguna duda parecida ya sabe.

Spoiler:

<?php session_start();
include("conexion_bd.php");
$nombre_marca=$_REQUEST['marca'];
chmod('img',0777);
chmod('img/balines',0777);
chmod('img/balines/logos',0777);
foreach ($nombre_marca as $stupid)
{
    $consulta=mysql_query('SELECT imagen FROM marcas WHERE nombre LIKE "'.$stupid.'"');
    $resultado=mysql_fetch_array($consulta);
    if(file_exists('img/balines/logos/'.$resultado[0]))
    {
        unlink('img/balines/logos/'.$resultado[0]);
    }
    $ruta='img/balines/'.strtolower($stupid);
    if(is_dir($ruta))
    {
        chmod($ruta,0777);
        $ruta_thumb=$ruta.'/thumb';
        chmod($ruta_thumb,0777);
        $thumb=opendir($ruta_thumb);
        while($archivo=readdir($thumb))
        {
            // carpeta thumb
            if($archivo=="_notes")
            {
                if(is_dir($ruta.'/thumb/_notes'))
                {
                    // carpeta thumb/_notes
                    chmod($ruta_thumb,0777);
                    while($thumb_notes=readdir(opendir($ruta_thumb)))
                    {
                        unlink($ruta_thumb.'/'.$thumb_notes);
                    }
                    closedir($ruta_thumb.'/_notes');
                    rmdir($ruta_thumb.'/_notes');
                }
            }
            if(!(($archivo==".")or($archivo=="..")))
            {
                unlink($ruta_thumb.'/'.$archivo);
                //unlink($ruta.'/'.$archivo);
                //mysql_query('DELETE FROM marcas_balines WHERE nombre LIKE "'.$archivo.'"');
            }   
        }
        closedir($thumb);
        if(is_dir($ruta_thumb))
        {
            rmdir($ruta_thumb);   
        }
        $raiz=opendir($ruta);
        while($archivo=readdir($raiz))
        {
            // carpeta raiz
            if($archivo=="_notes")
            {
                if(is_dir($ruta.'/_notes'))
                {
                    // carpeta raiz/_notes
                    $notes_raiz=opendir($ruta.'/_notes');
                    while($thumb_notes=readdir($notes_raiz))
                    {
                        unlink($ruta.'/_notes/'.$thumb_notes);
                    }
                    closedir($notes_raiz);
                    rmdir($ruta.'/_notes');
                }
            }
            if(!(($archivo==".")or($archivo=="..")))
            {
                unlink($ruta.'/'.$archivo);
                mysql_query('DELETE FROM marcas_balines WHERE nombre LIKE "'.$archivo.'"');
            }   
        }
        closedir($raiz);
        if(rmdir($ruta))
        {
            mysql_query('DELETE FROM marcas WHERE nombre LIKE "'.$stupid.'"');   
            mysql_query('DELETE FROM marcas_propiedades WHERE marca LIKE "'.$stupid.'"');
        }
    }else{
        mysql_query('DELETE FROM marcas WHERE nombre LIKE "'.$stupid.'"');
        mysql_query('DELETE FROM marcas_propiedades WHERE marca LIKE "'.$stupid.'"');
    }
}
header('Location: quit_marca_name.php?sms=Las marcas seleccionadas y sus archivos han sido eliminados');
?>


ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares