Função Include e Require

Como o PHP é uma linguagem de programação multinível ele trás uma ferramenta para agregar blocos de programação, ou seja, você pode criar blocos independentes ou inter-dependentes e agregá-los ao lay-out.

estas duas funções fazem exatamentte isso, include e require.

O include apenas inclui o bloco ou página e caso o bloco não exista não háverá problemas, já o require, como o nome diz, exige que o bloco exista, caso contrário o php não exibe a página ou sub-nível onde o require foi setado.

você pode utilizar o include setando exatamente o nome da página.php ou através de uma variável, dessa forma:

Exemplo com a página definida:
<?php include ("config.php");?>

Exemplo com página definida em uma variável:
<?
$page="config";
php include ($page.".php")?>

Pode também incluir um bloco a partir de uma condicional:

<?php if(isset($page)) { include ($page.".php");} else{ include ("current.php"); } ?>

Porém, nesse caso um usuário mau-intencionado pode encontrar uma forma de mudar o valor de $page para incluir um pacote de scrips que podem por exemplo permití-lo assumir o controle do seu site:
$page = 'http://www.badboysite.com/controll.php';

Então é uma boa idédia é declarar o nome das páginas, assim por exemplo:

switch ($page){
case 'pagina1':
include ('pagina1.htm');
break;
case 'página2':
include ('pagina2.htm');
break;
default:
include ('pagina10.htm');
break;
}

O require tem a mesma forma de declaração.

Quando trabalhamos com programação em módulos, podemos nos deparar em situações onde declaramos um bloco em lugares diferentes e por motivos diferentes, e que de repente eles se chocam em algum ponto da interface gerando erros de declarações duplicadas, uma solução para isso sería criar outro sub-bloco específico para este ponto da interface, mas isso duplicaria o trabalho, aumentaria o tamanho do site desnecessáriamente e prejudicaria a organização, podemos então setar o require como 'once', ou seja, caso já tenha sido declarado o php desconsidera o comando, dessa forma:

<?php require_once ("config.php");?>

Abraço,
Flavio Ribeiro
www.spyderit.com.br