Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/05/2012, 06:47
Avatar de Joselinhodacoope
Joselinhodacoope
 
Fecha de Ingreso: mayo-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Eliminar fotos PHP

Buenas!

Llevo un par de días atascado en un pequeño script PHP. Es una galería de fotos mediante XML. La cuestión es que desde un formulario pregunto qué álbum borrar y después recojo la variable desde este script:

Código PHP:
<?php

if(($_POST['name_album'] != "") && ($_POST['name_album'])){ 

    
$nombre_album $_POST['name_album'];
    if (
file_exists('gallery.xml')) {
        
$xml simplexml_load_file('gallery.xml');//guardamos el xml como un objeto en $xml
            
        
$j=0;
        
$i=0;
        
        foreach (
$xml->{'category'} as $categoria)//contamos la cantidad de categorias que hay
        
{
            
            if(
$categoria['name'] == $nombre_album){
                
                foreach (
$xml->category[$j]->{'image'} as $image)//contamos la cantidad de categorias que hay
                
{                
                    if (
$image[$i]->{'img'}) {
                        
$path_images 'images/'.$image[$i]->img;
                        if(
file_exists($path_images)){ 
                            
unlink($path_images);
                        }
                        unset(
$image[$i]->img);
                    }
                    
                    if (
$image->{'thumb'}) {
                        
$path_thumbs 'images/thumbs/'.$image[$i]->thumb;
                        if(
file_exists($path_thumbs)){ 
                            
unlink($path_thumbs);
                        }
                        unset(
$image[$i]->thumb);
                    }
                    
                    if (
$image->{'desc'}) {
                        unset(
$image[$i]->desc);
                    }
                    if (
$image->{'title'}) {
                        unset(
$image[$i]->title);
                    }
                    if (
$image->{'date'}) {
                        unset(
$image[$i]->{'date'});
                    }
                    
                    if (
$xml->category[$j]->image) {
                        unset(
$xml->category[$j]->image[$i]);
                    }
                    
$i++;
                }
                
                if (
$xml->category[$j]) {
                    unset(
$xml->category[$j]);
                }
            }
            
$j++;
            
        }
        
$xml->asXML('gallery.xml'); //guardamos los cambios en el xml
        
header('Location: gallery.php');
        
    } else {
        exit(
'Error abriendo gallery.xml.');
    }

} else {
    echo 
"Error al eliminar el álnum.";
    
header('Location: gallery.php');


?>
El tema es que recoge todos los datos del XML correctamente, pero cuando se trata de ejecutar el unlink para ir borrando una por una las imágenes de las carpetas sólo me elimina el primer valor y no sé porqué, ya que los campos del XML los borra a la perfección...

He probado a redireccionar la página sacando los datos por pantalla de "$path_thumbs" y "$path_images" y me saca sólo el valor de la primera imagen, es decir, es como si cogiera el valor del primer nodo y no volviera a coger ninguno .

Aquí va un fragmento de XML:

<?xml version="1.0" encoding="UTF-8"?>
<gallery title="ALBUMES SJ14" thumbDir="./images/thumbs/" imageDir="./images/" random="true">
<category name="Plaza España - 11'">
<image>
<date>Abril - 2011</date>
<title>Fotos SJ14</title>
<desc>esp1.jpg</desc>
<thumb>esp1.jpg</thumb>
<img>esp1.jpg</img>
</image>
<image>
<date>Abril - 2011</date>
<title>Fotos SJ14</title>
<desc>esp2.jpg</desc>
<thumb>esp2.jpg</thumb>
<img>esp2.jpg</img>
</image>
<image>
<date>Abril - 2011</date>
<title>Fotos SJ14</title>
<desc>esp3.jpg</desc>
<thumb>esp3.jpg</thumb>
<img>esp3.jpg</img>
</image>
</category>
[...]
</gallery>

Les agradecería una ayuda por favor!!!