Foros del Web » Programando para Internet » PHP »

Problema de recursividad de directorio

Estas en el tema de Problema de recursividad de directorio en el foro de PHP en Foros del Web. Hola buenas estoy haciendo una sección de usuarios, en la cual al usuario logearse el sistema carga automáticamente sus datos que están ubicados en una ...
  #1 (permalink)  
Antiguo 07/05/2012, 09:03
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema de recursividad de directorio

Hola buenas estoy haciendo una sección de usuarios, en la cual al usuario logearse el sistema carga automáticamente sus datos que están ubicados en una carpeta en el servidor, he creado por medio de un script que encontre aqui y gracias al que lo hizo, que me muestre los archivos y subdirectorios del usuario conectado, pero solo me lee el primer archivo de cada carpeta no sigue leyendo los demás, ayuden me por favor que me esta volviendo loco esto. Gracias a todos de ante mano.

Estilo acordeon

al pinchar sobre el nombre de la carpeta, se debe de mostrar el contenido
Utilizo javascript, css y php

Código PHP:

    $link
=mysql_connect("localhost",".......",".........");
mysql_select_db("........._usuarios",$link) or die ("Error");

include(
"login.php");

if(
$loginCorrecto)
{
echo 
"<center class='archivo'>Bienvenido a la Zona de Usuarios ".$nickUsuarioL;
}
else
{
echo 
"El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a esta area";
}
echo 
"<br>";
echo 
"<h2> <span class='archivo'>Archivos</span></h2>\n";
echo 
"<a href='logout.php' class='logout'>Desconectarse<!--<input type='image' src='imagenes/boton_lim.jpg'  class='logout' value='submit' />--></a>\n";
echo 
"<br>";
echo 
"<hr>";


echo 
"<ul id='toggle-view'><div id='directorio'>\n";

$dusuario=$_COOKIE["usNick"];
$path "clientes/$dusuario/";
$directorio opendir($path);
$dirnamedirname($path);
$archivo=readdir($directorio);
$archivos=array();
$ruta=readdir($archivo.'/');

function 
listarArchivos($path){
    
$directorio=opendir($path);
    
$archivos=array();
    while(
$archivo=readdir($directorio)){
        if(
$archivo != "." && $archivo != ".."){
            if(
is_dir($path."/".$archivo)){
                
    
                
$nombreArch ucwords($archivo);
                 
  echo 
" <li><h3>$nombreArch</h3>"

                echo 
"<span>+</span>";
                
listarArchivos($path.$archivo.'/');                
            }
            else{
                
$archivos[] = $archivo;
                    
            }
        }
    }
    
    for(
$x=0$x<=count($archivos); $x++){
        
    echo    
    
        
"<div class='panel'> 
        <a href='$path$archivos[$x]' >$archivos[$x]</a>" 
;  
        
      }
    
}
    
listarArchivos($path);
        
        
echo 
"</li></div></ul></div>";
echo 
"\n";
echo 
"<br> </a>";
closedir($directorio);
echo 
"<marquee>Muchas Gracias por Visitarnos</marquee>"
  #2 (permalink)  
Antiguo 07/05/2012, 12:40
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
De acuerdo Respuesta: Problema de recursividad de directorio

Tenes problemas en como estas recorriendo el directorio.

Justamente leyendo la documentación de readdir del manual de php dice lo siguiente

Código PHP:
 /* This is the correct way to loop over the directory. */
    
while (false !== ($entry readdir($handle))) {
        echo 
"$entry\n";
    }

    
/* This is the WRONG way to loop over the directory. */
    
while ($entry readdir($handle)) {
        echo 
"$entry\n";
    } 
El problema es ese.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #3 (permalink)  
Antiguo 08/05/2012, 09:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de recursividad de directorio

Muchas gracias por la respuesta amigo pero me sigue sin mostrar los demas archivos, solo me muestra el primer archivo que hay en cada carpeta. Alguien me ayude porrrrrrffaaavvvorrrr.......
  #4 (permalink)  
Antiguo 08/05/2012, 14:38
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Problema de recursividad de directorio

Probalo asi:

Código PHP:
Ver original
  1. function listarArchivos($path){
  2.     $archivos=array();
  3.     $directorio = opendir($path);
  4.     while(false !== ($archivo=readdir($directorio))) {
  5.         if($archivo != "." && $archivo != ".."){
  6.             if(is_dir($path.$archivo)){
  7.                 //echo $path . $archivo;
  8.                 $nombreArch = ucwords($archivo);
  9.                 echo " <li><h3>" . $nombreArch . "</h3>";
  10.                 echo "<span>+</span>";
  11.                 listarArchivos($path.$archivo.'/');
  12.             } else{
  13.                 $archivos[] = $archivo;
  14.             }
  15.         }
  16.     }
  17.  
  18.     foreach ($archivos as $archivo) {
  19.         echo "<div class='panel'>";
  20.         echo "<a href='" . $path . $archivo . "'>" . $archivo . "</a>";
  21.         echo "</div>";
  22.     }
  23. }
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 09/05/2012, 02:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de recursividad de directorio

Muchisimas gracias ha funcionado, con tu script, ahora si me recorre todos los directorios y sub directorios, eres un crack hermano. Gracias nuevamente.
  #6 (permalink)  
Antiguo 09/05/2012, 05:10
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Problema de recursividad de directorio

Cita:
Iniciado por CyberSoft Ver Mensaje
Muchisimas gracias ha funcionado, con tu script, ahora si me recorre todos los directorios y sub directorios, eres un crack hermano. Gracias nuevamente.
De nada campeon, suerte con eso
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 09/05/2012, 09:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema de recursividad de directorio

jejejejjeej, gracias nuevamente y hasta luego... Saludos

bueno aprovecho para hacerte otra consulta, cuando el usuario clickea sobre un link .pdf o jpg que son los que se abren directamente en el navegador la barra de direcciones le da la ruta completa y el podría pasarse por las carpetas de otros usuarios si desea. Hay alguna forma de hacer que la ruta no se vea, no se si me he explicado bien jjejeje. Gracias de nuevo.

Etiquetas: directorio, mysql, recursividad, sql, usuarios
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 02:48.