Comunidad de diseño web y desarrollo en internet online

Ayuda Galeria de Imagenes

Citar            
MensajeEscrito el 26 Ene 2009 05:32 pm
Que onda tengo el siguiente codigo:

<?php
if(!isset($imagen)){
for($i=1;$i<=12;$i++){
echo '<a href="?galg=img_'.$i.'"><img src="galg/img_'.$i.'.jpg" border="1" width="100" hspace="5" vspace="5" class="gimg" /></a>';
if($i == 3 or $i == 6 or $i == 9 or $i == 12){
echo '<br />';
}
}
} else {
echo '<img src="galg/'.$imagen.'.jpg" /><br /><a href="#" onClick="history.go(-1);">Atras</a>';
}
?>

Que es un proyecto para galeria de imagenes, hasta aqui, todo parece ir bien, cuando doy clic en alguna imagen lo que pasa es que solo me marca en el URL la sentencia mas no aplica lo que deveria de ser. Este codigo lo tome de http://slobos.com.ar/galeria_ejemplo/codigo_ejemplo.txt, yo lo adapte a lo que requiero pero no tengo idea de que es !isset <-- es lo unico que desconosco, espero el codigo le sirva a alguien y tambien espero me puedan echar una mano.
:shock:

Por wraven

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2009 05:54 pm
el isset se utiliza para saber si una variable existe, por el código que veo, no está, por lo tanto dudo que ejecute algo de lo que hay dentro del if.
Porque no bajas una galeria como coppermine, o algo en flash, mejor dicho... cual es el objetivo principal.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 26 Ene 2009 06:00 pm
pues el objetivo es crear una galeria, y bueno jajaja como a todos nos ha pasado hacer funcionar el script y aprender mas, en flash no me gusta hacer las cosas porque ocupa muchos recursos, por eso quiero aprender php, ahora sabiendo (gracias por la explicacion) para que es el isset existe en else, y es lo que deberia de mostrar la imagen que yo seleccione no? el problema es que no ejecuta asi. no conosco las galerias coppermine, investigare, pero si me pueden echar la mano ps gracias.

Por wraven

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2009 06:28 pm
Bueno, gracias por su no ayuda eh!!! jajajjaja, lo que paso fue que al modificar los nombres modifique la comprobacion de la imagen y pues claro yo fui el que causo el error, pero bueno el escript ya funciona correctamente:

<?php
if(!isset($imagen)){
for($i=1;$i<=12;$i++){
echo '<a href="?imagen=img_'.$i.'"><img src="galg/img_'.$i.'.jpg" border="1" width="100" hspace="5" vspace="5" /></a>';
if($i == 3 or $i == 6 or $i == 9 or $i == 12){
echo '<br />';
}
}
} else {
echo '<img src="galg/'.$imagen.'.jpg" /><br /><a href="#" onClick="history.go(-1);">Atras</a>';
}
?>

