Páginas dinâmicas em PHP. PHP. Criação de página dinâmica Crie um componente de renderização de página regular

Na última lição, descobrimos em que blocos consistirá o modelo de viagem, para que possamos começar a trabalhar. Primeiro, vamos criar duas pastas:

imagens - esta pasta conterá todos os arquivos gráficos usados ​​para projetar o modelo. Porque Ainda não temos nenhum desenvolvimento de design, então coloque qualquer arquivo gráfico nesta pasta, caso contrário, o Joomla não instalará o modelo e apresentará um erro se a pasta estiver vazia.

ATENÇÃO: A pasta de imagens de modelos não contém conteúdo gráfico!

css - esta pasta conterá arquivos de folhas de estilo em cascata. Primeiro, vamos colocar um arquivo template.css vazio nele, que será usado para atribuir diferentes estilos de design aos elementos do site.

Em seguida, você pode começar a criar o arquivo principal index.php, que determinará a disposição visual dos elementos do site e informará ao CMS Joomla em qual bloco colocar vários componentes e módulos. O arquivo é uma combinação de PHP e HTML.

Eu sempre uso apenas o Macromedia Dreamweaver ao escrever código. Um excelente programa, recomendo fortemente para iniciantes, porque... Se você cometeu um erro ao trabalhar no código, o programa certamente destacará seu erro.

No site você encontrará um tutorial sobre o Macromedia Dreamweaver. Se você pretende desenvolver sites, então deve dominar este programa, pelo menos no nível inicial, para poder editar códigos de template sem erros.

O posicionamento dos elementos da página (blocos) é feito utilizando código HTML especificamente, utilizaremos tags DIV; Mas a forma como nosso site funcionará no motor Joomla, ou seja, será dinâmico, então você também terá que usar a linguagem PHP. Com sua ajuda, determinaremos em quais blocos estarão localizadas as posições dos módulos de saída, e como serão chamadas essas posições, se os blocos serão recolhidos ou não. Conectaremos folhas de estilo de arquivos externos, o idioma do conteúdo, definiremos como o tamanho do site será alterado, etc.

index.php

Cabeçalho do arquivo

O cabeçalho do arquivo consiste em várias partes. A primeira parte do código do cabeçalho PHP é garantir que o arquivo não seja acessado diretamente, por motivos de segurança.

< ?php
definido ("_JEXEC" ) ou die ;
JHtml::_("behavior.framework", verdadeiro);
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> versão xml = "1.0" codificação = " < ?php echo $esse-> _charset ?> "?>

DOCTYPE é um parâmetro muito importante com base no qual o navegador decide como renderizar esta página e como interpretar o CSS.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: // www.w3.org/ TR/ xhtml1/ DTD/ xhtml1-strict.dtd">

O trecho a seguir recupera o idioma instalado da configuração global.

< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= " < ?php echo $esse-> idioma; ?> " idioma = " < ?php echo $esse-> idioma; ?> " dir = " < ?php echo $esse-> direção; ?> " >

A seguir está um trecho de código que inclui informações adicionais de cabeçalho definidas na configuração global. Você pode ver essas informações observando o código-fonte de qualquer página da web. Em particular, estas são meta tags, que você já conhece.

< head>
< jdoc:include type= "head" / >

As linhas de cabeçalho a seguir contêm links para os principais estilos CSS do Joomla.

< link rel= "stylesheet" href= "< ?php echo $esse-> baseurl ?> /templates/sistema/css/sistema .css" tipo = "texto /css" / >
< link rel= "stylesheet" href= "< ?php echo $esse-> baseurl ?> /templates/sistema/css/general.css" tipo = "texto /css" / >

Para usar estilos de design de modelo, vinculamos a um arquivo contendo folhas de estilo em cascata template.css, que está localizado na pasta CSS. Não importa que este arquivo esteja vazio por enquanto, o principal é conectá-lo, trataremos do design mais tarde, quando instalarmos o template no Joomla. Isso tornará mais fácil observar o resultado.

< link rel= "stylesheet" href= "< ?php echo $esse-> url base ?> /templates/< ?php echo $esse-> modelo ?> /css/template.css" tipo = "texto /css" / >

O trecho de código a seguir nos permite recolher as colunas esquerda ou direita se não houver módulos localizados nas posições esquerda e direita. Se ambas as colunas estiverem recolhidas, o conteúdo ocupará 100% da largura da página. Se apenas uma coluna for incluída, o conteúdo ocupará 80%. Com duas colunas habilitadas, o conteúdo representa 60% da largura da página.

< ?php
se ($ esse-> countModules("esquerda e direita" ) = = 0) $contentwidth = "100" ;
se ($ esse-> countModules("esquerda ou direita" ) = = 1) $contentwidth = "80" ;
se ($ esse-> countModules("esquerda e direita" ) = = 1) $contentwidth = "60" ;
?>

Fechamento do cabeçalho

< / head>

< body>

O bloco “página” contém o design apenas da página do site, que terá 950px de largura.

< div id= "page" >

O bloco "top" está localizado no topo da página e contém dois blocos "logotipo" e "usuário1".

< div id= "top" >

No bokeh “logotipo” colocaremos um arquivo gráfico do logotipo; este será especificado nas folhas de estilo. Mas escrevemos a exibição automática do nome do site no arquivo index.php e colocamos o nome na tag H1, que é muito importante para a otimização de mecanismos de busca.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("nomedosite"); ?>< / h1>
< / div>

Vamos definir a posição “user1” no bloco de mesmo nome para exibir o módulo de busca do site.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

Saída do módulo de menu horizontal no bloco “user2” na posição “user2”. O bloco entrará em colapso se não houver nenhum módulo naquela posição.

< ?php if ($esse-> countModules("usuário2") ): ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Em seguida vem o bloco do cabeçalho do site. Nele definiremos a posição do “cabeçalho” para exibição dos módulos. O bloco entrará em colapso se não houver nenhum módulo naquela posição. Expandi intencionalmente as capacidades deste bloco para poder colocar nele não apenas a imagem do cabeçalho, mas também rotadores de imagem.

< ?php if ($esse-> contagemMódulos(" cabeçalho") ) : ?>
< div id= "cabeçalho">
< jdoc:include type= "modules" name= "cabeçalho" estilo = "xhtml" / >
< / div>
< ?php endif ; ?>

