Si tu veux structurer ton site en séparant de la partie HTML (ici header, footer) de la partie données, l'idéal est de passer par un moteur de template (smarty,,...).C'est quand même infiniement plus propre et maintenable.
Si tu répètes le code à toutes les pages, ça sera surtout moins maintenable...
Sinon tu veux dire quoi par "s'affiche à moitié" ? Tu includes directement un .css ?