Temario del Tutorial - Redireccionar a otra página (header)


Con PHP se puede implementar un pequeño programa que permita que cuando un usuario (navegador) solicita una página, la misma redireccione o otra página.

Para probar el algoritmo implementaremos un formulario que solicite el ingreso por teclado de una dirección de internet.La segunda página redireccionará al sitio web cargado en el formulario. Es decir la segunda página nunca llega al cliente, sino que redirecciona a otra página.

El primer archivo no tiene nada de especial y se trata de HTML puro:

<html>
<head>
<title>Problema</title>
</head>
<body>
<form action="pagina2.php" method="post">
Ingrese dirección de sitio web (ej www.google.com):
<input type="text" name="direccion" size="30"><br>
<input type="submit" value="Redireccionar">
</form>
</body>
</html>

El segundo archivo "pagina2.php" es el que efectúa la redirección a otra página o sitio:

<?php
header("Location: http://$_REQUEST[direccion]");
?>

La llamada a la función header debe hacerse antes de cualquier salida HTML, sino, no funcionará. Debemos pasarle como parámetro un string con el texto Location y la dirección del sitio y/o página a recuperar.



Problema resuelto.

Copiar el contenido de este cuadro de texto al NotePad++ y grabarlo en la carpeta c:\wamp\www con un nombre con extensión php (si hay varios cuadros de texto grabar cada uno en un archivo distinto).
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear: http://localhost/pagina1.php (o el nombre del archivo que le dió)

pagina1.php

Ejecutar ejemplo

pagina2.php

Problema propuesto.

Confeccionar un programa que solicite el ingreso de una clave en un formulario. La segunda página debe verificar si ingresó el string "z80" y mostrar un mensaje de bienvenida, en caso contrario, esta página debe redireccionar a la primera página nuevamente.

Cuando tenemos que redireccionar a una página que está en el mismo sitio, sólo es necesario disponer su nombre:

<?php
if ($_REQUEST['direccion']<>"z80")
  header("Location: pagina1.php");
?>

Otra cosa interesante que podemos hacer es pasar como parámetro en la segunda página un código de error:

<?php
if ($_REQUEST['direccion']<>"z80")
  header("Location: pagina1.php?error=1");
?>

Y luego en la primera página mostrar un mensaje de error si es que la página recibe este parámetro:

<?php
if (isset($_REQUEST['error']))
  echo "Ingreso clave incorrecta";
?>
Solución
pagina1.php

Ejecutar ejemplo
pagina2.php

Retornar