Foros del Web » Programando para Internet » PHP »

Problema con While y array

Estas en el tema de Problema con While y array en el foro de PHP en Foros del Web. Hola a todos, estube leyendo mucho por muchos lados ya si y todo no puedo resolver mi preoblema.. Es asi: Tengo un archivo "admin.php" que ...
  #1 (permalink)  
Antiguo 25/07/2009, 23:18
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Problema con While y array

Hola a todos, estube leyendo mucho por muchos lados ya si y todo no puedo resolver mi preoblema..
Es asi:
Tengo un archivo "admin.php" que tiene el siguiente codigo que hace un bucle buscando y listando archivos de una carpeta especifica con un checkbox generado tambien por el while en el que necesito que se haga click para borrar el / los archivos seleccionados de la carpeta dnd estan.
el tema es que si en el archivo "borrar.php" (el que supuestamente borra los archivos) le pongo "print_t($_POST)" me muestra el o los archivos que se seleccionaron pero no se como borrarlos.

admin.php
<?
$directorio = opendir("data/anexo/");
while ($archivo = readdir($directorio))
if ($archivo != "." && $archivo != "..") {
echo "<input type='checkbox'name='ArrayCheck[$archivo]' value'$archivo?>".$archivo."<br>";
}
closedir();
?> (esto esta en un form con action="borrar.php")



borrar.php


print_r($_POST);

En esta pagina borrar.php me muestra todos los archivos con sus nombres pero en el siguiente formato:
Array ( [ArrayCheck] => Array ( [01072009.jpg] => ) )
(en ese caso seleccione el archivo "01072009.jpg" )
como hago que me borre ese archivo de una carpeta determinada?

Agradezco desde ya y perdon si no me se explicar.!

Última edición por ezekkiel; 26/07/2009 a las 01:08
  #2 (permalink)  
Antiguo 26/07/2009, 00:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

Cita:
Iniciado por ezekkiel Ver Mensaje
print_t($_POST);
¿no sera print_r()? Bueno a la situacion. Solo tienes que indicar donde esta ese archivo y declara unlink()
Código PHP:
Ver original
  1. $variable = "directorio/".$nombre_del_array[ArrayCheck];
  2. unlink($variable);
  #3 (permalink)  
Antiguo 26/07/2009, 00:40
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Mensaje Respuesta: Problema con While y array

si, print_r();
Muchas Gracias por responder!
Claro, pero como seria el nombre de la variable en mi caso?
  #4 (permalink)  
Antiguo 26/07/2009, 00:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

Bueno si posteaste exacto como lo tienes asi como te lo escribi. ArrayCheck
  #5 (permalink)  
Antiguo 26/07/2009, 00:43
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

Perdon que sea molesto, seria entonces..
$variable = "directorio/".$archivo[ArrayCheck];????
  #6 (permalink)  
Antiguo 26/07/2009, 00:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

Bueno directorio lo cambias al nombre del directorio que tu tienes guardado el archivo. Pero si el codigo se encuentra al lado del archivo puedes escribir directamente

unlink($archivo[ArrayCheck]);
  #7 (permalink)  
Antiguo 26/07/2009, 00:50
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

Acabo de poner esto:

$variable = "data/anexo/".$archivo[ArrayCheck];
unlink($variable);

y nada che..
  #8 (permalink)  
Antiguo 26/07/2009, 00:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

haz esto escribe

echo $archivo[ArrayCheck];

y dime que sale
  #9 (permalink)  
Antiguo 26/07/2009, 00:54
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

Puse tal cual me dijiste y no me dice nada, esta en blanco..
  #10 (permalink)  
Antiguo 26/07/2009, 01:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

¿No te sale ni siquiera array? Trata entonces de hacer esto
Código PHP:
Ver original
  1. $borrar = array_keys($archivo[ArrayCheck]);
  2. echo $borrar[0];
  #11 (permalink)  
Antiguo 26/07/2009, 01:07
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

Si pongo esto: echo $_POST; me sale "Array"
Si pongo:
$borrar = array_keys($archivo[ArrayCheck]);
echo $borrar[0];

Me muestra la pagina en blanco..
  #12 (permalink)  
Antiguo 26/07/2009, 01:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

Entonces usa mejor

Código PHP:
Ver original
  1. $borrar = array_keys($_POST[ArrayCheck]);
  2. echo $borrar[0];

Si copiaste exactamente el array del $_POST, entonces te debe funcionar de esta forma.
  #13 (permalink)  
Antiguo 26/07/2009, 01:12
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

SIIII!, ahi si me muestra el nombre del archivo!. como lo borro ahora? y que pasa si en vez de uno tengo varios? porque depende cuantos tilde es la lista que me va a aparecer.. el usuario tiene que poder borrar el que quiera y estoy y el while me va a enlistar todos, sea 1 o 50 se entiende?
  #14 (permalink)  
Antiguo 26/07/2009, 01:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

Usa un foreach para buscar esa variable que creamos

Código PHP:
Ver original
  1. $borrar = array_keys($_POST[ArrayCheck]);
  2. foreach($borrar as $v){
  3.   echo $v."<br />";
  4.   unlink($v);
  5. }

Si esta en un directorio tienes que en el unlink escribir el nombre del directorio

Código PHP:
Ver original
  1. $borrar = array_keys($_POST[ArrayCheck]);
  2. foreach($borrar as $v){
  3.   echo $v."<br />";
  4.   unlink("directorio/".$v);
  5. }
  #15 (permalink)  
Antiguo 26/07/2009, 01:22
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

Puse como me decis, y por ejemplo si marco 3 archivos con el checkbox me lista solo 2.. y no se borran.. que puede ser?
  #16 (permalink)  
Antiguo 26/07/2009, 01:25
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

No, ahi esta, perdon!, habia escrito mal el codigo. me lista todos los seleccionados pero no me los borra...
  #17 (permalink)  
Antiguo 26/07/2009, 01:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Problema con While y array

Lo mas probable es que no esta viendo el archivo desde donde se ejecuta el codigo. Tienes que ver la estructura de los directorio y el archivo que deseas borrar acordandote que debes hacerlo como si tu estuvieras mirando desde el archivo que ejecuta el codigo.

Código:
index.php

directorio1/
  otro.php
  subdirectorio/
    archivo_que_deseo_borrar.txt

directorio2/
  subdirectorio/
    otro_archivo.txt
Si deseo borrar desde el index.php debo llamarlo
unlink("directorio1/subdirectorio/archivo_que_deseo_borrar.txt");

si deseo borrar desde el otro.php debo llamarlo
unlink("subdirectorio/archivo_que_deseo_borrar.txt");
  #18 (permalink)  
Antiguo 26/07/2009, 01:34
 
Fecha de Ingreso: julio-2009
Mensajes: 29
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema con While y array

Claro la estructura es asi:

admin/

borrar.php

data/periodo_inter

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
Y en el archivo borrar tengo esto:

$borrar = array_keys($_POST[ArrayCheck]);
foreach($borrar as $v){
echo $v."<br />";
unlink("data/periodo_inter".$v);
}

UUUUUU, ahi esta!!, Perdon!, me olvide de la barra al final!! despues de periodo_inter/

MUCHISIMAS GRACIAS AMIGO!, ME SALVASTE, PASE HORAS INTENTANDO HACER ANDAR ESTO!!
MUCHAS GRACIAS DE VERDAD!, TE DEBO UNA!
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 04:26.