No bloco “user3” definimos a posição “user3” para módulos de saída.

O bloco entrará em colapso se não houver saída do módulo nesta posição "user3".

< ?php if ($esse-> countModules("usuario3") ) : ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Um bloco da coluna esquerda é aberto, que entrará em colapso se não houver módulos na posição “esquerda”.

< ?php if ($esse-> countModules("esquerda") ) : ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Abre-se o bloco de conteúdo mais importante, que pode ocupar 100% da largura da página, 80% e 60%, dependendo do número de colunas incluídas.

< div id= "content< ?php echo $contentwidth ; ?> " >

Exibindo mensagens em componentes

< jdoc:include type= "message" / >

Conteúdo de conteúdo de saída.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

Um bloco da coluna direita é aberto, que entrará em colapso se não houver módulos na posição “direita”.

< ?php if ($esse-> countModules("direita") ): ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Saída do bloco “rodapé”, destinado a exibir o módulo “código HTML” com informações de copyright. Você também pode colocar um menu horizontal inferior ou um módulo de apresentação de conteúdo aqui. O bloco será recolhido se mais de um módulo for exibido nesta posição de “rodapé”

< ?php if ($esse-> countModules("rodapé") ): ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

O bloco de página do site “página”, corpo e todo o código são fechados.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Criamos um arquivo index.php completo. Agora você sabe quais comandos são usados ​​e em que sequência os blocos do modelo são exibidos.

ATENÇÃO: Para que o código do template possa ser lido no painel de administração do joomla, o arquivo index.php deve ser aberto no editor AkelPad e salvo na codificação UTF-8, desmarcando a caixa de seleção BOM. Se você usou o programa Macromedia Dreamweaver para trabalhar com o arquivo, então você precisa selecionar “Editar”> “Propriedades da página” no menu superior e selecionar a codificação do documento Unicode (utf-8) e desmarcar “ativar assinaturas Unicode (BOM )”. No entanto, eu recomendo fortemente que você não edite o código do painel de administração do Joomla, se você errar alguma coisa - não há como voltar atrás, ao contrário do programa Macromedia Dreamweaver, onde você sempre pode desfazer as alterações feitas.

O design dos blocos em si será descrito em template.css. Mas iremos configurar folhas de estilo após instalar o template no Joomla 3 (joomla 2.5), e para isso precisamos criar

Muitos leitores de qualquer livro sobre computadores passam rapidamente por tudo que não é de interesse imediato e passam para o que realmente precisam. querer saber. Pessoalmente, é isso que eu faço. No entanto, não há nada de errado com isso - raramente existem livros técnicos que precisam ser lidos de capa a capa. Ou talvez tenha sido isso que você fez – pulou os oito capítulos iniciais e escolheu este capítulo porque tinha o título mais interessante? E quem quer perder tempo com detalhes quando outro projeto está pegando fogo no trabalho?

Felizmente, essa pressa não o impedirá de dominar adequadamente o material da segunda parte do livro, que é dedicada ao uso do PHP para construir sites e interagir com a Web. Neste capítulo, você aprenderá como modificar facilmente o conteúdo de páginas da Web e navegar na Web usando links e diversas funções padrão. O próximo capítulo complementará o material apresentado - examina detalhadamente os meios de interação com o usuário em formulários HTML. O Capítulo 11 descreve a organização da interface com bancos de dados. Os capítulos restantes da segunda parte discutem aspectos não triviais da programação web em PHP.

No entanto, deve ser lembrado que o material da Parte 1 absolutamente necessário para conhecimento normal de PHP. Presume-se que você já leu a Parte 1, portanto os exemplos usarão muitos dos conceitos descritos anteriormente. Portanto, se você folhear parte do livro, terá que voltar aos capítulos anteriores de vez em quando e atualizá-lo.

Links simples

<а href = "date.php">

$link = "data.php";

imprimir "<а href = \"$link\">Ver a data de hoje
\n"

