Dos ejemplos de lo que puede servir un paso de variables por la URL. Uno implementado en ASP y el otro en PHP.
Este taller resultará un poco básico para algunas personas, ya que no vamos a explicar nada exclusivamente nuevo y que no hayamos comentado ya en otros manuales. Sin embargo, seguro que muchas otras personas agradecerán esta explicación para contestarse algunas dudas a la hora de hacer páginas avanzadas con ASP o PHP.
Resulta que me han llegado algunas duda a mi correo de personas que no comprendían muy bien la manera de realizar páginas que, dependiendo de la variable que reciban por la URL presenten una información u otra. A continuación podemos ver estas dudas para aclararnos.
Duda 1: (Sobre el lenguaje ASP, aunque da igual, ya que la metodología de uno y otro lenguaje son las mismas. Sólo difiere la sintaxis.)
Hola me llamo Orel y necesito si me pueden dar una ayudita con mi pagina web.
Bueno primero que nada estoy creando mi paina en asp y no entiendo cómo poner un enlace por ejemplo:
Cuando colocan varios enlaces y todos llevan a la misma pagina ver.asp lo que cambia es ?Id=emuladores o ?Id=Roms etc.
No se cómo hacer eso.
Por que si yo pongo la pagina ver.asp?Id=emuladores Me aparece la pagina de emuladores mientras que si pongo ver.asp solo me muestra la pagina de inicio ¿Como hacen eso de que con la misma pagina puedan crear varias?
Duda 2: (Esta duda es de PHP, pero da igual el lenguaje para el que estemos trabajando, en el fondo es la misma duda)
Como se que vosotros sabéis mucho de php, os quería comentar una duda que tengo. ¿Que necesito para crear una web de carátulas en la cual las carátulas salgan en una página que sea una especie de "plantilla", en la cual solo cambie la carátula? Éste tipo de sistemas los he visto en webs de carátulas y son de la forma:
http://nombredelaweb/caratula.php?id=587
http://nombredelaweb/caratula.php?id=351
También cambia el texto y otras cosas.
Respuestas
Pues bien, planteadas las dudas, primero decir que en DesarrolloWeb tenemos todos los contenidos necesarios para aprender técnicamente a utilizar estas variables que se pasan por la URL. Es importante que conozcamos la sintaxis para poder hacer los ejercicios donde dudamos.
Aquí tenemos los enlaces:
- Para aprender a pasar y recoger variables por la URL en ASP
- Lo mismo pero en PHP.
Una vez aprendida la parte técnica podemos pensar en cómo hacer estos sistemas en ambos lenguajes. Lo primero que debemos saber es que esas variables que recibimos por parámetro las podemos utilizar para cualquier cosa. En la duda 1 las vamos a utilizar para mostrar una información de una sección y en la duda 2 las vamos a utilizar para extraer la información de la carátula que se desea ver. Creo que lo mejor sería ver cada uno de los dos casos, en el lenguaje que se preguntan.
Respuesta de la Duda 1, para ASP
Necesitamos extraer el valor de la variable que nos pasan por parámetro y hacer unas cosas u otras en función de dicho valor. Veamos a grandes rasgos el código que utilizaría.
<%
'extraigo el valor de la sección que se desea ver
seccion_ver = request.QueryString("id")
'Dependiendo de la sección muestro unos u otros contenidos
if seccion_ver = "emuladores" then
'entonces coloco todo lo que queramos mostrar en la sección emuladores
%>
<h1>Sección de emuladores</h1>
<p>Bienvenidos a mi sección de emuladores, donde puedes conocer todos los principales emuladores del mercado y descargarte los programas.
<p>... (En fin, todo lo que queramos escribir en esta sección)
<%
elseif seccion_ver = "Roms" then
'entonces coloco todo lo que queramos en la sección de Roms
%>
<h1>Sección de Roms</h1>
<p>Bienvenidos a mi sección de Roms, tenemos más de 500 roms de juegos de todos los tiempos. Cada uno con enlace para descarga e instrucciones de uso.
<p>... (En fin, todo lo que queramos escribir en esta sección)
<%
else
'paso por aquí si no era la sección emuladores ni Roms
'entonces hago lo que desee, que en la duda era simplemente mostrar la página principal.
Response.redirect("index.asp")
'esta instrucción te redirecciona a la página principal de tu sitio web, si es que se llamaba index.asp y está en el mismo directorio que la página actual.
end if
%>
Como se puede comprobar, dependiendo de lo que se reciba por parámetro se mostrará una sección u otra. Si no se recibe nada por parámetro o el valor no corresponde a ninguna de las secciones que hemos definido, se redirecciona a la página índex.asp, que suponemos que es la página principal del sitio web.
Respuesta de la Duda 2, para PHP
Este ejemplo es, si cabe, más simple que el primero. La forma de trabajar típica que se realiza con un ejemplo como este es que todas las carátulas estén en una tabla de una base de datos. Entonces, cada vez que se accede a la página caratula.php se recibe el identificador de la carátula que se quiere visualizar en una variable en la URL, de esta manera: caratula.php?id=12. Así estamos accediendo la página que muestra carátulas y le decimos que la carátula que deseamos ver es la que tiene el identificador (id) igual a 12.
Supongamos que metemos la información de la carátula en una tabla que tiene esta forma:
El código en PHP para hacer algo así sería el siguiente. En este código vamos a obviar algunas instrucciones de conexión con la base de datos que realmente no vienen al caso. Recordamos que en el Manual de PHP I tenemos todas las explicaciones para aprender a manejar bases de datos.
<?
//Extraigo el identificador de la carátula a mostrar
$id_caratula = $HTTP_GET_VARS["id"];
//creo la sentencia SQL que extrae datos de esa carátula
$ssql = "select * from caratula where id=" . $id_caratula;
//obtengo los datos de la carátula
$rs = mysql_query($ssql);
$fila = mysql_fetch_object($rs);
//muestro los datos de esa carátula
?>
Disco: <?echo $fila->titulo;?>
<br>
Imagen: <img src="<?echo $fila->imagen;?>">
<br>
Descripción: <?echo $fila->info;?>
<?
//cierro la base de datos
mysql_free_result($rs);
// todo lo que haga falta para terminar la página...
?>
Conclusión
Con esto acabamos. Esperamos que os sirva de ayuda este artículo o, por lo menos, haya resuelto vuestras dudas sobre la utilización de variables en la URL tanto en ASP como en PHP. Sólo pedir disculpas porque los ejemplos que he utilizado no son páginas completas al 100%, ya que faltan las cabeceras de las páginas y otras instrucciones que no venían al caso. Además, como son ejemplos parciales, se me habría podido escapar alguna falta de sintaxis, al no poderse poner en marcha los scripts así, de manera parcial.
Lo importante es que hayáis cogido la idea y entendido mejor para qué puede servir pasar variables en la URL y cómo hacen los desarrolladores para que la página sea distinta dependiendo de los valores de las variables. Espero que haya sido así.
Resulta que me han llegado algunas duda a mi correo de personas que no comprendían muy bien la manera de realizar páginas que, dependiendo de la variable que reciban por la URL presenten una información u otra. A continuación podemos ver estas dudas para aclararnos.
Duda 1: (Sobre el lenguaje ASP, aunque da igual, ya que la metodología de uno y otro lenguaje son las mismas. Sólo difiere la sintaxis.)
Hola me llamo Orel y necesito si me pueden dar una ayudita con mi pagina web.
Bueno primero que nada estoy creando mi paina en asp y no entiendo cómo poner un enlace por ejemplo:
Cuando colocan varios enlaces y todos llevan a la misma pagina ver.asp lo que cambia es ?Id=emuladores o ?Id=Roms etc.
No se cómo hacer eso.
Por que si yo pongo la pagina ver.asp?Id=emuladores Me aparece la pagina de emuladores mientras que si pongo ver.asp solo me muestra la pagina de inicio ¿Como hacen eso de que con la misma pagina puedan crear varias?
Duda 2: (Esta duda es de PHP, pero da igual el lenguaje para el que estemos trabajando, en el fondo es la misma duda)
Como se que vosotros sabéis mucho de php, os quería comentar una duda que tengo. ¿Que necesito para crear una web de carátulas en la cual las carátulas salgan en una página que sea una especie de "plantilla", en la cual solo cambie la carátula? Éste tipo de sistemas los he visto en webs de carátulas y son de la forma:
http://nombredelaweb/caratula.php?id=587
http://nombredelaweb/caratula.php?id=351
También cambia el texto y otras cosas.
Respuestas
Pues bien, planteadas las dudas, primero decir que en DesarrolloWeb tenemos todos los contenidos necesarios para aprender técnicamente a utilizar estas variables que se pasan por la URL. Es importante que conozcamos la sintaxis para poder hacer los ejercicios donde dudamos.
Aquí tenemos los enlaces:
- Para aprender a pasar y recoger variables por la URL en ASP
- Lo mismo pero en PHP.
Una vez aprendida la parte técnica podemos pensar en cómo hacer estos sistemas en ambos lenguajes. Lo primero que debemos saber es que esas variables que recibimos por parámetro las podemos utilizar para cualquier cosa. En la duda 1 las vamos a utilizar para mostrar una información de una sección y en la duda 2 las vamos a utilizar para extraer la información de la carátula que se desea ver. Creo que lo mejor sería ver cada uno de los dos casos, en el lenguaje que se preguntan.
Respuesta de la Duda 1, para ASP
Necesitamos extraer el valor de la variable que nos pasan por parámetro y hacer unas cosas u otras en función de dicho valor. Veamos a grandes rasgos el código que utilizaría.
<%
'extraigo el valor de la sección que se desea ver
seccion_ver = request.QueryString("id")
'Dependiendo de la sección muestro unos u otros contenidos
if seccion_ver = "emuladores" then
'entonces coloco todo lo que queramos mostrar en la sección emuladores
%>
<h1>Sección de emuladores</h1>
<p>Bienvenidos a mi sección de emuladores, donde puedes conocer todos los principales emuladores del mercado y descargarte los programas.
<p>... (En fin, todo lo que queramos escribir en esta sección)
<%
elseif seccion_ver = "Roms" then
'entonces coloco todo lo que queramos en la sección de Roms
%>
<h1>Sección de Roms</h1>
<p>Bienvenidos a mi sección de Roms, tenemos más de 500 roms de juegos de todos los tiempos. Cada uno con enlace para descarga e instrucciones de uso.
<p>... (En fin, todo lo que queramos escribir en esta sección)
<%
else
'paso por aquí si no era la sección emuladores ni Roms
'entonces hago lo que desee, que en la duda era simplemente mostrar la página principal.
Response.redirect("index.asp")
'esta instrucción te redirecciona a la página principal de tu sitio web, si es que se llamaba index.asp y está en el mismo directorio que la página actual.
end if
%>
Como se puede comprobar, dependiendo de lo que se reciba por parámetro se mostrará una sección u otra. Si no se recibe nada por parámetro o el valor no corresponde a ninguna de las secciones que hemos definido, se redirecciona a la página índex.asp, que suponemos que es la página principal del sitio web.
Respuesta de la Duda 2, para PHP
Este ejemplo es, si cabe, más simple que el primero. La forma de trabajar típica que se realiza con un ejemplo como este es que todas las carátulas estén en una tabla de una base de datos. Entonces, cada vez que se accede a la página caratula.php se recibe el identificador de la carátula que se quiere visualizar en una variable en la URL, de esta manera: caratula.php?id=12. Así estamos accediendo la página que muestra carátulas y le decimos que la carátula que deseamos ver es la que tiene el identificador (id) igual a 12.
Supongamos que metemos la información de la carátula en una tabla que tiene esta forma:
Tabla caratula
id | Identificador de la carátula |
titulo | Título del disco |
imagen | Nombre del archivo imagen de la carátula |
info | Descripción complementaria de la carátula |
El código en PHP para hacer algo así sería el siguiente. En este código vamos a obviar algunas instrucciones de conexión con la base de datos que realmente no vienen al caso. Recordamos que en el Manual de PHP I tenemos todas las explicaciones para aprender a manejar bases de datos.
<?
//Extraigo el identificador de la carátula a mostrar
$id_caratula = $HTTP_GET_VARS["id"];
//creo la sentencia SQL que extrae datos de esa carátula
$ssql = "select * from caratula where id=" . $id_caratula;
//obtengo los datos de la carátula
$rs = mysql_query($ssql);
$fila = mysql_fetch_object($rs);
//muestro los datos de esa carátula
?>
Disco: <?echo $fila->titulo;?>
<br>
Imagen: <img src="<?echo $fila->imagen;?>">
<br>
Descripción: <?echo $fila->info;?>
<?
//cierro la base de datos
mysql_free_result($rs);
// todo lo que haga falta para terminar la página...
?>
Conclusión
Con esto acabamos. Esperamos que os sirva de ayuda este artículo o, por lo menos, haya resuelto vuestras dudas sobre la utilización de variables en la URL tanto en ASP como en PHP. Sólo pedir disculpas porque los ejemplos que he utilizado no son páginas completas al 100%, ya que faltan las cabeceras de las páginas y otras instrucciones que no venían al caso. Además, como son ejemplos parciales, se me habría podido escapar alguna falta de sintaxis, al no poderse poner en marcha los scripts así, de manera parcial.
Lo importante es que hayáis cogido la idea y entendido mejor para qué puede servir pasar variables en la URL y cómo hacen los desarrolladores para que la página sea distinta dependiendo de los valores de las variables. Espero que haya sido así.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...