Sou novo em programação e criei um site de restaurante e coloquei URL Amigável dela tudo ok. Mas na hora que eu fui clicar em um link de pagina cuja as informações vem do BD o mesmo deu ERRO.
O link esta: http://meu-site.com.br/informativo_descricao&id=13
e eu gostaria que ficasse assim ou mais próximo disso: http://meu-site.com.br/mais-esperanca-para-voce
CREATE TABLE `tbl_informativo`(`id`int(11) NOT NULL,`capa` text CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,`titulo` text CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,`slug` text CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,`categoria` text CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,`texto` text CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,`data` varchar(15) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,`codigo` text CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;----Extraindo dados da tabela `tbl_informativo`--
INSERT INTO `tbl_informativo`(`id`,`capa`,`titulo`,`slug`,`categoria`,`texto`,`data`,`codigo`) VALUES
(13,'/upload/files/Sem%20T%C3%ADtulo-1.png','MAIS ESPERANÇA PARA VOCÊ','mais-esperanca-para-voce','NOVIDADE','<p>Para um restaurante um clássico é algo que, por alguma razão, cai no gosto do público, quase que por unanimidade.</p>\r\n\r\n<p>Todos os domingos no jantar (a partir de junho iremos homenagear os nossos clássicos).<br />\r\nE quem sai ganhando é você!<br />\r\nConvide amigos e a cada 2 pratos você paga somente um. É uma diferença de 50% nos pratos! Que tal?</p>\r\n\r\n<p>(Promoção válida somente para consumo no restaurante. Não é válida para entrega)\r\n','26/05/2019','9968e41f26b710780d4785ca460ede5b');
Url.php
<?php
classUrl{privatestatic $url =null;privatestatic $baseUrl =null;publicstaticfunction getURL( $id ){if(self::$url ==null)// Verifica se a lista de URL já foi preenchidaself::getURLList();// Valida se existe o ID informado e retorna.if( isset(self::$url[ $id ]))returnself::$url[ $id ];// Caso não exista o ID, retorna nuloreturnnull;}publicstaticfunction getBase(){if(self::$baseUrl !=null)returnself::$baseUrl;global $_SERVER;
$startUrl = strlen( $_SERVER["DOCUMENT_ROOT"]);
$excludeUrl = substr( $_SERVER["SCRIPT_FILENAME"], $startUrl,-9);if( $excludeUrl[0]=="/")self::$baseUrl = $excludeUrl;elseself::$baseUrl ="/". $excludeUrl;returnself::$baseUrl;}privatestaticfunction getURLList(){global $_SERVER;// Primeiro traz todos as pastas abaixo do index.php
$startUrl = strlen( $_SERVER["DOCUMENT_ROOT"])-1;
$excludeUrl = substr( $_SERVER["SCRIPT_FILENAME"], $startUrl,-10);// a variável$request possui toda a string da URL após o domínio.
$request = $_SERVER['REQUEST_URI'];// Agora retira toda as pastas abaixo da pasta raiz
$request = substr( $request, strlen( $excludeUrl ));// Explode a URL para pegar retirar tudo após o ?
$urlTmp = explode("?", $request);
$request = $urlTmp[0];// Explo a URL para pegar cada uma das partes da URL
$urlExplodida = explode("/", $request);
$retorna = array();for($a =0; $a <= count($urlExplodida); $a ++){if(isset($urlExplodida[$a]) AND $urlExplodida[$a]!=""){
array_push($retorna, $urlExplodida[$a]);}}self::$url = $retorna;}}?>
Não sei se precisa dessa informação toda, mas de qualquer forma esta ai. Obrigado desde já!
Pergunta
aivanlins
Oi pessoal, tudo certo?
Sou novo em programação e criei um site de restaurante e coloquei URL Amigável dela tudo ok. Mas na hora que eu fui clicar em um link de pagina cuja as informações vem do BD o mesmo deu ERRO.
O link esta:
http://meu-site.com.br/informativo_descricao&id=13
e eu gostaria que ficasse assim ou mais próximo disso:
http://meu-site.com.br/mais-esperanca-para-voce
Bom, segue o que tenho aqui:
.htaccess
Index.php
Pagina:
Banco de Dados
Url.php
Não sei se precisa dessa informação toda, mas de qualquer forma esta ai. Obrigado desde já!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.