Da documentação oficial do PHP: Na sua página de formulário, você chama session_start após o conteúdo ter sido enviado para a saída. Você tem que chamar session_start antes de escrever HTML.