Para que esto funcione debemos poner nuestras imagenes en una carpeta llamada "galg" y las imagenes deben de llevar el nombre img_(numero) [ej: img_1, img_2, etc...] si quieren agregar mas tendran que modificar el for: asi
for($i=1;$i<=12;$i++){ //aqui deben especificar de que numero a que numero busca imagenes
y tambien tendriamos que crear mas filas en el if: asi
if($i == 3 or $i == 6 or $i == 9 or $i == 12){ //en este caso va de 3 en 3 si agregan mas imagenes en for pongas mas filas aqui

Con esto el script esta listo, es sencillo pero eficaz en cuanto lo acabe les dejare mi trabajo final, un tip jajajja que es en donde yo la regue nunca cambien a href="?imagen=img_'.$i.'"> | la parte que dice imagen, pueden cambiar nombre de las imagenes y carpeta contenedora de ellas pero debe ser forzosamente a href="?imagen=...lo que sigue.

S A L U D O S B A N D I T A :P

Por wraven

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2009 06:35 pm
Hola, del cambio del nombre de la variable ya me había dado cuenta, pero has confirmado entonces que funciona todo bien? probé el código que pusiste y no lo hace.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 26 Ene 2009 06:38 pm
si esta todo bien ya lo corri y sale perfecto, te recuerdo que tienes que tener la carpeta "galg" y las imagenes deben llamarse "img_1" "img_2" "img_3" etc... de menos pon 3 imagenes para que jale, a mi me corrio de maravilla, que error te sale o que?

Por wraven

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2009 06:40 pm
Simplemente no carga las imágenes aparte, debe ser algo del server, lo voy a probar en otro, me alegra que hayas solucionado el problema, suerte.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 26 Ene 2009 07:29 pm
Hola, ya entendí que es lo que había pasado.
Resulta que por seguridad es mejor deshabilitar el register_globals del php, no me había dado cuenta de que la variable es pasada via $_GET, por lo tanto como mi servidor tenía desactivado el register_globals, pues no podía usar la variable $imagen a no ser que la llamara del $_GET.
Es mucho más seguro, y por lo tanto recomendable, usar el siguiente código después de desactivar el register_globals del php.ini

Código :

<?php
if(!isset($_GET['imagen'])){
    for($i=1;$i<=12;$i++){
        echo '<a href="?imagen=img_'.$i.'">
        <img src="galg/img_'.$i.'.jpg" border="1"
        width="100" hspace="5" vspace="5" /></a>';
        if($i == 3 or $i == 6 or $i == 9 or $i == 12){
            echo '<br />';
        }
    }
}
else {
    echo '<img src="galg/'. $_GET['imagen'] . '.jpg" <br />';
}
?>

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 26 Ene 2009 08:05 pm
Hola gente, ante todo mucho gusto, es un sorprendente que el pequeño script que hice en el 2005 este todabia vigente. Por esos tiempos renegue mucho para lograr algo asi, ese fue mi principal intencion al momento de publicarlo en mi blog les agradezco se hayan interesado tanto.

De hecho como le respondi a alguno de ustedes, perdonen que no sepa individualizarlos, me pondría a mejorarlo un poquito dentro de mis vagos conocimientos de php y salio esto. Mas que nada lo oriente a que se defina gran parte de la configuración al principio del script para asi no tener que meter mano en el codigo propiamente, ya que he notado que se complica con tantas comillas (simples y dobles), el script esta casi totalmente parametrizado incluso el CSS que lleva este html cuenta con los valores definidos en 3 arrays.

Es cierto que tenia un problemita respecto a como pasaba las variables y no habia definido el método, cosa que ya para este esta solucionado. Así mismo el enlace que ofrecia Volver a la galeria tambien tenia algun problemita ya que por momentos el navegador iba y venia solo. XD

Código :

<?php
/// Definicion de variables de configuracion
$contador = 1;
// Directorio donde se encuentras las imagenes
$path = "./imagenes/";
// Prefijo que tiene las imagenes
$imgPrefijo = "imagenGaleria_";
// Cantidad de imagenes por fila
$imgXfila = "3";
// Cantidad total de imagenes
$totalImagenes = 9;
// Margenes superior, Lateral derecho, Inferior, Lateral Izquierdo en ese orden
$espaciadoImagenes = array(3,3,1,1); 
// Atributos de borde. Color, Tipo, Ancho
$bordeImagenes = array("#00f","solid",1);
// Atributos ancho y alto de la imagen miniatura 
$thumbAnchoAlto = array(100,70);
//
?>
<html>
<head>
   <title>Galeria de imagenes con php</title>
   <style>
      img {
         margin: <?php echo $espaciadoImagenes[0];?>px <?php echo $espaciadoImagenes[1];?>px <?php echo $espaciadoImagenes[2];?>px <?php echo $espaciadoImagenes[3];?>px;
         border:<?php echo $bordeImagenes[0];?> <?php echo $bordeImagenes[1];?> <?php echo $bordeImagenes[2];?>px;
      }
      .thumb {
         width: <?php echo $thumbAnchoAlto[0];?>px;
         height: <?php echo $thumbAnchoAlto[1];?>px;
      }
   </style>
</head>
<body>
<?php
    if(!isset($_GET[imagen])){

     while(file_exists($path.$imgPrefijo.$contador.'.jpg') == true and $totalImagenes >= $contador){
      echo '<a href="'.$PHP_SELF.'?imagen='.$imgPrefijo.$contador.'"><img src="'.$path.$imgPrefijo.$contador.'.jpg" class="thumb" /></a>';
      if($contador >= $imgXfila and is_int($contador/$imgXfila)){
         echo '<br />';
      }
      $contador++;
     }
   
    } else {
       echo '<img src="'.$path.$_GET[imagen].'.jpg" /><br /><a href="javascript:void(\'\');" onclick="history.go(-1);">Volver a la galeria</a>';
    }
?>
</body>
</html>



Espero les sirva.
sds
Santiago Lobos

Por slobos

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2009 08:52 pm
Que buen aporte, podrías ponerlo en el post de aportes de código de php.
Gracias.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 26 Ene 2009 09:52 pm
Listo muchachos, ha sido agregado a los aportes espero sirva y bienvenidas sean todos los comentarios y criticas al respecto.

sds
Santiago Lobos

Por slobos

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Ene 2009 03:21 am
Exelente hermano xyer, es un detalle que ni imagine que causara problema, el envio de informacion por URL, y con esta exelente idea de slobos, el codigo permanecera intacto podremos, modificar las carpetas y prefijos de imagenes muy facilmente, sin volver a caer en el error por el que yo cai. Una nueva y exelente nota para la comunidad en pro de la libre difucion del conocimiento.

S A L U D O S

Por wraven

13 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.