Foros del Web » Programando para Internet » PHP »

Error en listado de archivos

Estas en el tema de Error en listado de archivos en el foro de PHP en Foros del Web. Hola, estoy utilizando el script que aparece en la FAQ de PHP, concretamente en la nº 163 (http://www.forosdelweb.com/1583194-post163.html). El caso es que hay dos cosas ...
  #1 (permalink)  
Antiguo 28/11/2007, 18:33
 
Fecha de Ingreso: noviembre-2007
Mensajes: 36
Antigüedad: 16 años, 5 meses
Puntos: 0
Error en listado de archivos

Hola, estoy utilizando el script que aparece en la FAQ de PHP, concretamente en la nº 163 (http://www.forosdelweb.com/1583194-post163.html). El caso es que hay dos cosas que fallan en el código. Una es que las archivos con espacios, al pulsar en el enlace para descargarlo/mostrarlo, aparece mál, con '+' en lugar de espacios, y hace que al descargar el fichero no se pueda abrir. El otro problema (muy extraño) es que según cual sea la primera letra del archivo, el mismo se ve o no en el listado. Por ejemplo, tengo un archivo llamado "Octubre2007.pdf" y no se ve en el listado.Si le quito la O, y se llama 'ctubre2007.pdf' si que se ve :s

Alguna idea?

Gracias, salu2

EDITO: He hecho pruebas y no depende de la primera letra, sino de la cadena en si. Un fichero "listado.php" lo muestra, si le llamo "i.php" lo muestra, pero si le llamo "istado.php" no. Del mismo modo, no lo muestra si se llama "stado.php", "tado.php" o "ado.php", pero si si se llama "do.php". Alguien lo entiende?

Última edición por Mandete; 28/11/2007 a las 18:40
  #2 (permalink)  
Antiguo 28/11/2007, 18:44
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Error en listado de archivos

En la linea que genras el link podrias cambiar el uso de la funcion urlencode() por rawurlencode()... Asi los espacios no serán convertidos en +:

Código PHP:
echo '<img src="'.$iconos[$clave].'.png"> <a href="'.$dir.rawurlencode($valor).'">'.$valor.'</a>    '
Sobre el uso de mayusculas al inicio del nombre... Es raro, deberia funcionar igual... Buscare haber si encuentro algo

Un saludo,
  #3 (permalink)  
Antiguo 29/11/2007, 02:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 36
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Error en listado de archivos

Gracias por la respuesta.

Realmente no es porque empiece por mayúsculas, es en funcion de como se llame el archivo, pero no parece tener mucha lógica ¿?
  #4 (permalink)  
Antiguo 29/11/2007, 02:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 36
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Error en listado de archivos

Encontre la solución!!. El problema era la siguiente línea de código:

Código PHP:
if ($archivo == 'index.php') { break; } 
Al encontrar el archivo index.php, que es como le he llamado al archivo que ejecuta el listado, dejaba de leer los demás por el break.

Si cambiamos el break por un continue, saltara esa iteración al encontrar el index.php y seguirá funcionando correctamente :), del siguiente modo:
Código PHP:
if ($archivo == 'index.php') { continue; } 
Si lo ve un administrador/moderador, que modifique el código original en la FAQ ;)
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 07:35.