Você provavelmente está se perguntando por que há uma barra invertida (\) antes das aspas (") no código do link? O fato é que as aspas em PHP são caracteres especiais e são usadas como delimitadores de linha. Portanto, aspas são literais em strings devem ser protegidos .

Se ter que escapar das aspas te incomoda, simplesmente habilite o modo magic_quotes_gpc em seu arquivo php.ini. O resultado são todos apóstrofos, aspas, barras invertidas e caracteres nulos. são escapados automaticamente no texto!

Vamos desenvolver o exemplo dado. Para exibir rapidamente uma lista de links no navegador, você pode usar um array:

//Cria um array de seções

$conteúdo - array("tutoriais", "artigos", "scripts", "contato");

// Itera e exibe sequencialmente cada elemento do array

para ($i = 0; $i< sizeof($contents; $i++)

imprimir " ".$conteúdo[$i]."
\n";

// - designação especial para ponto marcador endfor;

Componentes de arquivo (modelos)

Chegamos a um dos meus recursos favoritos do PHP. Um modelo (em relação à programação web) é uma parte de um documento web que você usará em várias páginas. Os modelos, como as funções PHP, evitam que você copie/cole desnecessário o conteúdo da página e o código do programa. À medida que a escala do site aumenta, aumenta a importância dos templates, pois permitem fazer modificações de forma fácil e rápida ao nível de todo o site. Esta seção descreverá algumas das possibilidades que se abrem ao usar modelos simples.

Normalmente, partes comuns de conteúdo/código (ou seja, modelos) são salvas em arquivos separados. Ao construir um documento web, você simplesmente “inclui” esses arquivos nos locais apropriados da página. No PHP existem duas funções para isso: include() e require().

include() e require()

Um dos aspectos mais marcantes do PHP é a capacidade de construir templates e bibliotecas de programação e depois inseri-los em novos scripts. O uso de bibliotecas economiza tempo e esforço no uso de funcionalidades comuns em diferentes sites. Leitores com

Experiência de programação em outras linguagens (como C, C++ ou Java) e familiaridade com o conceito de bibliotecas de funções e seu uso em programas para estender funcionalidade.

A inclusão de um ou mais arquivos em um script é feita usando as funções padrão do PHP require() e include(). Como será mostrado na próxima seção, cada uma dessas funções se aplica a uma situação específica.

Funções

Existem quatro funções em PHP para incluir arquivos em scripts PHP:

  • incluir();
  • include_once();
  • exigir();
  • requer uma vez().

Apesar da semelhança de nomes, essas funções resolvem problemas diferentes.

A função include() inclui o conteúdo de um arquivo no script. A sintaxe da função include() é:

incluir (arquivo arquivo]

A função include() tem um recurso interessante – ela pode ser executada condicionalmente. Por exemplo, se uma chamada de função estiver incluída em um bloco de comando if. então o arquivo será incluído no programa somente se a condição if for verdadeira. Se a função includeO for usada em um comando condicional, então deve ser colocados entre chaves ou delimitadores alternativos. Compare as diferenças de sintaxe entre as Listagens 9.1 e 9.2.

Listagem 9.1. Uso incorreto de include()

se (alguma_condicional)

include("text91a.txt"); outro

include("text91b.txt");

Listagem 9.2. Uso correto de include()

se (alguma_condicional):

include("text91a.txt");

include("text91b.txt");

Todo o código PHP no arquivo de inclusão Necessariamente está em tags PHP. Não presuma que simplesmente salvar um comando PHP em um arquivo garantirá que ele seja processado corretamente:

Em vez disso, você precisa agrupar o comando em tags apropriadas, como mostra o exemplo a seguir:

print "este é um arquivo de inclusão inválido";

A função include_once() faz o mesmo que include(), com uma exceção: antes de incluir um arquivo no programa, ela verifica se ele já foi incluído. Se o arquivo já tiver sido incluído, a chamada include_once() será ignorada e, caso contrário, ocorrerá a inclusão padrão do arquivo. Em todos os outros aspectos, include_once() não é diferente de include(). A sintaxe da função include_once() é:

include_once(arquivo arquivo)

Em geral, a função require() é semelhante a include() - ela também inclui o modelo no arquivo no qual a chamada require() está localizada. A sintaxe da função require() é:

exigir (arquivo arquivo)

No entanto, há uma diferença importante entre as funções require() e include(). O arquivo especificado por require() é incluído no script, independentemente da localização de require() no script. Por exemplo, se você chamar requi re() em um bloco if, se a condição for falsa, o arquivo ainda será incluído no script!

Em muitas situações, é conveniente criar um arquivo com variáveis ​​e outras informações que são utilizadas em todo o site e depois incluí-lo conforme necessário. Embora o nome desse arquivo seja arbitrário, geralmente o chamo de init.tpl (abreviação de "initializaion.template"). A Listagem 9.3 mostra a aparência de um arquivo init.tpl muito simples. Na Listagem 9.4, o conteúdo de init.tpl está incluído no script com require().

Listagem 9.3. Exemplo de um arquivo de inicialização

$site_title = "Receitas PHP";!}

$contato_email = " [e-mail protegido]";

$contact_name = "WJ Gilmore";

Listagem 9.4. Usando o arquivo init.tpl

<? print $site_title; ?>

\"mai1 para:$contact_email\">$contact_name."; ?>

Passar uma URL ao chamar require() só é permitido se o modo “URL fopen wrappers” estiver habilitado (este modo está habilitado por padrão).

À medida que o tamanho do site aumenta, pode acontecer que alguns arquivos sejam incluídos no script várias vezes. Às vezes isso não causa problema, mas em alguns casos, incluir o arquivo novamente faz com que os valores das variáveis ​​alteradas sejam redefinidos. Se o arquivo de inclusão definir funções, poderão ocorrer conflitos de nomenclatura. Dito isso, chegamos à próxima função – require_once().

A função require_once() garante que o arquivo seja incluído no script apenas uma vez. Depois que requi re_once() for chamado, todas as tentativas adicionais de incluir o mesmo arquivo serão ignoradas. A sintaxe da função require_once() é:

Você provavelmente começará a usar recursos de inclusão de arquivos com mais frequência à medida que seus aplicativos Web começarem a crescer em tamanho. Essas funções aparecem frequentemente em exemplos deste livro para reduzir a redundância de código. Os primeiros exemplos são discutidos na próxima seção sobre os princípios de construção de modelos básicos.

Componentes de construção

Ao definir a estrutura de uma página web típica, normalmente a divido em três partes: cabeçalho, corpo e rodapé. Via de regra, a maioria dos sites bem organizados tem um cabeçalho que permanece praticamente inalterado; a parte principal exibe o conteúdo solicitado do site, por isso muda com frequência; Finalmente, o rodapé contém informações de direitos autorais e links de navegação. O rodapé, assim como o cabeçalho, geralmente permanece inalterado. Não me interpretem mal – não estou tentando suprimir suas aspirações criativas. Já vi muitos sites excelentes que não seguem esses princípios. Estou apenas tentando criar uma estrutura geral que possa servir como ponto de partida para trabalhos futuros.

Cabeçalho

Um arquivo de cabeçalho (como o da Listagem 9.5) aparece em quase todos os meus sites habilitados para PHP. Este arquivo contém

informações de todo o site, como título, informações de contato e alguns componentes do código da página HTML.

Listagem 9.5. Exemplo de arquivo de cabeçalho

// Arquivo: header.tpl

// Finalidade: arquivo de cabeçalho do site PhpRecipes.

$site_name = "PHPRecipes";

$site_email= " [e-mail protegido]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

//Imprime a data e hora atuais

imprimir data("F d, h:i a");

Muitas vezes, o acesso aos arquivos incluídos pelos visitantes é restrito, especialmente se esses arquivos contiverem informações confidenciais (por exemplo, senhas). No Apache, você pode impedir que certos arquivos sejam visualizados editando os arquivos http.conf ou htaccess. O exemplo a seguir mostra como impedir a visualização de todos os arquivos com extensão .tpl:

Ordem permitir, negar

Permitir de 127.0.0.1

Questões de segurança de PHP e sites são abordadas em detalhes no Capítulo 16.

Título em execução

O rodapé geralmente é a informação localizada na parte inferior das páginas de um site – informações de contato, links e informações de direitos autorais. Essas informações podem ser colocadas em um arquivo separado e incluídas como modelo da mesma forma que um cabeçalho. Digamos que com o início do novo ano você precise alterar as informações de direitos autorais e trazê-las para o formato “Copyright © 2000-2001”. Existem duas opções: passar a véspera de Natal editando freneticamente centenas de páginas estáticas. ou use um modelo como o mostrado na Listagem 9.6. Uma simples mudança e você poderá voltar à sua rotina de férias.

Listagem 9.6. Exemplo de arquivo de rodapé (footer.tpl)

contato |

sua privacidade

Observe o uso da variável global $site_email no arquivo de rodapé. O valor desta variável abrange toda a página e presumimos que os arquivos header.tpl e footer.tpl serão incluídos em uma página final. Observe também a presença de $site_path no link Privacidade. Eu sempre incluo o caminho completo para todos os links em meus modelos - se o URL do link fosse apenas privacidade.php, o arquivo de rodapé seria codificado para um diretório específico.

Parte principal

A parte principal da página contém o conteúdo do cabeçalho e rodapé. Em essência, é a parte principal que contém as informações que interessam aos visitantes do site. O cabeçalho parece impressionante, o rodapé contém informações úteis, mas é na parte principal da página que os usuários retornam ao site continuamente. Embora eu não possa fornecer nenhum conselho sobre a estrutura específica da página, modelos como o da Listagem 9.7 simplificam bastante a administração da página.

Listagem 9.7. Exemplo da parte principal da página (index_body.tpl)

/tutorials.php">tutoriais

artigos

scripts

contato

Bem-vindo ao PHPRecipes. o ponto de partida para scripts PHP, tutoriais,

e informações sobre culinária gourmet!

Todos juntos: cabeçalho, rodapé e corpo

Talvez meu humor seja melhor resumido por uma frase do Coronel “Hannibal” Smith (George Peppard) da famosa série de TV “The A-Team”: “Adoro quando as coisas se encaixam”. Estou passando por algo semelhante, onde modelos diferentes se reúnem para formar um documento da web completo. Combinando três seções do documento: header.tpl, index_body.tpl e footer.tpl, você pode construir rapidamente uma página simples como a mostrada na Listagem 9.8.

Listagem 9.8. Construindo uma página index.php incluindo vários arquivos

//Arquivo: index.php

// Destino: página inicial do PHPRecipes

//Imprime o título

include("header.tpl");

//Sai da parte principal

include("index_body.tpl");

//Mostra o rodapé

include("rodapé.tpl");

Então, como? Três comandos simples e você terá uma página finalizada. O texto da página final é mostrado na Listagem 9.9.

Listagem 9.9. Página HTML construída na Listagem 9.8 (index.php)

Receitas PHP

23 de agosto, 15h17

tutoriais

artigos

roteiros

contato

Bem-vindo ao PHPRecipes, o ponto de partida para scripts PHP, tutoriais,

e dicas e receitas de culinária gourmet!

Copyright 2000 PHPRecipes. Todos os direitos reservados.

contato |

sua privacidade

Na Fig. A Figura 9.1 mostra a aparência da página resultante em um navegador. Embora eu não costumo usar bordas de tabela, desta vez as destaquei para destacar mais claramente as três partes da página na ilustração.

Arroz. 9.1. Aparência da página construída na Listagem 9.8

Otimização de modelo

Na segunda opção (na minha opinião, mais preferível), os modelos são projetados como funções localizadas em um arquivo separado. Isso fornece estrutura adicional aos seus modelos. Eu chamo esse arquivo de arquivo de inicialização e armazeno outras informações úteis nele. Como já vimos exemplos relativamente longos de cabeçalhos e rodapés, as Listagens 9.10 e 9.11 foram ligeiramente encurtadas para ilustrar a nova ideia.

Listagem 9.10. Modelo de site otimizado (site_init.tpl)

// Arquivo: site_init.tpl

// Objetivo: arquivo de inicialização do PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [e-mail protegido]";

$site_path = "http://localhost/phprecipes/";

função show_header($site_name) (

<? print $site_name: ?>

Este é o cabeçalho

função mostrar rodapé()

Este é o rodapé

Listagem 9.11. Usando um arquivo de inicialização

//Inclui arquivo de inicialização

include("site_init.tpl");

//Imprime o título

mostrar cabeçalho($site_name);

// Conteúdo do corpo Estas são algumas informações do corpo

// Exibe o rodapé Show_footer();

Projeto: gerador de páginas

Embora a maioria dos sites que criei tenham gerado o conteúdo da página principal com base nas informações lidas de um banco de dados, sempre há algumas páginas que permanecem praticamente inalteradas. Em particular, eles podem exibir informações sobre a equipe de desenvolvimento, informações de contato, publicidade, etc. Normalmente armazeno essas informações “estáticas” em uma pasta separada e uso um script PHP para carregá-las quando uma solicitação chega. Claro, você tem uma pergunta - se esta é uma informação estática, para que serve o script PHP? Por que não carregar páginas HTML normais? A vantagem do PHP é que você pode usar modelos e inserir trechos estáticos conforme necessário.

<а href = "/static.php?content=$content">Nome da página estática

Vamos começar criando páginas estáticas. Para simplificar, vou me limitar a três páginas contendo informações do site (Listagem 9.12), publicidade (Listagem 9.13) e informações de contato (Listagem 9.14).

Listagem 9.12. Informações sobre o site (about.html)

Sobre PHPReceitas

Que programador não mistura programação a noite toda com biscoitos gourmet Aqui no PHPRecipes dificilmente passa uma noite sem que um de nossos programadores misture um pouquinho de HTML com um saboroso prato de Cogumelos Portobello ou até mesmo Fondue. o melhor daquilo que mais amamos: PHP e comida!

Isso mesmo, leitores, tutoriais, roteiros, suflês e muito mais. 0apenas em PHPRecipes.

Informações publicitárias

Independentemente de eles virem para aprender as mais recentes técnicas de PHP ou para se atualizarem sobre como

para assar frango, você pode apostar que nossos leitores são tomadores de decisão. Eles são a indústria

profissionais que tomam decisões sobre o que sua empresa compra.

Para informações publicitárias, entre em contato

">[e-mail protegido].

Listagem 9.14. Detalhes de contato (contact.html)

Contate-nos

Tem uma dica de codificação?

Conhece a cobertura perfeita para inhame cristalizado?

Nos informe! Entre em contato com a equipe em [e-mail protegido].

Vamos prosseguir para a construção da página static.php, que exibe as informações estáticas solicitadas. Este arquivo (veja Listagem 9.15) inclui os componentes da página do nosso site e o arquivo de inicialização site_init.tpl.

Listagem 9.15. Saída geral de páginas estáticas (static.php)

//Arquivo: static.php

// Objetivo: exibir páginas estáticas solicitadas.

// AVISO: isso pressupõe que o arquivo seja "site_init.tpl" e pronto

// os arquivos estáticos estão no mesmo diretório.

// Carrega funções e variáveis ​​include("site_init.tpl"):

// Exibe o cabeçalho show_header($site_name);

// Gera o conteúdo solicitado include("$content.html"):

// Exibe o rodapé show footer();

Agora está tudo pronto para construir o cenário principal. Basta incluí-lo na página

<а href = "static.php?content=about">Nome da página estática

Informações publicitárias

Contate-nos

Se você clicar em qualquer um desses links, seu navegador carregará a página estática correspondente incorporada em static.php!

Resultados

Neste capítulo, você se familiarizou com a principal tarefa para a qual o PHP foi criado – construir páginas web dinamicamente. Foram consideradas as seguintes questões:

  • Processamento de URL;
  • construção de conteúdo dinâmico;
  • inclusão e construção de templates básicos.

O capítulo termina com um gerador de páginas, um programa que carrega páginas estáticas em um modelo e facilita o suporte a um grande número de páginas HTML estáticas.

O próximo capítulo se concentra no uso de PHP em combinação com formulários HTML para melhorar significativamente a interatividade do seu site. E então – interação com bancos de dados! Você tem muitas coisas interessantes para aprender.

Nas lições anteriores aprendemos que usando o método GET podemos passar alguns parâmetros diretamente para a URL. Porém, nada nos impede de fazer isso sem formulários, apenas listá-los na URL.

Podemos passar parâmetros via URL. E podemos obter esses parâmetros diretamente no script. Então, o que nos impede de mostrar páginas diferentes ao usuário dependendo dos parâmetros da URL?

Criando uma página dinâmica

Para mostrar diferentes páginas ao usuário, é necessário preparar o conteúdo. Deixe-o estar em uma matriz multidimensional:

"Criando páginas dinâmicas", "content" => "Texto do artigo sobre páginas dinâmicas." ], [ "title" => "Como pegar um gatinho", "content" => "Texto do artigo sobre gatinhos." ] ]; ?>

