Ir para conteúdo

POWERED BY:

Arquivado

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

Will Up

[Resolvido] URL amigável

Recommended Posts

Amigos, estou precisando utilizar isso em um projeto: http://forum.imasters.com.br/topic/402224-otimizando-uma-url/page__view__findpost__p__1576064

 

Até aí tudo bem funciona perfeitamente, mas e se eu tiver dois tituloAmigavel iguais? Como eu faço para, se já tiver um tituloAmigavel gravado, gravar outro com um número no final? Ex:

 

Se jo-soares já estiver gravado na coluna tituloAmigavel, fica assim se eu tentar gravar outro: jo-soares-2

 

 

Como faço? Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não li o código da página postada, mas já te adianto a seguinte dica:

Faça como o nosso próprio forum: Envie o ID junto ao titulo do post na URL. Exemplo:

 

http://forum.imasters.com.br/topic/427312-url-amigavel/

 

Se eu digito assim:

 

http://forum.imasters.com.br/topic/427312-url-amigavellllll/

 

Ele me leva para o mesmo tópico, pois o ID é que indica ao servidor qual tópico ele deve buscar no banco de dados.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei em fazer assim, mas não sei como faço. No INSERT eu faço assim pra gravar o ID: `ID`=''.

 

Como gravo o ID e o link na mesma coluna?

 

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não vai escolher um ID, amigo. O id será gravado com auto-increment normalmente.

O que você deve fazer é, ao listar os links, manter um padrão de endereço onde você consiga separar o ID do resto, que para a seleção do BD será inútil. Exemplo:

 

<?php
$string = '427312-url-amigavel';
echo $id = (int)array_shift(explode('-', $string));
?>

 

Resultado: 427312. Depois faça a consulta pelo ID.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus, eu entendi o que você quis dizer, mas não sei como gravo o ID e o título juntos (sim, o ID é gravado em uma coluna e o ID+link em outra).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matheus, eu entendi o que você quis dizer, mas não sei como gravo o ID e o título juntos (sim, o ID é gravado em uma coluna e o ID+link em outra).

 

Não, não Will.

 

1 - Você não precisa de uma coluna para ID+link. Somente uma com o ID, e outra com o título, pois veja bem:

 

Você constrói o link para o usuário da forma abaixo, levando em consideração os seguintes pontos:

 

1 - $id é a variável com o ID da notícia. Exemplo: 42

2 - $titulo é a variável que contém o título. Exemplo: 'Como fazer urls amigáveis'

3 - montaLink é uma função que você deve criar para: retirar acentos, trocar espaços por hífens e retirar caracteres especiais, resultando, no exemplo, nisso: 'como-fazer-urls-amigaveis'

 

<a href="artigo/<?php echo $id . '-' . montaLink($titulo); ?>"><?php echo $titulo; ?></a>

 

Resultado:

 

<a href="artigo/42-como-fazer-urls-amigaveis">Como fazer urls amigáveis</a>

 

Quanto a pessoa acessar a página de artigos, haverá um tratamento da url, onde será verificado da forma que te passei anteiormente qual é o ID do artigo, e será feita uma simples busca ao BD da seguinte forma:

 

$res = mysql_query('SELECT * FROM `artigos` WHERE `id` = '.$id);

 

Depois exiba os dados normalmente.

Resumindo: o título da notícia servirá somente para fins "estéticos", uma vez que o sistema precisa apenas do ID para funcionar.

 

Essa é uma maneira de se fazer. Eu acho muito melhor que ficar guardando no bd todos os links, e ainda ter o risco de o sistema ser vulnerável à falhas.

 

[]'s

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.