Ir para conteúdo

POWERED BY:

Arquivado

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

Jefrey

[Resolvido] Como fazer busca ao invés de página de erro 404?

Recommended Posts

Imaginemos que tenho um site com um sistema de busca.

O usuário entra e digita

http://www.site.com.br/pagina-que-nao-existe.php

E, ao invés de mostrar "Erro 404" ou "Página não existe", eu faço uma busca automática tendo como palavras-chave o nome do arquivo que a pessoa procurou. Neste caso, pagina-que-nao-existe. É fácil converter os hífens em espaços e retirar a extensão do arquivo. Por isso, não se preocupem com isso.

Não quero a página de erro 404 com um formulário de busca. Quero que ela mostre automaticamente os resultados da busca pelo arquivo que a pessoa chamou.

 

Se está dificil entender, veja:

Fulano entrou http://www.site.com.br/pagina-que-nao-existe.php e o site mostrou uma lista de páginas que se parecem com pagina-que-nao-existe. Por exemplo: pagina-que-existe.php, nao-existe.php e outras páginas que realmente existam.

 

Fácil entender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imaginemos que tenho um site com um sistema de busca.

O usuário entra e digita

http://www.site.com.br/pagina-que-nao-existe.php

E, ao invés de mostrar "Erro 404" ou "Página não existe", eu faço uma busca automática tendo como palavras-chave o nome do arquivo que a pessoa procurou. Neste caso, pagina-que-nao-existe. É fácil converter os hífens em espaços e retirar a extensão do arquivo. Por isso, não se preocupem com isso.

Não quero a página de erro 404 com um formulário de busca. Quero que ela mostre automaticamente os resultados da busca pelo arquivo que a pessoa chamou.

 

Se está dificil entender, veja:

Fulano entrou http://www.site.com.br/pagina-que-nao-existe.php e o site mostrou uma lista de páginas que se parecem com pagina-que-nao-existe. Por exemplo: pagina-que-existe.php, nao-existe.php e outras páginas que realmente existam.

 

Fácil entender?

Como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, CrY. Este é o ponto onde eu gostaria de chegar. Como eu pegaria o que o cara digitou?

 

Não sei porque, mas este tópico está repetido, mas eu o fiz apenas uma vez.

http://forum.imasters.com.br/index.php?/topic/420008-como-fazer-busca-ao-inves-de-pagina-de-erro-404/page__p__1654758__fromsearch__1entry1654758

 

Obrigado, Beraldo. Ajudou mesmo.

Não sei porque, mas este tópico está repetido, mas eu o fiz apenas uma vez.

http://forum.imasters.com.br/index.php?/topic/420010-como-fazer-busca-ao-inves-de-pagina-de-erro-404/page__gopid__1655605entry1655605

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, problema resolvido!

<?php
$request = stripslashes(htmlspecialchars($_SERVER['REDIRECT_URL'])); // pego o endereço da página inexistente
$request = explode("/", $request); // separo em arrays pelas barras
$request = $request[1]; // pego somente o que está após o domínio do site
$verifica = strpos($request, "."); // vejo se há pontos, para retirar a extensão
if(!$verifica==false) { // se houver pontos no nome do arquivo
$request = explode(".", $request); // separo em arrays pelos pontos
$request = $request[0]; // pego somente o anterior ao primeiro ponto
}
$file = "artigos/".$request.".php"; // vejo como ficaria o nome do arquivo
if(file_exists($file)) { // se o arquivo existir 
header("Location: {$file}"); // redireciona para o arquivo
} else { // senão
header("Location: busca.php?q={$request}") // faço a busca
}
?>

Isto é derivado do que o Beraldo disse, mas o script da página que ele mandou cria o arquivo, se o mesmo não existir.

Então, obrigado a todos.

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.