Foros del Web » Programando para Internet » PHP »

Problema listando directorios y subdirectorios con php

Estas en el tema de Problema listando directorios y subdirectorios con php en el foro de PHP en Foros del Web. Hola gente tengo un problema con este codigo , acabo de mudar mi web a otro servidor y lo qu ehago en una seccion es ...
  #1 (permalink)  
Antiguo 18/06/2010, 14:45
Avatar de EmaD  
Fecha de Ingreso: marzo-2008
Mensajes: 93
Antigüedad: 16 años, 1 mes
Puntos: 2
Problema listando directorios y subdirectorios con php

Hola gente tengo un problema con este codigo , acabo de mudar mi web a otro servidor y lo qu ehago en una seccion es listar todo el contenido de una carpeta que tiene manuales. El problema que tengo es que la primer carpeta que seria

$path_absoluto = "./manuales/";

La lista bien , ahora cuando quier ingresar a una subcarpeta, por ejemplo , Cursos de Hardware lo unico que obtengo es el mismo listado con otra url, es decis me sigue mostrando lo mismo pero cn otra url , y no ingresa a la subcarpeta.

http://www.miweb.com/webmanuales/ind...cciones=Cursos de Hardware/



Código PHP:
<?
// Configuracion
$path_absoluto "./manuales/";

if(!
$secciones) {
// Recorremos el directorio
$path $path_absoluto;
$dir opendir($path);
while (
$elemento readdir($dir))
{
 
// Extensiones en los archivos
 
$extensiones explode(".",$elemento) ;
 
$nombre $extensiones[0] ;
 
$nombre2  $extensiones[1] ;
 if (
$nombre2 == "") { $nombre2 "carpeta.gif";}
 if(!
file_exists("$nombre2.gif") && $nombre2 != "carpeta.gif") { $nombre2 "defecto.gif";}
 if(
file_exists("$nombre2.gif") && $nombre2 != "carpeta.gif") { $nombre2 "$nombre2.gif";}
 
// Fin extensiones en los archivos
 
if($nombre2 != "carpeta.gif" && $elemento != "." && $elemento != ".."){
echo 
"<br><a href='$path_absoluto$elemento'><img src='$nombre2' border='0'> $elemento<br></a>" ;
}
if(
$nombre2 == "carpeta.gif" && $elemento != "." && $elemento != ".."){
echo 
"<br><a href='index.php?secciones=".$elemento."/'><img src='$nombre2' border='0'> <b>$elemento</b><br></a>" ;
}
}
closedir($dir);
}
// Anti-hackeos
if(ereg("\.\./",$secciones) || ereg("/\.\.",$secciones) || ereg("\\\\.\.",$secciones) || ereg("\.\.\\\\",$secciones)){
    die(
"Hacking Attempt");
}
if(
$secciones == "") { $path3 $path_absoluto; }
if(
$secciones != "") { $path3 $path_absoluto.$_GET["secciones"]."/"; }
if(
$secciones != "") { $sec ".. <a  href='javascript:history.go(-1);'> Atras</a><br><br>";}
if(
$secciones != "") { $seccion "Directorio : <b>$secciones</b><hr>$sec";}
echo 
"<div align=left>$seccion</div>";

