Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2007, 22:54
fxdesign
 
Fecha de Ingreso: enero-2007
Mensajes: 49
Antigüedad: 17 años, 3 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....