Mejor generas una capa que sea contenedora del contenido, y a ella le agregas el fondo que quieras, de esta forma, abajo de esa capa generas el footer, y así dependiendo de la cantidad de contenido la capa principal crecerá lo correspondiente y mostrara el fondo hasta donde deba...
Entonces el codigo html seria asi:
Código PHP:
<div id="wrapper">todo mi contenido</div>
<div id="footer">pie de pagina</div>
Mientras que tu hoja de estilo seria algo como esto:
Código PHP:
#wrapper {
margin: 0px auto;
width: 800px;
background-image: url(ruta_imagen/fondo.jpg);
background-repeat: repeat-y;
background-position: top;
}
#footer {
margin: 0px auto;
width: 800px;
height: 48px;
background-image: url(ruta_imagen/footer.jpg);
background-position: top;
}