BOMBOLOM.COM

(webdev) Redireccionar página com PHP

Este é um post de José Lopes.

Imagine que no seu site tem uma quantidade razoável de ficheiros, com uma informação similar mas individual, com um nome segundo uma convenção definida (tipo 100, 1001, etc). Pode ser interessante facultar uma form onde os utilizadores possam aceder aos ficheiros inserindo o nome convencionado.

Uma solução possível é criar uma form que utiliza PHP para direccionar os utilizadores ao ficheiro correcto. Uma solução deste tipo que não recorre a javascript assegura que não haja problemas de navegação (por não estar activado a opção javascript).

Neste post mostro como se pode utilizar uma form e php para redireccionar o utilizador para uma página estática existente.

A primeira coisa a fazer é escrever a nossa form, que pode ser mais ou menos complicada consuante os nossos requerimentos. Vamos considerar algo simples como por exemplo:

<form action="form_handler.php" method="get">
Escreva o número: <input name="ref" type="text">
</form>

Como pode verificar:

Agora queremos que o PHP faça a sua magia. Criamos o ficheiro form_handler.php com o seguinte código:

   <?php
(1)$name = $_GET['ref'];
(2)header("Location: http://O_PATH_PARA_OS_FICHEIROS" . $name . ".html");
   ?>

Explicando o código:

(1)Obtemos o valor do input ref da form (o nome que colocámos).
(2)Fazemos o encaminhamento para o ficheiro compondo o path completo e com o valor do input no lugar correcto.

Esta é uma solução simples que pode ser adaptada a qualquer necessidade.

Podemos ter mais do que um valor na form, por exemplo dois campos de input e um ficheiro PHP com o código:

<?php
$name1 = $_GET['ref1'];
$name2 = $_GET['ref2'];
header("Location: http://O_PATH_PARA_OS_FICHEIROS" . $name1 . "QUALQUER_COISA" . $name2 . ".html");
?>

Se o valor que recebemos tiver de estar em maiúsculas, podemos implementar esta especificação no ficheiro PHP:

<?php
$name = $_GET['ref'];
header("Location: http://O_PATH_PARA_OS_FICHEIROS" . strtoupper($name) . ".html");
?>

A função de PHP strtoupper() converte uma string em maiúsculas. Se fosse minúsculas o pretendido poderiamos usar a função strtolower(). Como podem imaginar qualquer função de strings pode ser utilizada consuante o que necessitamos.

Pode ver um exemplo de aplicação desta solução aqui.

20.01.2008 | Ler mais | Comentários | Tags ,

Voltar à Página principal | Made with PyBlosxom