PHP - Consulta sobre $_GET[...]

 
Vista:
sin imagen de perfil

Consulta sobre $_GET[...]

Publicado por Juan (1 intervención) el 29/04/2017 19:32:05
Por favor si alguien pudiera ayudarme

Archivo origen : bancos.php
Archivo destino : galeria.php

Estoy utilizando una rutina para crear una galeria de imagenes (la obtuve desde internet) a travez de un link
El codigo del link es este
1
<p><a href="galeria.php?clave=imgbcos">ScreenShots</a></p>

El codigo de la rutina de imagenes es este

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<table>
 <tr>
<?php
header('Content-type: text/html; charset=utf-8');
 
$path = $_GET['clave'];
 
 
 
# Galería de imágenes
# (CC) Alfonso Saavedra "Son Link"
# Bajo GPLv3
 
//$path = 'imgbcos'; # Directorio donde están las imágenes
$limit = 4; # Cuantas imágenes se mostraran por pagina
$limit_file = 4; # Imágenes a mostrar por linea en la tabla
$n = 0;
$desde;
$hasta;
# Comprobamos si es un directorio y si lo es nos movemos a el
if (is_dir($path)){
 $dir = opendir($path);
 # Recorremos los ficheros que hay en el directorio y cogemos solamente aquellos cuya extensión
 # sea jpg, gif y png y la guardamos en una lista
 while (false !== ($file = readdir($dir))) {
  if (preg_match("#([a-zA-Z0-9_\-\s]+)\.(gif|GIF|jpg|JPG|png|PNG)#is",$file)){
   $list[] = $file;
  }
 }
 # Cerramos el directorio
 closedir($dir);
 # Ordenamos la lista
 sort ($list);
 # Contamos el total de elementos en la lista
 $total = count($list);
 $paginas = ceil($total/$limit);
 if (!isset($_GET['pg'])){
  $desde = 0;
  $hasta = $desde + $limit;
 }else if((int)$_GET['pg'] > ($paginas-1)){
  # Si pg es mayor que el total de paginas se muestra un error
  echo "<b>No existe esta pagina en la galería</b>
<a href='galeria.php'>Volver a la galería</a>";
  die();
 }else{
  $desde = (int)$_GET['pg'];
 }
 # Y generamos los enlaces con los thumbnails
 for ($i=($desde*$limit);($i!=$total) && ($i<($desde*$limit)+$limit);$i++){
  # Comprobamos si existe en la lista una llave con el valor actual de $i para evitar errores
  if(array_key_exists($i, $list)){
   echo "<td><a href='$path/$list[$i]'><img src='thumb.php?img=$path/$list[$i]' /></a>
</td>\n";
   $n++;
   if ($n == $limit_file){
    echo "</tr>\n<tr>\n";
    $n = 0;
   }
  }
 }
}else{
 echo "$path no es un directorio";
}
?>
</tr>
</table>
 
<p id="paginas">
<?php
# Generamos un listado de las paginas de la galería
for ($p = 0; $p<$paginas; $p++){
 	$pg = $p+1;
 	if ($p == $desde){
	 	echo "$pg ";
  		}
  		else{
	  	echo "<a href ='?pg=$p'>$pg</a> ";
  		}
}
?>
 
</p>
<?php echo "Hay un total de $total imagen(es) en $paginas paginas(s)";?>

La idea es hacer la rutina generica
Al entrar por primera vez muestra correctamente
Al dar un click en cualquiera de las siguientes pagina, marca error



imagen2
imagen1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Hector
Val: 26
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Consulta sobre $_GET[...]

Publicado por Hector (20 intervenciones) el 01/05/2017 23:22:18
Hola, según yo (no soy experto, pero pretendo ayudar xD), en los errores que te dice tu servidor local, menciona que no tiene un index definido tu variable "clave", desde ahí se desencadena todos los demás errores, además veo que en tu servidor tienes una carpeta en donde tienes tu proyecto llamada "prueba"... según yo deberias probar por cambiar
Esto ->
1
<p><a href="galeria.php?clave=imgbcos">ScreenShots</a></p>
por esto ->
1
<p><a href="../prueba/galeria.php?clave=imgbcos">ScreenShots</a></p>

siempre y cuando el archivo de donde envias la variable GET no esté en la misma carpeta que la de tu archivo "galeria.php".

Espero haberme explicado bién.

Saludos!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar