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

Olá!

 

Sou iniciante em fazer site, e gostaria de saber qual a melhor opção que vcs indicariam para se criar várias páginas iguais, e só mudar o conteúdo?

 

 

Tinha optado pelo "modelo de página" do Dreamweaver, mas fui atualizar o modelo agora e está demorando mais do que 20 minutos para atualizá-lo em somente 3 páginas diferentes! =b

 

E o site vai ter umas 40 quase! =b

 

 

E então, qual método vcs indicam? Pode ser outro além desses se ainda tiver outro modo...eu não mecher com nenhum mesmo, terei de aprender! =b

 

 

 

 

ps: E o site é pra um centro de fisioterapia, portanto ele precisa ser bem visto pelo Google tb...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A melhor solução é trabalhar com os includes PHP.

 

Frames são praticamente obsoletos e os modelos de página do Dreamweaver não prestam.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse a Diéssica, o ideal é utilizar os includes. Mas para facilitar a sua pesquisa, busque por QueryString.

 

Na lógica, você vai sempre manter o mesmo formato e só vai "incluir" o conteúdo em cada uma dessas páginas.

 

Mas como fazer isso de forma dinâmica? Bom, daí temos o PHP e o include, como já citado.

 

Veja um exemplo:

<html>
  <header>
     <title>Meu site</title>
  </header>
  <body>