O parâmetro dinâmico na URL será chamado id e iremos capturá-lo em $_GET["id"] . Poderíamos adicionar um campo id a cada elemento do array, mas então teríamos que percorrer todos os elementos e procurar o subarray com o id desejado. Portanto, é muito mais fácil usar as chaves do array principal como ids.

Simplificando, pegamos o id e tentamos encontrar um artigo com essa chave no array $articles. Se parece com isso:

Tudo o que resta é esboçar a saída do menu e verificar se o id está correto. Acontece que é um verdadeiro roteador PHP!

"Home page", "content" => "Texto do artigo sobre nosso site" ], [ "title" => "Criando páginas dinâmicas", "content" => "Texto do artigo sobre páginas dinâmicas." ], [ "title" => "Como pegar um gatinho", "content" => "Texto do artigo sobre gatinhos." ] ]; # Se o id for passado, escreva o artigo em $article ou null se não houver nenhum artigo com esse id if(isset($_GET["id"])) $current_article = $articles[$_GET["id"]] ?? nulo; # Se o id não for passado, então esta é a página principal, podemos mostrar a página com id = 0 else $current_article = $articles; ?> $artigo): ?> ">

Erro 404 - Página Não Encontrada

Agora você pode criar sites dinâmicos onde o número de páginas depende do número de elementos do array, em vez de arquivos PHP. :) Se o site tiver diferentes tipos de páginas, por exemplo, um artigo e um produto, você pode passar o tipo de página como o segundo parâmetro: site.ru?type=article&id=5 .

