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 desenvolvendo um sistema de lições online.
tenho a página licoes.php que exibem os links das licoes, porem, eu utilizo um código para exibir as páginas no centro da index, mas queria que as lições fossem exibidas nessa mesma div, no lugar das outras..
mas vejam como é o meu codigo: [resumido]
index.php
<?php
ob_start();
if (!$_SESSION) session_start();
$atual = (isset($_GET['pg'])) ? $_GET['pg'] : 'home';
$permissao = array('home','licoes','contato','404');
if(substr_count($atual, '/') > 0){
$atual = explode('/', $atual);
$pagina = (file_exists($atual[0].'.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
$id = intval($atual[1]);$pagina = (file_exists($atual.'.php') && in_array($atual, $permissao)) ? $atual : '404';
$id = 0;
}
?>
<div id="conteudo">
<?php require("{$pagina}.php")?>
</div>
nessa página de cima, eu listo o nome das paginas que são permitidas na div "conteudo".
meu .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?pg=$1
Ou seja, quando digito: meusite.com/contato
a pagina de contato é exibida na div conteudo, sem problemas.
Quando eu digito: meusite.com/licoes
as lições cadastradas no banco sao exibidas também..
agora minha dúvida é que, quando estou dentro da pagina liçoes, cada lição tem 1 link, que vem de um campo "URL" cadastrado no banco.. faço a url amigavel de cada lição e salvo lá.. agora eu tenho que puxar as URLs amigaveis mas já não sei como fazer este link, pois na index.php, existe a array que mostra as páginas permitidas no site, então como eu faria para exibir as lições na mesma div "conteudo"??
do jeito que tenho meus arquivos, acredito que o final ficaria:
meusite.com/licoes&url=titulo-da-noticia
meu objetivo é fazer a url final ficar:
meusite.com/licoes/titulo-da-licao
ou entao pode tambem ser:
meusite.com/titulo-da-licao
mas não sei o que fazer na index e nem no .htaccess
alguém dá uma luz? rs
obrigado!
>
Se você quer simplesmente "implementar" isso o mais rápido possível, instale logo o Wordpress. Se quer aprender, então faça como está no Wordpress.
Coloque todo o tráfego apontado para o arquivo index.php
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Use a variável $_SERVER['REQUEST_URI'] para verificar qual a página requisitada e faça a consulta no banco de dados para verificar se existe alguma página com aquela URL.
Desculpe, mas não me familiarizo nem um pouco com wordpress. Não gosto do gerenciamento que eles fazem e muito menos quando se trata de aparencia.
Prefiro ralar e aprender a desenvolver o meu próprio.
Não entendi muito bem a questão de redirecionar todo conteúdo para a index.
Como ficaria a minha index.php? Meu codigo redirecionando o conteudo para a div "conteudo" permanece lá?
No momento utilizo a url index.php?pg=pagina , com o htaccess que informei, fica: meusite.com/pagina. Ja está funcionando.
Mas o que eu quero é que TAMBEM funcione:
meusite.com/pagina/pagina2
que sem o access ficaria:
meusite.com/index.php?pg=pagina&url=pagina2
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?pg=$1&url=$2
O que costumo fazer nos meus projetos é o seguinte:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?url=$1
O $_GET['url'] é tudo que eu preciso, se eu quisesse meusite.com.br/contato
echo $_GET['url'] //exibiria 'contato';
meusite.com.br/contato/novo
echo $_GET['url'] //exibiria 'contato/novo';
Daí é o seguinte
$url = explode('/', $url); //separa(explode) a string a partir dos '/' transformando em array
$param1 = $url[0]; //exibiria contato
$param2 = $url[1]; //exibiria novo
Não sei se entendeu o que quis dizer, caso não tenha entendido só perguntar!
Está bem simples ao meu ver, bem sugestivo.
>
O que costumo fazer nos meus projetos é o seguinte:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?url=$1
O $_GET['url'] é tudo que eu preciso, se eu quisesse meusite.com.br/contato
echo $_GET['url'] //exibiria 'contato';
meusite.com.br/contato/novo
echo $_GET['url'] //exibiria 'contato/novo';
Daí é o seguinte
$url = explode('/', $url); //separa(explode) a string a partir dos '/' transformando em array
$param1 = $url[0]; //exibiria contato
$param2 = $url[1]; //exibiria novo
Não sei se entendeu o que quis dizer, caso não tenha entendido só perguntar!
Está bem simples ao meu ver, bem sugestivo.
Legal, eu entendi o objetivo do codigo.. É isso mesmo que preciso, PORÉM...
Preciso adaptar isso aí ao meu codigo que exibe os conteudos na DIV="CONTEUDO" ... entendeu ?
O codigo ta no primeiro post, mas postarei aqui também:
<?php
ob_start();
if (!$_SESSION) session_start();
$atual = (isset($_GET['pg'])) ? $_GET['pg'] : 'home';
$permissao = array('home','licoes','contato','404');
if(substr_count($atual, '/') > 0){
$atual = explode('/', $atual);
$pagina = (file_exists($atual[0].'.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
$id = intval($atual[1]); $pagina = (file_exists($atual.'.php') && in_array($atual, $permissao)) ? $atual : '404';
$id = 0;
}
?>
<div id="conteudo">
<?php require("{$pagina}.php")?>
</div>
como eu adaptaria para usar da forma que voce falou?
valeu mesmo!
Se você quer simplesmente "implementar" isso o mais rápido possível, instale logo o Wordpress. Se quer aprender, então faça como está no Wordpress.
Coloque todo o tráfego apontado para o arquivo index.php
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Use a variável $_SERVER['REQUEST_URI'] para verificar qual a página requisitada e faça a consulta no banco de dados para verificar se existe alguma página com aquela URL.