Lo mejor que puedes hacer es sacar las líneas comunes y de cabecera fuera del bucle. Es decir, las líneas
Using text Syntax Highlighting
print "Content-type:text/html\n\n";
print "<html>\n";
print "<body>\n";
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
las dejas reducidas a un solo grupo, y lo colocas antes del while(), pues solo deben ser impresas una sola vez.
Luego, dentro del while(), según sea el if() o el else, imprimes lo que quieras (de código HTML, claro). Y después del bucle while(), cierras la página:
Using text Syntax Highlighting
print "</body>\n";
print "</html>\n";
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4