É claro que este sistema não é perfeito. Depois de um tempo você aprenderá como fazer um CNC normal (URLs mais convenientes, por exemplo site.ru/articles/5/) e armazenar artigos em um arquivo ou banco de dados.

Para criar um site promissor, expansível e eficaz de qualquer complexidade, você deve começar com algo simples. Este processo não é fácil, requer certos conhecimentos básicos de PHP e MySQL, mas se você considerar ponto a ponto, poderá criar uma espécie de “plano de trabalho” que será útil na hora de criar novos sites. Vamos preparar o “núcleo” e a base do projeto. No início será um site normal de cartão de visita, mas depois, ao adicionar funcionalidades, pode ser transformado em qualquer coisa. Então vamos começar.

1. Preparando o banco de dados. Crie a primeira tabela no banco de dados MySQL

Crie um novo banco de dados, por exemplo “meusite”. Pessoalmente, estou acostumado a trabalhar com codificação UTF-8, então farei uma ressalva imediatamente: certifique-se de que todos os arquivos de texto do site, o próprio banco de dados, tabelas e campos da tabela estejam na mesma codificação.
Criamos uma tabela no novo banco de dados. Vamos chamá-lo de “páginas”. Esta tabela armazenará páginas estáticas do futuro site e informações sobre elas. A tabela deve conter os seguintes campos:

  • page_id - identificador da página (SMALLINT, chave primária, auto_increment);
  • page_alias - alias da página para a linha de endereço do CNC (VARCHAR, 255);
  • page_title - título da página na janela do navegador (VARCHAR, 255);
  • page_meta_d - meta descrição da página para a tag de meta descrição (VARCHAR, 255);
  • page_meta_k - meta palavras-chave para a tag meta keywords (VARCHAR, 255);
  • page_h1 - título da página (VARCHAR, 255);
  • page_s_desc - uma breve descrição do material, por exemplo, se os materiais do site serão em formato de blog (TEXTO);
  • page_content - o texto principal da página, que será exibido na coluna central do site (TEXTO);
  • page_publish - contém “Y” - se a página for publicada, ou “N” - se estiver oculta (CHAR, padrão “Y”).

Imediatamente após a criação da tabela, inserimos nela os valores da página principal do site. Sugiro inserir o valor “home” no campo “page_alias” da página principal. As meta tags correspondem ao tema de todo o site. Da mesma forma, você pode criar outras páginas, por exemplo, “Sobre a empresa” com o alias “sobre” e suas próprias meta tags, ou “Contatos” com o alias “contatos”, etc.

