Taller de paso de variables por URL

  • Por
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:

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í.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Alejandro

10/2/2004
Hola a todos aki va mi pregunta:
hay alguna forma de enviar un formulario del tipo encuesta a un mail y que el usuario del mail lo rellene con su nombre y apellido y la respuesta de la encuesta y ke luego de eso envie los datos por medio de una url, y que luego lo procese una hoja de mi website y me encie los datos a mi mail??
desde ya muy agradecido por su ayuda comosiempre??

Sergio

01/9/2005
Quisiera saber si es posible que recibiendo el valor de una variable; esta se puede incluir dentro de la llamada a un include. Es esto posible?
Aguardo su respuesta! Atentamente.

Percadz

30/11/2005
Bueno, Alejandro si lo que quieres es eso prepara un pagina en php y cuando entren haces un $_POST['variable'] y que lo guarde en una BD: INSERT INTO TABLA_NOMBRE
VALUES ('$_POST[variable]','etc','etc').

Espero que te sirva :P

Jorge

29/7/2006
quisiera que me pudieran enviar toda la info desde como crear la tabla para la base de datos y el php completo porfavor

Notlim

07/2/2008
a ver si puede ayudarme con esto, tengo este link

<a href="ListaBase.php?opc=CASE" class="link_derecha_izq">TODOS</a>

que como veran envia "CASE" en "opc" luego lo recojo con :

$id_opc = $_GET["opc"];

Y trato de usarlo en la consulta:
$consulta = 'SELECT `NOMBRE` , `DESCRIPCION` , `PREC_UNID` FROM productos where CLASES="$id_opc" ORDER BY `NOMBRE` ASC LIMIT 0 , 30';

y ahi esta el problema, en "$id_opc", me sale el cuadro vacio, alguien tiene alguna idea????

optim

02/7/2010
muy buen sitio
Quería decir que es muy bueno su sitio, y además agradecerles por la ayuda que brindan. Seguiré leyendo los artículos :).

oscar

28/1/2012
cambiar el color de la web
hola muy buenas estoy estudiando un master en programacion web y me piden hacer un ejercicio que mediante php cambie el color de fondo y del texto.tengo el fondo negro y el texto blanco y tengo que hacer que al abrir la web se me muestre fondo blanco y texto negro,he probado de mil maneras pero nose que hago mal que no hay forma si me pudierais ayudar os lo agradeceria.muchas gracias

daniel

10/5/2012
pasar valor de un select por url
como podre pasar el valor de un select por medio de la url al acer clik en un link