if (
$dir3 = @opendir($path3)) {
  while ((
$file3 readdir($dir3)) !== false && $secciones) {
  
    
// Extensiones en los archivos
    
$extensiones explode(".",$file3) ;
    
$nombre $extensiones[0] ;
    
$nombre2  $extensiones[1] ;
    if (
$nombre2 == "") { $nombre2 "subcarpeta.gif";}
    if(!
file_exists("$nombre2.gif") && $nombre2 != "subcarpeta.gif") { $nombre2 "defecto.gif";}
    if(
file_exists("$nombre2.gif") && $nombre2 != "carpeta.gif") { $nombre2 "$nombre2.gif";}
    
// Fin Extensiones en los archivos
if ($nombre2 != "subcarpeta.gif" && $file3 != "." && $file3 != "..") {
echo 
"<br><a href='$path_absoluto$secciones$file3'><img src='$nombre2' border='0'> $file3</a><br>";
}
if (
$nombre2 == "subcarpeta.gif" && $file3 != "." && $file3 != "..") {
echo 
"<br><a href='index.php?secciones=$secciones$file3/'><img src='$nombre2' border='0'> $file3</a><br>";
}
}
closedir($dir3);

?>

Alguna idea de que puede ser? alguna configuracion del server? algun cambio que le tenga que hacer al script? probe varias cosas , cambio de rutas y cosas por el estilo pero sigue igual.

SAlu2
__________________
http://www.RadioMetal.com.ar
Portal/Radio Argentino De Rock & Heavy Metal
Villa Constitucion - Santa Fe - Argentina
  #2 (permalink)  
Antiguo 18/06/2010, 17:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema listando directorios y subdirectorios con php

me parece que existen reglas en un .htaccess que reescriben las URL (url amigables) en el document_root.
  #3 (permalink)  
Antiguo 18/06/2010, 18:04
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Problema listando directorios y subdirectorios con php

Y $secciones dónde lo declaras? Supongo que es un $_GET, pero no lo declaras en ningún lugar. Por lo tanto, nunca acatará las condiciones en caso de que $secciones exista.
__________________
eZakto™
  #4 (permalink)  
Antiguo 18/06/2010, 20:19
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema listando directorios y subdirectorios con php

Este codigo empesara recorriendo desde donde esta ("./") y recorrera un subdirectorio:

Código PHP:

$dir 
scandir("./");

echo 
"<ul>";
foreach(
$dir as $v1){
if(
$v1 != "." && $v1 != ".."){

if(
is_file("./".$v1)){
echo 
"<li>".$v1;
}

////  si es un directorio se lo recorre ///////
if(is_dir("./".$v1)){
echo 
"<li>".$v1;
$dir2 scandir("./".$v1);
echo 
"<ul>";
foreach(
$dir2 as $v2){
if(
$v2 != "." && $v2 != ".."){

if(
is_file("./".$v1."/".$v2)){
echo 
"<li>".$v2;
}


////  si es un nuevo directorio se lo recorre ///////
if(is_dir("./".$v1."/".$v2)){
echo 
"<li>".$v2;
}
////  si es un nuevo directorio se lo recorre ///////

}
}
echo 
"</ul>";
}
////  si es un directorio se lo recorre ///////



}
}
echo 
"</ul>"

Esto se puede hacer con una funcion recursiva,
la cual puede profundizar aun mas,
si necesidad de tanto codigo
  #5 (permalink)  
Antiguo 26/04/2012, 17:04
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema listando directorios y subdirectorios con php

Muy buenas compañeros, me gustaría que por favor alguien me hachara una mano con esto que me esta volviendo loco, sucede de que tengo una pagina que lista los directorios, pero no los subdirectorios, cuando abro un subdirectorio me va a la interfaz de explorador y así, si no es alguien autorizado puede navegar hacia las demás carpetas, como podría solucionar este problema ya que he probado de todo y no puedo el código es este. Y gracias a todos de ante mano.

<?php
$link=mysql_connect("localhost","........","...... ....");
mysql_select_db("jmroteta_usuarios",$link) or die ("Error");

include("public_html/login.php");

if($loginCorrecto)
{
echo "<center>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 color='red'>Archivos</h2>\n";
echo "<br>";
echo "<hr>";


echo "<div id='directorio'>\n";

$dusuario=$HTTP_COOKIE_VARS["usNick"];
$path = "clientes/$dusuario/";
$directorio = opendir($path);
$dirname= dirname($path);

while (false !==($archivo = readdir($directorio)))
{
if($archivo=='.' or $archivo=='..'){
echo "";

}else{
$nombreArch = ucwords($archivo);
echo "\n<a href='$path$archivo'>\n";
echo "<div class='dimg'><img src='./imagenes/Todo.png' alt='Ver'</div>";
echo "<div class='dtxt'><b>&nbsp;$nombreArch</b></a>\n</div>";
echo "\n\n";
}
}
closedir($directorio);
echo "</div>\n";


?>

Tengo este script que deberia funcionar pero tampoco funciona y pienso que es porque estoy llamando al nombre de usuario por una cookie y al parecer cuando se lo paso por parametro no me la reconoce o la lee cuando llega el momento de reconocer la ruta.

<?php
$link=mysql_connect("localhost","jmroteta","mirein a07");
mysql_select_db("jmroteta_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 "<div id='directorio'>\n";

$dusuario=$HTTP_COOKIE_VARS["usNick"];
$path = "clientes/$dusuario/";
$directorio = opendir($path);
$dirname= dirname($path);
function listar_directorios_ruta($path){
if (is_dir($path)) {
if ($$directorio = opendir($path)) {
while (($archivo = readdir($directorio)) != false)
{
if($archivo!='.' && $archivo!='..'){
echo "";
if (is_dir($path . $archivo) && $archivo!="." && $archivo!=".."){
//solo si el archivo es un directorio, distinto que "." y ".."
$nombreArch = ucwords($archivo);
echo "\n<a href='$path$archivo'>\n";
echo "<div class='dimg'><img src='./imagenes/Todo.png' alt='Ver'</div>";
echo "<div class='dtxt'><b>&nbsp;$nombreArch</b></a>\n</div>";
listar_directorios_ruta($path . $archivo . "/");
echo "\n\n";
echo "</div>\n";
}
}
}
}

// }else{
// $nombreArch = ucwords($archivo);
// echo "\n<a href='$path$archivo'>\n";
// echo "<div class='dimg'><img src='./imagenes/Todo.png' alt='Ver'</div>";
// echo "<div class='dtxt'><b>&nbsp;$nombreArch</b></a>\n</div>";
// echo "\n\n";
// echo "</div>\n";
}
}
closedir($directorio);

Última edición por CyberSoft; 27/04/2012 a las 06:30

Etiquetas: directorios, subdirectorios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:25.