2. Crie um arquivo de configuração do site

Na pasta raiz do site, que nesta fase deveria estar vazia, criamos uma pasta “cfg”, e nela, através de .htaccess, fechamos o acesso com a diretiva “negar de todos”. Crie um arquivo core.php com o seguinte conteúdo:

//MYSQL
classe MeuDB
{
var $dblogin = "root"; // SEU LOGIN NO BANCO DE DADOS
var $dbpass = ""; // SUA SENHA PARA O BANCO DE DADOS
var $db = "meusite"; // NOME DO BANCO DE DADOS DO SITE
var $dbhost="localhost";

Var$link;
var $consulta;
var $erro;
var $resultado;
var $dados;
var $buscar;

Função conectar() (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("DEFINIR NOMES utf8");
}

Função fechar() (
mysql_close($este->link);
}

Função executar($consulta) (
$this->query = $query;
$this->resultado = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
linha de função() (
$this->dados = mysql_fetch_assoc($this->resultado);
}
função buscar() (
while ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->dados;
return $this->fetch;
}
}
função parar() (
unset($este->dados);
unset($this->resultado);
unset($this->buscar);
não definido($this->err);
unset($this->query);
}
}

Este arquivo atualmente contém apenas uma classe simples de conexão de banco de dados, mas no futuro você poderá adicionar várias funções úteis a ele que estarão acessíveis de qualquer lugar no código do site. Não se esqueça de alterar o login e a senha do seu banco de dados.

Se você estiver trabalhando em um ambiente Windows, recomendo usar o arquivo . Este editor possui numeração de linhas e converte facilmente texto de uma codificação para outra. ATENÇÃO! Se você trabalha com codificação UTF-8, converta arquivos para UTF-8 sem BOM - isso ajudará a evitar problemas no futuro.

3. Crie index.php - o controlador principal do site

O arquivo de configuração foi criado. Agora na pasta raiz do site criamos index.php - este será o script principal do site, uma espécie de “controlador principal”. Conteúdo do arquivo index.php:

define("ÍNDICE", ""); // DEFININDO A CONSTANTE DO CONTROLADOR PRINCIPAL

Require_once($_SERVER."/cfg/core.php"); // CONECTANDO O KERNEL

// CONECTA AO BD
$db = new MeuDB();
$db->conectar();

// CONTROLADOR PRINCIPAL
mudar ($_GET) (
caso "página":
include($_SERVER."/com/page.php");
quebrar;
padrão:
include($_SERVER."/com/home.php");
quebrar;
}

Incluir($_SERVER."/template.php");
$db->fechar();

A variável $_GET informará ao controlador principal qual componente do site carregar quando solicitado. Atualmente, nosso site possui apenas dois componentes: “página” e “página principal” (em princípio, você pode conviver com um componente para exibir uma página normal, mas muitas vezes a aparência da página principal do site difere das páginas normais de itens de menu) . A lógica do controlador principal é a seguinte: o nome do componente necessário é extraído da string URL (o valor da variável $option) e, dependendo do seu valor, o arquivo do próprio componente é incluído (contido no /com pasta). O arquivo do componente faz todo o trabalho necessário, extrai dados do banco de dados e os grava em variáveis ​​para transferi-los para o modelo de design. Ao final, é conectado o arquivo de design do site, para o qual são transferidas todas as variáveis ​​​​e dados extraídos nos componentes. Isso parece muito mais complicado do que funciona.

4. Crie um componente de saída de página regular

Na raiz do site, crie uma pasta “com” - os arquivos dos componentes serão armazenados nela. Um componente do site, no meu entendimento, é um arquivo no qual os dados são processados ​​para diferentes seções do site. Por exemplo, um componente de página regular recupera o título, a descrição e o texto do material do banco de dados e os grava nas variáveis ​​$title, $meta_d, $meta_k, $content, etc. você pode criar seu próprio modelo de design para cada componente) e são exibidos ao usuário como uma página HTML. Por exemplo, um componente de catálogo que poderia ser criado no futuro faria quase a mesma coisa, mas com dados sobre produtos - e possui especificidades próprias, outros campos na tabela, etc. Portanto, para cada seção funcional do site vale a pena criar um componente separado. No esquema MVC (Model-View-Controller), o componente atua como um modelo.

Crie um arquivo “page.php” na pasta “com”. O conteúdo do arquivo é o seguinte:

/* COMPONENTE DA PÁGINA */
$alias = $_GET;
$query = "SELECT * FROM páginas WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->executar($query);
$db->linha();
// VARIÁVEIS DO COMPONENTE
$id = $db->dados;
$alias = $db->dados;
$título = $db->dados;
$h1 = $db->dados;
$meta_d = $db->dados;
$meta_k = $db->dados;
$s_desc = $db->dados;
$componente = $db->dados;
//SE A PÁGINA NÃO EXISTE
se (!$id) (
header("HTTP/1.1 404 não encontrado");
$component = "ERRO 404! Esta página não existe";
}
$db->parar();

5. Crie o componente de exibição da página principal

A página principal do nosso banco de dados é armazenada sob o pseudônimo “home” e até agora sua estrutura não difere das páginas normais do site - é apenas um artigo. No entanto, criaremos um componente separado para isso - para o futuro, por assim dizer.


O conteúdo do componente “home.php” na pasta “com” é quase idêntico ao conteúdo do componente de página normal, com exceção da string de consulta do banco de dados e do nome do componente. A string de consulta agora se parece com isto:

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMITE 1";

6. Crie um modelo de design para todo o site

Na raiz do site criamos um arquivo template.php. Em essência, este é um layout de web design normal em formato HTML+CSS, apenas com variáveis ​​PHP nos lugares certos. Inserir entre tags de título, na coluna central do site há um encartee assim ao longo do template colocamos as variáveis ​​necessárias que são declaradas nos componentes.

A pasta raiz também deve conter pastas “css” e “images” para elementos de design. No arquivo /css/style.css - você pode personalizar os estilos a seu critério.

7. Limpe links e arquivo .htaccess

Para criar links limpos, eu uso mod_rewrite com instruções diretas para as regras de cada componente separadamente, pois considero a análise da barra de endereço usando o próprio controlador uma funcionalidade desnecessária. O conteúdo do .htaccess nesta fase é:


