E certo che deve dare errore, il codice html viene interpretato come codice da visualizzare a video.
session_start() va messo prima di qualsiasi tag HTML!

il controllo php non glielo puoi mettere prima?