<?php
// Aqui ele vai verificar se existe um parâmetro para $_GET na URL.
$page = isset($_GET['page']) ? addslashes(trim($_GET['page']) : false;

// Se tiver parâmetro, então...
if( $page != false ) {
   //... inclui o nome do parâmetro vindo do $_GET.
   include( "$page.php" );
// Ou então...
} else { 
   // Redireciona para uma página de erro
   header( "Location: 404.php" );
} ?>
  </body>
</html>

 

Basicamente é isso.

 

E para a brincadeira funcionar, você deve indicar os links assim:

http­://w­ww.meusite.com.br/index.php?page=contato

 

Onde, no nosso caso, contato é o valor do parâmetro page, e é a página pela qual a QueryString irá incluir através do include.

 

Ou seja, o site vai ser sempre o mesmo, o que vamos ter de diferente é de fato o conteúdo, que será chamado pelo o include (no nosso caso, novamente, como o parâmetro é contato, ele irá chamar o arquivo contato.php, que será o arquivo responsável por tal página).

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigada gente!

 

Guilherme, não entendi o porquê desse tal de QueryString....

 

Achei esse vídeo aqui na net, e entendi tudinho, não posso fazer assim?

Video-aula

 

 

E uma questão: Usando esse includes PHP, parece que eu não tenho como alterar os títulos de cada página, ou tenho?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse a Diéssica, o ideal é utilizar os includes. Mas para facilitar a sua pesquisa, busque por QueryString.

 

[...]

Guilherme é gênio! Complementa tudo sempre...

 

Outra dica, se não quiser utilizar QueryString, é fazer os includes como nos temas do Wordpress, por exemplo.

 

Aí uma estrutura simples:

<div id="siteloko">
<?php include('header.php'); ?>
<?php include('menu.php'); ?>
<?php include('sidebar.php'); ?>
<div id="conteudo">
<h1>Página</h1>
<p>
Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo 
</p>
</div>
<?php include('rodape.php'); ?>
</div>

Ficou meio confuso porque fiz aqui mesmo e não deu pra pôr as margens de bloco :(

 

E uma questão: Usando esse includes PHP, parece que eu não tenho como alterar os títulos de cada página, ou tenho?!

:seta: http://wbruno.com.br/blog/2011/11/25/trocando-title-da-pagina-em-navegacao-por-query-string-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica, eu posso fazer esse método mais simples para os conteúdos das páginas, e daí utilizar esse metódo com querystring para mudar os títulos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica, eu posso fazer esse método mais simples para os conteúdos das páginas, e daí utilizar esse metódo com querystring para mudar os títulos?

 

Exatamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que serve o querystring, q diferença prática ele tem desse método simples?

 

Obrigada Guilherme! E eu não preciso instalar nada para esse Querystring funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica, eu posso fazer esse método mais simples para os conteúdos das páginas, e daí utilizar esse metódo com querystring para mudar os títulos?

Não.

 

Daí faz normal, é só pra seguir um padrão de header, menu, sidebar e rodapé. Entendeu?

 

Página Sobre:

<html>
<head>
<title>Página Sobre</title>
</head>
<body>
<div id="siteloko">
<?php include('header.php'); ?>
<?php include('menu.php'); ?>
<?php include('sidebar.php'); ?>
<div id="conteudo">
<h1>Sobre</h1>
<p>
Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo 
</p>
</div>
<?php include('rodape.php'); ?>
</div>
</body>
</html>

 

Página Serviços:

<html>
<head>
<title>Página Serviços</title>
</head>
<body>
<div id="siteloko">
<?php include('header.php'); ?>
<?php include('menu.php'); ?>
<?php include('sidebar.php'); ?>
<div id="conteudo">
<h1>Serviços</h1>
<p>
Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo 
</p>
</div>
<?php include('rodape.php'); ?>
</div>
</body>
</html>

 

Nos dois códigos, a diferença é no title e no h1, pra identificar em que página o usuário está.

 

Os arquivos são autoexplicativos, mas vou explicar...

header.php = Cabeçalho da página

menu.php = Navegação da página

sidebar.php = Colunas da página

rodape.php = Rodapé da página

 

O Guilherme não tinha entendido, hehe

 

O link pro post do William Bruno é pra caso tu usar o metódo QueryString, se usar o metódo mais simples aquele não tem nada a ver...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que serve o querystring, q diferença prática ele tem desse método simples?

Ele é mais dinâmico e, na minha opinião, semântico. Veja que se utilizarmos o método que eu falei, basta você criar os arquivos correspondentes às páginas que você quer adicionar e exibir o conteúdo - sem ter que incluir nada em cada página que você cria.

 

Mas lembre-se: os dois modelos são válidos. Utilize o que lhe fazer mais confortável.

 

Obrigada Guilherme! E eu não preciso instalar nada para esse Querystring funcionar?

Negativo. Basta ter o PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que serve o querystring, q diferença prática ele tem desse método simples?

Pamela, já tá tudo explicado.. É só fazer o que achar melhor pro site que tu vai fazer! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não.

 

Daí faz normal, é só pra seguir um padrão de header, menu, sidebar e rodapé. Entendeu?

 

Página Sobre:

<html>
<head>
<title>Página Sobre</title>
</head>
<body>
<div id="siteloko">
<?php include('header.php'); ?>
<?php include('menu.php'); ?>
<?php include('sidebar.php'); ?>
<div id="conteudo">
<h1>Sobre</h1>
<p>
Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo 
</p>
</div>
<?php include('rodape.php'); ?>
</div>
</body>
</html>

 

Página Serviços:

<html>
<head>
<title>Página Serviços</title>
</head>
<body>
<div id="siteloko">
<?php include('header.php'); ?>
<?php include('menu.php'); ?>
<?php include('sidebar.php'); ?>
<div id="conteudo">
<h1>Serviços</h1>
<p>
Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo Parágrafo do conteúdo 
</p>
</div>
<?php include('rodape.php'); ?>
</div>
</body>
</html>

 

Nos dois códigos, a diferença é no title e no h1, pra identificar em que página o usuário está.

 

Os arquivos são autoexplicativos, mas vou explicar...

header.php = Cabeçalho da página

menu.php = Navegação da página

sidebar.php = Colunas da página

rodape.php = Rodapé da página

 

O Guilherme não tinha entendido, hehe

 

O link pro post do William Bruno é pra caso tu usar o metódo QueryString, se usar o metódo mais simples aquele não tem nada a ver...

 

Na verdade, eu tinha entendido ahuahuahu. E sim, ela pode utilizar um título dinâmico para apenas um header (isso, inclusive, torna tudo mais dinâmico e de melhor performance), entretanto, eu ignorei o fato dela estar começando agora e já parti para o mais grosso.

 

O mais indicado para se começar justamente pela facilidade, é da forma que a Diéssica falou, Pamela. :grin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza gente, é que vcs foram tão ativos que queria aproveitar o máximo de vcs hehe.... :)

 

Valeu! Qualquer coisa eu volto!

 

Tópico resolvido!

 

hehe Obrigada Guilherme, vou tentar pelo método da Diéssica então!

 

só mais uma coisinha: daí eu tenho q salvar tds as páginas com o final .php ao inves de .html, né?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, eu tinha entendido ahuahuahu. E sim, ela pode utilizar um título dinâmico para apenas um header (isso, inclusive, torna tudo mais dinâmico e de melhor performance), entretanto, eu ignorei o fato dela estar começando agora e já parti para o mais grosso.

 

O mais indicado para se começar justamente pela facilidade, é da forma que a Diéssica falou, Pamela. :grin:

Ah sim. O header seria só o cabeçalho separado, e as tags iriam direto na página, pois é o metódo mais simples mesmo.

 

Mas pra 40 páginas eu usaria querystring, sinceramente..

 

só mais uma coisinha: daí eu tenho q salvar tds as páginas com o final .php ao inves de .html, né?!

Sim, pros 2 metódos, pois ambos utilizam include PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e esses arquivos que vão ser inclusos, precisam ter todo aquele cabeçalho do html, com link para o .css?

Viu a estrutura que te mostrei? É basicamente aquilo...

 

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

 

Desculpa, entendi errado.

 

O header.php, menu.php não, pois eles vão ser inclusos na página... Online vai ficar como se aquilo tudo não tivesse feito por include, e sim diretamente. Entende?

 

Testa aí!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim. O header seria só o cabeçalho separado, e as tags iriam direto na página, pois é o metódo mais simples mesmo.

 

Mas pra 40 páginas eu usaria querystring, sinceramente..

 

 

Sim, pros 2 metódos, pois ambos utilizam include PHP.

 

Por isso mesmo achei melhor fazer o título dinamicamente. Imagine ter que alterar título página por página entre 40 páginas, ahahahah.

 

 

e esses arquivos que vão ser inclusos, precisam ter todo aquele cabeçalho do html, com link para o .css?

Basicamente, sim.

 

Uma alternativa mais reutilizável que fará com que isso não aconteça é utilizando o método que descrevi aqui.

 

Pense que isso o que eu falei é semanticamente o que você quer:

 

Sou iniciante em fazer site, e gostaria de saber qual a melhor opção que vcs indicariam para se criar várias páginas iguais, e só mudar o conteúdo?

 

Com essa técnica, você vai ter páginas iguais e só vai alterar o conteúdo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu header.php é assim:

<div id="cabecalho">Meu site</div>

 

Meu sobre.php OFFLINE:

<html>
<head>
<title>Página Sobre</title>
</head>
<body>
<div id="siteloko">
<?php include('header.php'); ?>

[...]

(Deixei só um pedaço pra não ter que fazer todos)

 

Meu sobre.php ONLINE:

<html>
<head>
<title>Página Sobre</title>
</head>
<body>
<div id="siteloko">
<div id="cabecalho">Meu site</div>

[...]

 

Como viu, o header.php foi simplesmente incluído. E tu vai usar o mesmo pra todas as páginas. É esse o funcionamento.

 

O mesmo pra menu.php, sidebar.php e rodape.php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 que vai mudar de página em página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

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

 

if( $page != false ) {

 

include( "$page.php" );

 

} else {

 

header( "Location: 404.php" );

} ?>

 

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

 

Sim.

Na mesma página.

 

O Guilherme já explicou tudo.

 

Só fazer um link na página:

<a href="?page=eu">Eu</a>

Vai chamar a página eu.php no local onde está o código através do $page. A página não precisa ter aquele head com title, CSS, porque do mesmo jeito que eu expliquei acima, vai ficar incluída na página como se fosse feito diretamente.

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.