Foros del Web » Programando para Internet » PHP »

Tengo un problema :S

Estas en el tema de Tengo un problema :S en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema con este codigo, no me muestra las carpetas: $msto = NULL; $result = opendir("sec/imagenes/"); echo "<table width=426 border=1 bordercolor=#000000 ...
  #1 (permalink)  
Antiguo 03/03/2005, 10:20
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 1 mes
Puntos: 0
Tengo un problema :S

Hola a todos!

Tengo un problema con este codigo, no me muestra las carpetas:


$msto = NULL;

$result = opendir("sec/imagenes/");

echo "<table width=426 border=1 bordercolor=#000000 cellspacing=0>
<tr>
<td width=226 bgcolor=#FFCC66><b>Galeria</b></td>
<td width=100 bgcolor=#FFCC66><b>Nº Imagenes</b></td>
</tr></table>";
while ($fn = readdir($result)) {
if ($fn != "." AND $fn != ".." AND is_dir($fn) AND !strstr($fn,'thumbnail_')) {
if (is_dir('thumbnail_'.$fn)) {
$b = 0;
if (@$mainpage_showcount) {
$c = opendir("thumbnail_".$fn);
while (false !== ($a = readdir($c))) {
if (strtolower(substr($a, strlen($a) - 4, 4)) == ".jpg" ||
strtolower(substr($a, strlen($a) - 5, 5)) == ".jpeg") {
++$b;
}
}

$b = "{$b}";
closedir($c);
}

if ($b == "0") {
$b = "0";
}

if (!$ascending) {
$msto = $msto."<table width=426 border=0 cellpadding=0 cellspacing=0><tr><td width=226><b><a href=\"home.php?sec=imagenes&type=display&dir=$fn\ ">{$fn}</a></td><td width=100>{$b}</td></tr></table>\n<br>";
} else {
$msto = "<table width=426 border=0 cellpadding=0 cellspacing=0><tr><td width=226><b><a href=\"home.php?sec=imagenes&type=display&dir=$fn\ ">{$fn}</a></td><td width=100>{$b}</td></tr></table>\n<br>".$msto;
}
}
}
}

echo $msto;

Tendria que mostrarme las carpetas del directorio de imagenes, pero no me muestra nada, solamente me muestra la tabla de Imagenes y Nº de Imagenes, claro. Este archivo esta en un archivo que es un include a la pagina principal. ¿Me entienden? Eso si, si pongo en la variable $dir = "." me aparece las carpetas del directorio principal del ftp. no se pq és.

El archivo que incluyo prtenece al mismo directorio que quiero que me muestre las carpetas.
Principal -> home.php incluye sec/imagenes/index.php
sec/imagenes/ (este es el directorio donde quiero que me
aparezcan las carpetas)


Espero que puedan ayudarme!!
  #2 (permalink)  
Antiguo 03/03/2005, 11:43
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema esta en que si thumbnal_x es un subdirectorio de sec/imagenes, no se lo estas indicando. readdir() devuelve solo el el nombre de las entradas del directorio, no su ruta. Y tanto is_dir() como opendir() necesitan la ruta.

La solucion seria algo asi:
Código PHP:
$msto NULL;

$raiz="sec/imagenes/";  // en una variable es mas comodo

$result opendir($raiz);

echo 
"<table width=426 border=1 bordercolor=#000000 cellspacing=0>
<tr>
<td width=226 bgcolor=#FFCC66><b>Galeria</b></td>
<td width=100 bgcolor=#FFCC66><b>Nº Imagenes</b></td>
</tr></table>"
;
while (
$fn readdir($result)) {
if (
$fn != "." AND $fn != ".." AND is_dir($raiz.'/'.$fn) AND !strstr($fn,'thumbnail_')) { // añadimos $raiz en el is_dir
if (is_dir($raiz.'/''thumbnail_'.$fn)) {  // añadimos $raiz en el is_dir
$b 0;
if (@
$mainpage_showcount) {
$c opendir($raiz.'/'."thumbnail_".$fn);  // añadimos $raiz en el opendir
while (false !== ($a readdir($c))) {
if (
strtolower(substr($astrlen($a) - 44)) == ".jpg" ||
strtolower(substr($astrlen($a) - 55)) == ".jpeg") {
++
$b;
}
}

$b "{$b}";
closedir($c);
}

if (
$b == "0") {
$b "0";
}

if (!
$ascending) {
$msto $msto."<table width=426 border=0 cellpadding=0 cellspacing=0><tr><td width=226><b><a href=\"home.php?sec=imagenes&type=display&dir=$fn\">{$fn}</a></td><td width=100>{$b}</td></tr></table>\n<br>";
} else {
$msto "<table width=426 border=0 cellpadding=0 cellspacing=0><tr><td width=226><b><a href=\"home.php?sec=imagenes&type=display&dir=$fn\">{$fn}</a></td><td width=100>{$b}</td></tr></table>\n<br>".$msto;
}
}
}
}

echo 
$msto
No se si es necesario añadir la raiz en algun sitio mas (por ejemplo, en los links del final del codigo donde usas $fn).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 03/03/2005, 15:16
 
Fecha de Ingreso: marzo-2005
Mensajes: 11
Antigüedad: 19 años, 1 mes
Puntos: 0
Muchas grácias josemi

aunque se te descuidó un punto en:
if (is_dir($raiz.'/''thumbnail_'.$fn)) { // añadimos $raiz en el is_dir
Pero ya esta solucionado

Muchas grácias y que dios te lo page! jajajajaajaj :P
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 15:35.