Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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...
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" ); header( "Location: 404.php" );
} ?>
</body>
</html>
Basicamente é isso.
E para a brincadeira funcionar, você deve indicar os links assim:
http://www.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?
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?
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?!
>
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/
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?
>
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.
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?
>
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...
>
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.
>
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! :)
>
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:
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é?!
>
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.
e esses arquivos que vão ser inclusos, precisam ter todo aquele cabeçalho do html, com link para o .css?
>
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í!
>
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.
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.
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?
>
<?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.
>
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.
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!
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?!
>
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:
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'?!
>
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
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.