Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

daniele bianca

[Resolvido] ativar redirecionamento quando url não estiver preenc

Recommended Posts

oi gente,

 

queria saber como ativar um redirecionamento com o php, quando uma parte da url não estiver preenchida.

 

por exemplo:

caso o internauta acesse: www.exemplo.com/postagem?data=1.2.2012, o acesso a página seja permitido.

ou caso ele acesse: www.exemplo.com/postagem?data= (sem inserir a data), a página redirecione para o site principal, que no caso é www.exemplo.com

 

há como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pela estrutura da sua URL, suponho que você já esteja usando reescrita de URLs e que todas as requisições (requests) estejam apontadas para o arquivo index.php.

 

Então, neste caso, o melhor é fazer isso usando PHP:

 

function checkRequest()
{
 $request = $_SERVER['REQUEST_URI']; // /postagem?data=1.2.2012

 // Verifique se o request bate com o padrão
 if (!preg_match('/^\/postagem\?data=(?:([1-9]|[12][0-9]|3[01])\.([1-9]|1[012])\.((?:19|20)\d\d))$/', $request, $data)) {
   return false;
 }

 // verifica se a data é válida
 array_shift($data);
 list($d, $m, $y) = $data;
 if (!checkdate($m, $d, $y)) {
   return false;
 }

 return true;
}

// Verifica se a requisição é valida, se não, redireciona para www.exemplo.com

if (strpos($_SERVER['REQUEST_URI'], '/postagem') === 0 and !checkRequest()) {
 header('Location: http://www.exemplo.com');
}

 

Obs.: Aproveitei também para validar a 'data'. Caso ela seja inválida, o redirecionamento também ocorrerá.

 

 

PS: Se fui útil, repute +1 no botão verde com um '+' abaixo desse post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi gente,

 

queria saber como ativar um redirecionamento com o php, quando uma parte da url não estiver preenchida.

 

por exemplo:

caso o internauta acesse: www.exemplo.com/postagem?data=1.2.2012, o acesso a página seja permitido.

ou caso ele acesse: www.exemplo.com/postagem?data= (sem inserir a data), a página redirecione para o site principal, que no caso é www.exemplo.com

 

há como fazer isso?

 

essa é facil pequeno gafanhoto,

 

se sua variavel por data você faz assim :)

 

if (!isset($_GET['data']))

{

header ('Location: a_pagina_que_voce_quer.php');

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

se sua variavel por data você faz assim :)

 

if (!isset($_GET['data']))

{

header ('Location: a_pagina_que_voce_quer.php');

}

 

Não dá certo, pois para a requisição:

 

http://babaquice.com/postagem?data=

 

$_GET['data'] está definida, só que está vazia.

 

A verificação isset($_GET['data'] irá retornar (bool) true.

 

Então o correto seria verificar se a string está vazia:

if (empty($_GET['data'])) {
  header('Location: pagina.html');
}

 

Mas o ideal mesmo é verificar se essa data é válida e caso contrário redirecionar para a homepage.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.