Ir para conteúdo

POWERED BY:

Arquivado

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

codercss

Funcionalidade que criar página e envia para o cliente

Recommended Posts

Olá a todos,

Não sei se esta questão deve ser colocada no âmbito de php ou servidor apache, mas cá vai!

Tenho os seguintes ficheiros:

  • header.php
  • aside.php
  • footer.php

O que vai mudando é o content.php.

Terei vários ficheiros content.php, mas com nomes diferentes, como:

  • content-a1.php
  • content-a2.php
  • content-a3.php
  • ...
  • content-a105.php

O que tinha pensado era sempre que precisa-se de criar um content novo abrir um ficheiro, fazer os includes dos três primeiros ficheiros que mencionei e colocar lá o content especifico ao ficheiro/assunto que pretendo criar. Basicamente esse ficheiro seria o content-axx.php.

Mas acho isso estúpido :P

Existe maneira de criar apenas o ficheiro content-axx.php, colocar lá dentro o conteúdo e quando linkar para o content-axx.php ele automaticamente agrega os ficheiros necessários e apresenta a página pronta ao cliente?

Por exemplo,

Imaginem que no content-a50.php tenho um link para o content-a68.php. Ao clicar no link que me redireciona para o content-a68.php o servidor apache cria uma página com header.php + aside.php + content-a68.php + footer.php e envia para o cliente!

Acho que este é o principio dos CMS, como wordpress.

Toda a ajuda é bem vinda, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim é possível, salve os dados específicos da página no BD, monte um layout e então basta resgatar os dados do BD e imprimir na tela... basicamente igual a qualquer sistema dinâmico, como este fórum por exemplo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estou muito há vontade com o bd's ainda. Mas pelo que percebi, terei que criar uma página, por exemplo index.php, que recebe o pedido do link "content-a68.php" vindo do content-a50.php , pesquisa na bd pelo conteúdo do content-a68.php, pega no layout e monta tudo para entregar para o cliente.

Certo?

Mas pretendo manter as coisa no baixo nível. Pretendo ser eu mesmo a criar os ficheiros content-axx.php, directo no sublime! Pois gosto de escrever html directo. Apenas não quero ter que andar sempre a escrever a estrutura dos includes. Queria dar alguma inteligencia à aplicação.

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Extremamente simples:

  • content-a1.php

  • <h1> Content 1 </h1>
    
    • content-a2.php

    • <h1> Content 2 </h1>
      
      index.php

    • <?php
      // Se existir GET "pagina" retorna ele, se não, define "pagina_padrao" como default
      $_GET['pagina'] = isset($_GET['pagina']) ? $_GET['pagina'] : 'pagina_padrao';
      // Verifica se o arquivo de nome igual ao parametro passado na URL + ".php" existe
      // Se existir, inclui na página, se não, retorna que a página em questão não foi encontrada.
      if(file_exists("{$_GET['pagina']}.php"))
         include("{$_GET['pagina']}.php");
      else
         echo "<h1>Página {$_GET['pagina']} não encontrada!</h1>";
      

Agora acesse a seguinte URL:

index.php?pagina=content-a1

Este é apenas um jeito de se fazer, o mais simples por sinal, eu costumo usar banco de dados pra ter mais controle e ser mais fácil de criar novas páginas, mas pelo que notei, isso só iria te confundir mais, portanto use esta forma que citei ou pode usar um switch também pra ter mais controle. O importante é que funcione!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mateus Silva,

Obrigado,

já está a funcionar deste lado! Pretendo utilizar o metodo post, como devlo fazer, uma vez que utilizo a tag <a>?

Apenas aprendi com a tag button nos formulários. Estou a googlar para descobrir como fazer com a tag <a>, mas se puder ajudar agradeço

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta fazer assim:

<form action="http://ip/e1.php" method="post">
            <input name="pagina" type="submit" value="content-a1"></input>
        </form>
 

E mudar o metodo de $_GET para $_POST no e1.php, ou no index.php, seguindo o seu exemplo!

Obrigado pela grande ajuda

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.