Foros del Web » Programando para Internet » PHP »

Opendir y Readdir [Problema]

Estas en el tema de Opendir y Readdir [Problema] en el foro de PHP en Foros del Web. Hola amigos... Construi una galeria de imagenes, la cual me funciona perfecta en mi servidor local (uso PHP 5.2.1) pero en el servidor q me ...
  #1 (permalink)  
Antiguo 11/07/2007, 22:54
 
Fecha de Ingreso: enero-2007
Mensajes: 49
Antigüedad: 17 años, 2 meses
Puntos: 0
Exclamación Opendir y Readdir [Problema]

Hola amigos...

Construi una galeria de imagenes, la cual me funciona perfecta en mi servidor local (uso PHP 5.2.1) pero en el servidor q me ofrece mi proveedor de hosting me funciona mal el mismo script (el server usa PHP 5.2.0), aqui les dejo el codigo del script

Código PHP:
<?
$navegador 
getenv("HTTP_USER_AGENT");
if (
preg_match("/MSIE/i""$navegador"))
{
$resultado 1;
}
else if (
preg_match("/Mozilla/i""$navegador"))
{
$resultado 2;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=es dir=ltr xml:lang="es" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<style type="text/css">
<!--
.mini {
    border: medium solid #999999;
}
body {
    background-color: #FFFFFF;
    background-image: url();
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
body,td,th {
    color: #666666;
}
-->
</style>
<script type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
<script>
function cambiar(tamanodos,vinc){
document.getElementById('pepe').innerHTML="<iframe width=\"955\" height=\""+tamanodos+"\" src=\""+vinc+"\" frameborder=\"0\" scrolling=\"no\"></iframe>";
}
</script>
</head>

<body onLoad="MM_preloadImages('next_over.jpg','back_over.jpg')">
<div id="pepe" align="center">
<iframe width="955" height="350" src="medio.php" frameborder="0" scrolling="no" id="mainFrame" name="mainFrame" title="mainFrame"></iframe>
</div><table width="500"  height="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="tabla1" >
<?

$cant
=5;
$i=0;
$dir="img/";
$dir2="400_300/";
$gestor_directorio opendir($dir);
while(
$archivo_id readdir($gestor_directorio))
{
$matrix[$i]=$archivo_id;
$i++;
}

if(
$_GET['pagina'])
   
$pagina=$_GET['pagina'];
   else{
   
$pagina=1;
   }

$total= (count($matrix)-2);
$nroPaginas round(($total)/$cant);
$cant2=($pagina+$cant);

if(
$nroPaginas) {

if(
$pagina and $resultado == 2) {
            echo 
'<tr><td width="64" valign="top"><a href="abajo.php?pagina='.($pagina-$cant).'"><object
  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0"
  id="back"
  width="45" height="45"
>
  <param name="movie" value="back.swf">
  <param name="bgcolor" value="#FFFFFF">
  <param name="quality" value="best">
  <param name="menu" value="false">
  <param name="wmode" value="transparent">
  <param name="allowscriptaccess" value="samedomain">
  <embed
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/go/getflashplayer"
    name="flecha"
    width="45" height="45"
    src="back.swf"
    bgcolor="#FFFFFF"
    quality="best"
    menu="false"
    wmode="transparent"
    swliveconnect="true"
    allowscriptaccess="samedomain"
  >
    <noembed>
    </noembed>
  </embed>
</object>
</a></td>'
;
        }
elseif(
$pagina and $resultado == 1) {
$aux=$pagina-$cant;
echo <<< HTML
<td width="64" valign="top"><a href="abajo.php?pagina=$aux"><img src="back.jpg" border="0" name="back" width="44" height="45" id="back" onMouseOver="MM_swapImage('back','','back_over.jpg',1)" onMouseOut="MM_swapImgRestore()"></a></td>
HTML;
}
        else
        {
        echo 
"<td width='64' valign='top'></td>";
        }

for(
$i=$pagina;$i<$cant2;$i++)
{
echo 
"
        <td width='120' align=center valign='top'>"
;
           if(
$i <= $total)
          {
$aux2=$dir2.$matrix[$i+1];        
$auxm=$dir.$matrix[$i+1];          
$tam= @getimagesize($aux2);
$java='javascript:cambiar(350,"medio.php?imagen='.$aux2.'")';    
$java2='javascript:cambiar(440,"mediovert.php?imagen='.$aux2.'")';  
if(
$tam[0]==400)
{
        echo 
"
        <a href='"
.$java."'><img src='".$auxm."' class='mini' /></a>
        "
;
        }
        else
        {
        echo 
"<a href='".$java2."'><img src='".$auxm."' class='mini' /></a>";
        }
         }
        echo 
"</td>";
}
/*for ($i=0; $i<=$nroPaginas; $i++){
$pag = ($cant * $i)+1;
echo "<a href='abajo.php?pagina=".$pag."'> ".($i+1)."</a>"; 
        }*/
        
if($cant2 <= $total and $resultado == 2) {
            echo 
'<td width="45" valign="top" align="right"><a href="abajo.php?pagina='.($pagina+$cant).'"><object
  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0"
  id="next"
  width="45" height="45"
>
  <param name="movie" value="next.swf">
  <param name="bgcolor" value="#FFFFFF">
  <param name="quality" value="best">
  <param name="menu" value="false">
  <param name="wmode" value="transparent">
  <param name="allowscriptaccess" value="samedomain">
  <embed
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/go/getflashplayer"
    name="flecha"
    width="45" height="45"
    src="next.swf"
    bgcolor="#FFFFFF"
    quality="best"
    menu="false"
    wmode="transparent"
    swliveconnect="true"
    allowscriptaccess="samedomain"
  >
    <noembed>
    </noembed>
  </embed>
</object>
</a></td></tr>'
;
        }
        elseif(
$cant2 <= $total and $resultado == 1) {
$aux=$pagina+$cant;
echo <<< HTML
<td width="64" valign="top"><a href="abajo.php?pagina=$aux"><img src="next.jpg" width="44" height="45" border="0" name="next" id="Image1" onMouseOver="MM_swapImage('next','','next_over.jpg',1)" onMouseOut="MM_swapImgRestore()"></a></td></tr>
HTML;
}
}
?>
</table>

</body>
</html>
y aqui les dejo el enlace de mi sitio local para q lo vean funcionando bien...

http://fxdesign.sytes.net/aqua/galeria.php

y esta es la direccion de la pagina alojada en mi server remoto funcionando mal...

http://aquavision.com.ve/galeria.php

Aclaro para mi q es el mal funcionamiento... las fotos en el servidor local se me muestran en un orden consecutivo, es decir, 01.jpg, 02.jpg, 03.jpg y asi sucesivamente hasta cuantas fotos contenga la carpeta... pero si se dan cuenta en la web o servidor remoto las fotos las lee en desorden y eso hace q no funcione bien la galeria... si alguien puede darme una mano para ver en q estoy fallando se lo agradeceria mucho....


  #2 (permalink)  
Antiguo 12/07/2007, 08:35
 
Fecha de Ingreso: enero-2007
Mensajes: 49
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Opendir y Readdir [Problema]

Alguien me da una mano???

Gracias de antemano!!!
  #3 (permalink)  
Antiguo 12/07/2007, 09:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Opendir y Readdir [Problema]

Por defecto readdir te lee las carpeta en el orden que las tiene el Filesystem, asi que es de esperarse ese comportamiento, si quieres que te las lea en orden vas a tener que una vez que tengas todas tus imagenes en un arreglo usar sort o asort para ordenar tu arreglo de la forma que lo quieres hacer y asi hacer que se vea igual en los dos.

Saludos
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 11:07.