RewriteEngine ativado
Reescrever Base /

RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %(REQUEST_FILENAME) !-f

# ARQUIVOS PROIBIDOS
RewriteRule.htaccess - [F]
RewriteRule template.php - [F]

# REGRAS mod_rewrite
Página RewriteRule/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

No futuro, adicionaremos regras para os componentes de pesquisa, catálogo, blog de artigos, etc. Há apenas um ponto: converter links como “meusite.com/index.php?option=pages&alias=about” em um link como “meusite.com/pages/about.htm” - parece muito bom. Tente evitar o array $_GET em desenvolvimento por razões de segurança e não confie nele. É aconselhável armazenar nele apenas os parâmetros do controlador principal (a variável $option) e do componente (a variável $alias).

Além disso, em cada pasta do site, “por precaução”, crie um arquivo index.html vazio - isso é necessário para que nada seja exibido ao acessar o diretório pela barra de endereço.

Tags: php, mysql, mecanismo de site, controlador, criação de site, mvc

2017-01-10


Crie um site dinâmico usando php

Olá querido visitante!

Hoje, a partir da página principal, utilizando a linguagem de programação PHP, criaremos uma página dinâmica, que posteriormente será gerada no servidor a cada solicitação do usuário.

Assim, alterando a estrutura do site e preenchendo-o com páginas semelhantes em mudança, obteremos um site dinâmico, o que no futuro simplificará muito o seu suporte técnico e desenvolvimento em comparação com a versão estática.

  • Por que você precisa de um site dinâmico?
  • Como converter um site estático em dinâmico
  • Formamos blocos de um site dinâmico
  • Convertendo uma página da web de estática em dinâmica
  • Arquivos de origem do site

Por que você precisa de um site dinâmico?

Por que um site dinâmico é necessário foi discutido no início das instruções passo a passo no artigo Instalando um servidor web Denwer local, onde foi explicada a necessidade de instalar um servidor web local. Portanto, podemos voltar e atualizar esta questão.

Além disso, se você quiser considerar mais detalhadamente os prós e contras de sites estáticos e dinâmicos, podemos aconselhá-lo a ler as páginas do diretório online "Puzzleweb.ru" com a seção Tipos de sites, onde de forma bastante sucinta, mas ao mesmo tempo deu explicações claramente para diferentes opções de site.

captura de tela 12

Só podemos acrescentar que para obter um recurso de Internet verdadeiramente completo, é impossível pular esta etapa e permanecer com a opção de site estático.

Portanto, não nos aprofundaremos mais nas discussões teóricas sobre a necessidade de criação de um site dinâmico, mas passaremos a considerar a questão de como faremos isso.

Como converter um site estático em dinâmico

Como você sabe, a diferença fundamental entre um site dinâmico e um site estático é que em um site estático, as páginas da web prontas ficam no servidor e aguardam sua vez de serem enviadas ao navegador do usuário. Além disso, se as páginas tiverem diferenças mínimas, digamos que a diferença esteja apenas em uma frase ou mesmo em uma palavra, então essas ainda serão páginas separadas.

Na versão dinâmica, as páginas são geradas no servidor a cada solicitação do usuário, dependendo da informação solicitada.

Simplificando, isto pode ser comparado a um conjunto de construção, onde um grande número de formas diferentes pode ser feito a partir de um número limitado de elementos. Além disso, se você fizer alguma alteração em um dos elementos, ela se refletirá em toda a estrutura que inclui esse elemento.

Com base nisso, faremos a partir da página principal criada algo como um construtor, composto por determinados elementos (no nosso caso, serão arquivos), a partir dos quais as páginas web serão posteriormente montadas de acordo com as solicitações do usuário.

Para explicar as ações que realizaremos para isso, utilizaremos o código HTML do frame da página principal obtido em uma das etapas de criação do site do artigo.

  1. "utf-8" >

    <span><b>Título da página</b> </span>

    "Descrição" conteúdo = "Breve descrição do conteúdo da página" >

  2. "embrulho" >

    Um boné

    Rotador

    Conteúdo principal

    Barra Lateral

    Porão

Como você pode ver no código HTML, o contêiner , projetado para acomodar a parte visível da página web, contém os seguintes blocos principais:

  • Um boné;
  • Rotador;
  • Conteúdo principal;
  • Barra Lateral;
  • Porão.

Porém, é preciso atentar para o fato de que quatro dos cinco blocos são comuns e apenas um bloco de “Conteúdo principal” será diferente para cada página.

Para obter elementos de um site dinâmico, separaremos o conteúdo desses blocos em arquivos separados, que posteriormente incluiremos na montagem de diversas páginas da web com base nas solicitações dos usuários.

Agora, nesta fase, haverá apenas cinco desses arquivos. Mas no futuro, quando páginas ou funcionalidades adicionais forem adicionadas ao site, novos arquivos serão conectados e assim por diante, conforme necessário.

Esta construção da estrutura do site permitirá que no futuro você não tenha que lidar com o trabalho rotineiro de alteração do código HTML de todas as páginas em caso de substituição ou adição de algum fragmento comum a elas. Nesses casos, bastará fazer alterações apenas em um arquivo específico e todo o procedimento de substituição estará concluído. Como você pode ver, há uma vantagem.

Mas para isso precisaremos da linguagem PHP, com a qual as páginas web poderão acessar esses blocos selecionados e transferir seu conteúdo para si mesmas.

Se alguém nunca teve que lidar com a linguagem PHP, então é aconselhável conhecê-la melhor, pois o PHP é uma das ferramentas mais importantes para o desenvolvimento de sites. Isso pode ser feito usando vários tipos de literatura de referência, que podem ser encontradas em grandes quantidades na Internet russa.

Como opção, o já citado livro de referência “Puzzleweb.ru”, em que uma de suas partes é dedicada ao tema PHP. Para um estudo mais aprofundado do PHP, você também pode usar um livro de referência especializado, adaptado especificamente para esta linguagem, postado no site "php.ru". Usando o link "https://php.ru/manual/control-structures.intro.html" você pode acessar a página "Introdução", de onde você pode selecionar facilmente qualquer seção do diretório de seu interesse.

