Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá. Estou com um problema referente a caracteres especiais na minha URL.
Estou criando um site em php no Dreamweaver, criei um recordset onde minha tabela tem as seguintes colunas.
ID
Titulo
Imagem
Categoria
Texto.
Na parte da categoria eu linquei e fiz um parâmetro para que exiba uma página filtrada pela categoria selecionada.
Criei uma página para exibir a categoria da seguinte maneira site.com.br/categoria.php?categoria=nome da categoria.
só que o problema está no nome da categoria, quando eu abro uma categoria que tem caracteres especiais, não funciona, a página abre só que não exibe os resultados,
Ex: Comunicação e Publicidade
a url fica assim = www.site.com.br/categoria.php?categoria=Comunica%EF%BF%BDao%20&%20Publicidade
já uma outra categoria que não tem caracteres funciona normalmente.
O que eu posso fazer para resolver esse problema?
Agradeço a Ajuda
>
/*****************************
TRANFORMA STRING EM URL
*****************************/
function setUri($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.,\\\'<>°ºª';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
$string = str_replace(" ","-",$string);
$string = str_replace(array("-----","----","---","--"),"-",$string);
return strtolower(utf8_encode($string));
}
Ex.:
$nomecat = $_POST['nome-da-categoria']; // Nome da categoria com os caracteres
$urlcat = setUri($nomecat); // url baseada no nome da categoria sem caracteres
Rogério, Olha como fica.
/applications/core/interface/imageproxy/imageproxy.php?img=http://lenosousa.com.br/naoapagar/1.jpg&key=21cf4e10422506886a9d25d040371f982aeb959217a3d161394e70450b5f1887" alt="1.jpg" />
Usando esta função?
Usando esta função?
sim
sim
Você cadastrou uma nova categoria?
Está salva com os acentos normais ou usando por exemplo ´
>
Você cadastrou uma nova categoria?
Está salva com os acentos normais ou usando por exemplo ´
Criei uma nova, e ficou salva com os acentos normais no banco de dados.
A função você usa no cadastro, como está?
>
Rogério, Olha como fica.
/applications/core/interface/imageproxy/imageproxy.php?img=http://lenosousa.com.br/naoapagar/1.jpg&key=21cf4e10422506886a9d25d040371f982aeb959217a3d161394e70450b5f1887" alt="1.jpg" />
Não vejo necessidade de passar o nome da categoria pela url neste caso especifico, o simples id da categoria resolveria.
Se passa o nome se for usar url amigável, ae sim, e isso já é uma outra história.
Verifique o a codificação, o certo é utf-8 sem bom, para evitar este erro.
Dreamweaver raiz de todo mau para quem esta começando, o programa tosco.
>
Não vejo necessidade de passar o nome da categoria pela url neste caso especifico, o simples id da categoria resolveria.
Se passa o nome se for usar url amigável, ae sim, e isso já é uma outra história.
Verifique o a codificação, o certo é utf-8 sem bom, para evitar este erro.
Dreamweaver raiz de todo mau para quem esta começando, o programa tosco.
Essa é uma boa solução, só que como eu faria com que na URL exibisse o ID da Categoria, e na Descrição do Post aparecesse o nome da categoria.
tipo, tenho uma tabela 'notícia' que tem
e outra tabela 'categoria' que tem
utilizo a tabela categoria com o Select no formulário de cadastro de notícia.
ai eu faço com que ele puxe o nome da categoria e coloque na tabela notícia, mas posso fazer com que colete o ID ao invés do nome, isso resolveria o problema da URL, só que gostaria de exibir na descrição do Post com o nome da categoria, e pelo meu ver só apareceria ao ID, já que coletei apenas a ID da Categoria na hora do Registro da Notícia?.
Como Faço para que funcione dessa maneira?, eu crio um recordset no Dreamweaver, mas estou disposto a aprender sem ele também, caso só der de fazer manual, estou disposto a aprender.
Agradeço.
/*****************************
TRANFORMA STRING EM URL
*****************************/
Ex.:
$nomecat = $_POST['nome-da-categoria']; // Nome da categoria com os caracteres
$urlcat = setUri($nomecat); // url baseada no nome da categoria sem caracteres