Ir para conteúdo

POWERED BY:

Arquivado

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

pamellass

[Resolvido] Frames, modelos de página ou PHP?

Recommended Posts

Bom, beleza, então agora vcs me convenceram a tentar usar o método do guilherme...hehe

 

Mas esse aí eu não entendi direito.

 

Eu vou ter uma página apenas que vai ter todo o conteúdo que será igual a todas, certo?!

 

E aí, dentro dessa página, no lugar onde o conteúdo irá mudar, eu vou incluir esse código:

 

 

<?php

$page = isset($_GET['page']) ? addslashes(trim($_GET['page']) : false;

 

if( $page != false ) {

 

include( "$page.php" );

 

} else {

 

header( "Location: 404.php" );

} ?>

 

 

 

é isso?

 

mas onde eu chamo o nome do arquivo php que tem esse conteúdo?

 

Vamos considerar que você tenha a sua página pronta: cabeçalho, chamadas .css, chamadas .js e etc e só queira incluir mesmo o conteúdo.

 

Agora, vamos dizer que o seu conteúdo (que deve mudar em cada página diferente) vai ficar dentro dessas camadas:

<div id="conteudo">
</div>

 

Então você faz:

<div id="conteudo">
<?php
$page = isset($_GET['page']) ? addslashes(trim($_GET['page']) : false;

if( $page != false ) {

include( "$page.php" );

} else { 

header( "Location: 404.php" );
} ?>
</div>

 

Isso deve estar em um arquivo chamado index.php.

 

Feito isso, na mesma pasta, você cria um arquivo contato.php (para testarmos) e digita nele:

Hello World!

 

Depois, vá no seu navegador e digite:

http//www.seusite.com.br/index.php?page=contato

 

E veja a mágica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto ao método Pamela, vai da tua experiência. :thumbsup:

Meu código (um pouco diferente do código do Guilherme):

<?php
if(isset($_GET['page']) && $_GET['page'] != "") {
$page = $_GET['page'];
$page = str_replace(".", "", $page);
$page = str_replace("firstime", "home", $page);
$page = "". $page .".php";
if(file_exists($page)) {
include("$page");
}
else {
include("404.php");
}
}
else {
include("home.php");
}	
?>

Esse fica na tua div do conteudo com a página home.php (edite-a) já incluída (se não houver nenhuma página a ser chamada, claro).

 

Daí só vai chamando as páginas do mesmo jeito:

<a href="?page=oi">Oi</a>

E se a página não existir, o 404.php é incluído.

 

Simples!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guilherme, nesse seu código, eu não tenho que escrever nada sobre qual arquivo .php ele vai ter de abrir?

É só ele estar na página do layout principal, que daí ao escrever o endereço:

http//www.seusite.com.br/index.php?page=contato

e existir o arquivo 'contato.php',

o arquivo 'contato.php' será aberto dentro do layout principal? é isso?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

http//www.seusite.com.br/index.php?page=contato

e existir o arquivo 'contato.php',

o arquivo 'contato.php' será aberto dentro do layout principal? é isso?!

É isso.

 

Ele vai incluir o contato.php na página, só isso.

 

Se a página já tiver head, body, CSS não repita eles no contato.php. Deixe nele só o conteúdo a ser mostrado.

 

O $page faz todo o resto incluindo no lugar determinado :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

aaaaaaaahhhh não acredito!

 

então eu não vou ter as páginas finais em arquivos, pois elas serão juntas na hora né?!

 

é só ir criando os conteúdos em arquivos php separados, que quando o endereço for solicitado tudo vai se juntar 'online'?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

aaaaaaaahhhh não acredito!

 

então eu não vou ter as páginas finais em arquivos, pois elas serão juntas na hora né?!

 

é só ir criando os conteúdos em arquivos php separados, que quando o endereço for solicitado tudo vai se juntar 'online'?!

ééééé

 

:clap:

 

hehe

 

Sugiro que releia o tópico.

 

:seta: Funciona desse mesmo jeito

Compartilhar este post


Link para o post
Compartilhar em outros sites

que mágico! ;)

 

nossa, demais!!! Obrigada pela paciência gente, vcs foram ótimos! É simples, mas quando nunca se ouviu falar sobre isso, parece que não entra na cabeça...! hehe

 

Tomara que dê certo, pois as divs do conteúdo tem imagens de fundo, alturas e larguras definidas...bom, vou tentar e qualquer coisa eu volto! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de tudo teste e releia o tópico quantas vezes for preciso. Tá tudo explicado!

 

Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza Diéssica!! Pode deixar!

Obrigada 2, boa noite!

 

Gente!

 

Eu colei o código no lugar que eu queria, e o dreamweaver acusou um erro de sintaxe na segunda linha do código:

 

<?php

$page = isset($_GET['page']) ? addslashes(trim($_GET['page']) : false;

 

if( $page != false ) {

 

include( "$page.php" );

 

} else {

 

header( "Location: 404.php" );

} ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu essa mensagem com o dele:

Parse error: syntax error, unexpected ':' in /home/storage/e/d3/48/centrodeestudosdador/public_html/um/index.php on line 59 (que é a segunda linha do código!)

 

 

Diéssica, o seu é mesmo esquema, só copiar e colar na página do layout, onde o conteudo vai mudar?

 

esse bloco do final:

else {

include("home.php");

}

 

não terei de mudar o "home.php" para cada nome de arquivo novo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu essa mensagem com o dele:

Parse error: syntax error, unexpected ':' in /home/storage/e/d3/48/centrodeestudosdador/public_html/um/index.php on line 59 (que é a segunda linha do código!)

 

 

Diéssica, o seu é mesmo esquema, só copiar e colar na página do layout, onde o conteudo vai mudar?

 

esse bloco do final:

else {

include("home.php");

}

 

não terei de mudar o "home.php" para cada nome de arquivo novo?

 

Não, não precisará mudar. O home é a sua página padrão e quando nenhum parâmetro ?page= for setado, o usuário vai ter renderizado (impresso) o conteúdo do home.php. Entendeu? É basicamente a sua página inicial ou padrão - aquela que será exibida quando o usuário acessar o site.

 

Com relação ao erro de sintaxe, peço desculpas porque eu fiz rapidasso aqui no iMasters mesmo e nem revisei ele. Mas é que faltou um parêntesis:

 

$page = isset($_GET['page']) ? addslashes(trim($_GET['page'])) : false;

Só substituir que tudo vai funcionar normal.

 

Mas utilize o código da Diéssica. Ele está mais validado, verificando se o arquivo existe (senão, redireciona para a 404) e et cetera.

 

A técnica é a mesma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica, o seu é mesmo esquema, só copiar e colar na página do layout, onde o conteudo vai mudar?

 

esse bloco do final:

else {

include("home.php");

}

 

não terei de mudar o "home.php" para cada nome de arquivo novo?

Sim, mesmo esquema.

 

Não terá que alterar. Esse home.php só é a página padrão, como tu vai pôr no index, tem que já ter uma página incluída ali.

 

Daí só vai puxando depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica, estou com um problema.... :(

 

criei a página index com os códigos PHP certinhos q você me passou e está funcionando ok!

 

Mas o menú principal, está apresentando problemas, apenas quando aberto no IE8.

 

O código do menú:

 

<ul class="navmain">
   <li><a href="?page=sobre">Sobre o CEDM</a>
</li>
   <li><a href="?page=clinica">Clínica</a>
</li>
<li><a href="?page=cursos">Cursos</a>
</li>
<li><a href="?page=sports">Sports</a>
</li>
   <li><a href="?page=prevencao">Prevenção da Dor</a>
</li>
<li><a href="?page=estudos">Centro de Estudos</a>
</li>
<li><a href="?page=contato">Contato</a>
   </li>
</ul>

 

 

 

 

Ele abre as páginas certinhas, mas o que acontece é que a formatação (o CSS) não está sendo aplicado a esses links. Eles ficam todo sem formatação, como você pode ver aqui se você tiver o IE8: http://www.centrodeestudosdador.com.br/um/index.php?page=home

 

Engraçado que apenas os links não ficam com o CSS!

 

E apenas quando estão com a 'class="on"' que apliquei nas páginas internas nos links que possuem o nome da sessão para eles ficarem azuis mostrando que estão naquela página, o CSS funciona!

 

 

ps: só existem as páginas sobre.php e clinica.php por enquanto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pamela, não faço ideia de como é pra ser a tua página com formatação, então achei normal. Pode mostrar um print da página normal e da página com o problema?

 

-----------------------------------

 

Entendi um pouco.

 

Tu usou a:link (apenas para o link normal), aí os links que já foram visitados ficam sem formatação mesmo. Tem que determinar a mesma formatação pros links que já foram visitados.

 

Usa a ao invés de a:link na navegação. Irá manter um padrão entre todos os links, irá mudar apenas se fizer uma formatação específica (ex.: a:hover).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica, eu te amo!!!! Tudo ok! :)

 

vou já tirar então o ":link" de todos os "a" né!

Sim, aí tu mantém um padrão. De preferência, não usa a:link, usa sempre a mesmo.

 

:bye:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos! Sobre o código abaixo:

 

<?php
if(isset($_GET['page']) && $_GET['page'] != "") {
$page = $_GET['page'];
$page = str_replace(".", "", $page);
$page = str_replace("firstime", "home", $page);
$page = "". $page .".php";
if(file_exists($page)) {
include("$page");
}
else {
include("404.php");
}
}
else {
include("home.php");
}       
?>

 

Estou com uma dúvida nele. Li esse post umas 10 vezes e ainda to viajando em uma parte.

 

Como é dito no post, colocamos ele dentro de "conteudo" para mudar só o conteudo. Até ai de boa. Porém, quando uso ele aqui, ele vai direto para a pagina 404.php. Essa parte que não entendi, ele não deveria abrir a minha index nomalmente e só depois que clicar em um link por exemplo ai sim ele iria verificar se a pagina existe e então abri-la?

 

Eu fiz um teste mudando o 404.php por index.php e então abriu normal e quando cliquei no link para testar deu normal também. Mas o certo é deixar lá o 404.php e a minha index deveria abrir normal, não?

 

Vlw.

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.