Mas para agora fazer um site dinâmico e oferecer a possibilidade de conectar arquivos a páginas HTML, basta usar apenas uma instrução de linguagem (em PHP, qualquer script consiste em uma sequência de instruções). Esta pode ser uma das quatro instruções possíveis para conectar arquivos:

  • incluir;
  • exigir;
  • incluir_uma vez;
  • requer uma vez.

Não faz sentido descrever suas características aqui, pois isso é explicado detalhadamente em livros de referência, por exemplo, usando o link “http://www.puzzleweb.ru/php/26_inc_files.php” você pode entender isso bem.

Ao criar um site usaremos a instrução “require_once” que costumo usar esta opção, para mim é a mais conveniente.

Bem, agora que já descobrimos o que faremos, vamos passar para as ações práticas.

Formamos blocos de um site dinâmico

Para formar blocos que participarão da montagem das páginas web, primeiro é necessário criá-los. Isso é feito no editor de texto Notepad++ da mesma forma que criamos o primeiro arquivo do site “index.html” no artigo Crie uma página web e hospede-a em um servidor web local. Somente neste caso a extensão deve ser especificada não “html”, mas “php”. Neste caso, você deve definitivamente prestar atenção à codificação para evitar o aparecimento de vários tipos de caracteres incompreensíveis nas páginas no futuro.

Criaremos os arquivos em uma pasta de “blocos” separada e recém-criada. Para arquivos comuns a todas as páginas, atribuiremos nomes levando em consideração os nomes dos blocos correspondentes. E para o bloco “principal” indicaremos um nome específico para cada página do site.

Assim, para a página principal conectaremos um arquivo chamado “block_glavnaya” ao bloco “principal”. De resto: “cabeçalho”, “seção”, “aside” e “rodapé”.

Ao criar arquivos, você também pode levar em consideração que para simplificar este procedimento, você pode copiá-los através do menu “Arquivo”, especificando o novo nome do arquivo ao salvar “Salvar como”.

Em geral, a criação de arquivos é um procedimento padrão, portanto não deverá haver dificuldades. No final, deve ficar assim.


Em seguida, copiamos o conteúdo de cada bloco e o transferimos para o arquivo apropriado. Usando "header.php" como exemplo, vamos examinar isso com mais detalhes.

1. Abra o arquivo “index.html” no editor Notepad++, selecione a área desejada do bloco “cabeçalho” e clique alternadamente com os botões direito e esquerdo do mouse e copie-o para a área de transferência.

Ressalta-se que aqui estamos copiando todo o conteúdo do bloco com exceção do menu. Isso ocorre porque para refletir o botão do menu ativo nos atributos da tag

  • é necessário atribuir um valor à classe class para cada página "ativo". O mesmo se aplica a um fragmento semelhante no bloco "rodapé".

    No futuro, também moveremos esses fragmentos de menu nos blocos “cabeçalho” e “rodapé” para arquivos separados, mas por enquanto não vamos complicar as coisas e deixá-los no mesmo lugar.

    Como selecionar e copiar um fragmento do bloco “cabeçalho” para a área de transferência é mostrado na imagem abaixo.



    3. E finalmente, para mover o conteúdo de um arquivo no Notepad++ para a esquerda, você precisa pressionar “Tab” várias vezes enquanto mantém pressionado o botão “Shift”. Como resultado, obteremos o arquivo “header.php” gerado no seguinte formato.


    Faremos o mesmo para outros arquivos. Abaixo, as capturas de tela mostram como ficará seu conteúdo após a conclusão de todas as etapas necessárias.


    Fig.6 Arquivo "seção.php"


    Fig.7 Arquivo "block_glavnaya.php"


    Fig.8 Arquivo "aside.php"


    Fig.9 Arquivo "footer.php"

    Assim, recebemos todos os arquivos para criar uma página dinâmica, e agora podemos ir diretamente ao seu código HTML.

    Convertendo uma página da web de estática em dinâmica

    Para garantir que nossa página principal carregue os arquivos que foram criados na seção anterior, devemos primeiro alterar a extensão do arquivo "index" de "html" para "php", e depois abri-lo novamente no editor Notepad++ e faça as seguintes alterações:

    • Exclua o conteúdo dos blocos que foram transferidos anteriormente para arquivos recém-criados.
    • No espaço livre, escreva as instruções “require_once” em PHP, indicando o caminho para os arquivos correspondentes.
    • Nas tags do menu
    • , que indicam o caminho para as páginas, para a página principal substitua a extensão de “html” por “php”, e para as demais indique os nomes das páginas recém-criadas.
    • Indique "Home" no título.

    Após concluir essas operações, nossa página principal deverá ficar assim.


    Na captura de tela acima você pode ver que todas as instruções do PHP são destacadas com uma tag de abertura. Esta designação é usada para indicar quando iniciar e parar o processamento do código escrito em PHP. Portanto, no futuro, todos os códigos PHP serão destacados com esta designação.

    Você também pode notar que os nomes das novas páginas são feitos levando em consideração a sua finalidade, para que a estrutura e o código do site sejam melhor percebidos.

    Foi aqui que todas as nossas transformações terminaram. E agora, se abrirmos novamente a página principal no navegador, não devemos ver nenhuma alteração em relação à versão anterior do site, ele deve abrir como antes. Mas, se o resultado for algo errado, você precisará procurar o erro nas operações acima.

    Vamos atualizar o navegador agora e tentar abrir a página principal.


    Como você pode ver, no nosso caso a página principal abriu sem problemas. Mas, ao contrário dos trabalhos anteriores do site, a página adquiriu esse aspecto a partir de sua formação no servidor durante o processamento da solicitação.

    Assim, nosso site conta agora com sua primeira página dinâmica. E depois de adicionar outras páginas semelhantes a ele, este site pode ser chamado de dinâmico com todas as consequências, ou seja, terá todas as vantagens inerentes aos sites dinâmicos. E poderemos verificar isso quando o preenchermos com vários tipos de funcionalidades no futuro.

    Com isso concluiremos esta importante etapa de desenvolvimento do site e no próximo artigo criaremos novas páginas dinâmicas para ele. Os códigos-fonte da última versão do site podem ser baixados, como de costume, no link no final do artigo.

    Arquivos de origem do site

    Os arquivos fonte do site com as atualizações feitas neste artigo podem ser baixados do anexo materiais adicionais.