Diferencia entre revisiones de «Plantilla:PHP/RedirigiendoPaginas»

De WikiEducator
Saltar a: navegación, buscar
(Redirigiendo páginas)
Línea 1: Línea 1:
 
===Redirigiendo páginas===
 
===Redirigiendo páginas===
*Imaginemos que queremos hacer una página donde pidamos al usuario nombre  y password
+
*Imaginemos que queremos hacer una página donde pidamos al usuario nombre  y password.
*El password va a ser 12345. Si el password es correcto iremos a otra página en la que le queremos dar la bienvenida con el nombre que introdujo
+
*El password va a ser ''12345''. Si el password es correcto iremos a otra página en la que le queremos dar la bienvenida con el nombre que introdujo.
*Pensemos en como podemos pasar ese nombre a la  página
+
*Pensemos en cómo podemos pasar ese nombre a la  página.
 
[[Imagen:pasandoOcultos.png]]
 
[[Imagen:pasandoOcultos.png]]
 
</div>
 
</div>
Línea 9: Línea 9:
 
<div class="slide">
 
<div class="slide">
  
*Analicemos las maneras de hacerlo, pero previamente veamos una muy interesante función
+
*Analicemos las maneras de hacerlo, pero previamente veamos una función muy interesante.
*La usaremos mucho mucho, y sirve para invocar a otras páginas en un momento dado
+
*La usaremos en muchas ocasiones, y sirve para invocar a otras páginas en un momento dado
 
;header(....);
 
;header(....);
header() se usa enviar encabezados HTTP sin formato.
+
*header() se usa enviar encabezados HTTP sin formato.
En esas cabeceras es cuando invocamos a una determinada url que queremos cargar, así que es ahí donde podemos hacer referencia a la página que queremos ver.
+
*Con esta cabecera http, podemos invocar  una determinada '''''url''''' que queremos cargar, así que es ahí donde podemos hacer referencia a la página que queremos ver.
 
</div>
 
</div>
  
Línea 32: Línea 32:
 
  header ("Refresh:5; url=URL_de_la_pagina");
 
  header ("Refresh:5; url=URL_de_la_pagina");
 
*Ahora estamos en condiciones de probarlas con el ejemplo anterior.
 
*Ahora estamos en condiciones de probarlas con el ejemplo anterior.
*Es muy importante entender las acciones que se van haciendo
+
*Como siempre recuerdo que es muy importante entender las acciones que se van haciendo.
 +
*Después de ejecutar la función header con redirección, no tiene sentido que se ejecute el resto del script, por lo que es aconsejable y útil poner la función de finalización de script '''''exist()'''''.
 +
<source lang=php>
 +
header (......);
 +
exit();
 +
</source>
 
</div>
 
</div>
  

Revisión de 09:04 29 oct 2017

Redirigiendo páginas

  • Imaginemos que queremos hacer una página donde pidamos al usuario nombre y password.
  • El password va a ser 12345. Si el password es correcto iremos a otra página en la que le queremos dar la bienvenida con el nombre que introdujo.
  • Pensemos en cómo podemos pasar ese nombre a la página.

PasandoOcultos.png </div>

  • Analicemos las maneras de hacerlo, pero previamente veamos una función muy interesante.
  • La usaremos en muchas ocasiones, y sirve para invocar a otras páginas en un momento dado
header(....);
  • header() se usa enviar encabezados HTTP sin formato.
  • Con esta cabecera http, podemos invocar una determinada url que queremos cargar, así que es ahí donde podemos hacer referencia a la página que queremos ver.
  • Es muy importante saber que header() debe ser llamado antes de mostrar nada por pantalla
  • Aquí se puede acceder a la referencia oficial.
http://es.php.net/manual/es/function.header.php
  • Por ahora la usaremos de dos maneras para un mismo cometido
Cargar una página inmediatamente
header("Location:URL_de_la_página");
Cargar una página con un tiempo de demora (por ejemplo para leer un mensaje)
header ("Refresh:5; url=URL_de_la_pagina");
  • Ahora estamos en condiciones de probarlas con el ejemplo anterior.
  • Como siempre recuerdo que es muy importante entender las acciones que se van haciendo.
  • Después de ejecutar la función header con redirección, no tiene sentido que se ejecute el resto del script, por lo que es aconsejable y útil poner la función de finalización de script exist().
header (......);
exit();

Referenciando la propia página

  • A veces puede ser que en la propia página tengamos el código que queremos que se ejecute cuando hacemos un click en el botón submit.
  • Esto simplifica el número de páginas que tenemos en nuestro desarrollo
  • En este caso tenemos la siguiente situación

AppUnaPagina.png

  • En la imagen vemos una forma de proceder
  • Creamos una página web
  • Dentro de la página tenemos que ver si es la primera vez que se carga la página o no
  • Otra forma de verlo es si se ha cargado la página porque hemos puesto el url en el navegador, o porque hemos hecho click en el botón submit del formulario
  • Dentro del código esto lo podemos saber interrogando si existe la variable $_POST['enviar']


Icon activity.jpg
Actividad
Haz una página de bienvenida que muestre los datos de usuario y pass al acceder al sistema
  • Se tiene que hacer en una única página


Pasando información de una página a otra

  • La programación web utiliza el protocolo http para la transferencia de los datos
  • http es un protocolo sin estado


Icon key points.gif

Puntos clave

  1. La programación web está basada en el protocolo http
  2. El protocolo http es un protocolo sin estado
  • Cada vez que cargamos una página o hay una solicitud el servidor web entrega al cliente la página ejecutada
  • En caso de que la página ejecutada tenga código php (extensión del fichero), el servidor web ejecuta dicho código y entrega como parte de la página el resultado de la ejecución
  • El servidor no tiene en cuenta a quién entrega la página, no sabe si es la primera vez que te entrega la página o la enésima vez que lo hace
  • Si quiere mantener información entre diferentes páginas, he de gestionarlo en programación
  • Una manera ya le hemos visto usando la función de cabecera
header (Location:url?variable1=valor&variable2=valor)
Usando campos ocultos
  • Otra manera es usando campos ocultos
  • Veamos su funcionamiento
  • Hay situaciones donde queremos recopilar además de la información que el usuario rellena, algún dato más.
  • Supongamos que queremos saber las veces que una página se invoca a sí mismo
  • Cualquiera pensaría en crear una variable, y cada vez que llamemos a la página incrementar en una unidad

LlamadasPagina.png

  • Cada vez que llamemos a la página siempre que el usuario se haya identificado vamos a especificar las veces que ha invocado a la página.
  • Para ello necesitamos enviar a la página del servidor la información de las veces que se ha invocado a la página
<input type="hidden" name="valorOcultoaRescatar" value="$variable">


Icon activity.jpg
Actividad
Implementa el programa anterior y verifica su funcionamiento