Solo como comentario:
No necesariamente debe de estar en "la primera línea" solo asegurarse de que no se imprima NADA antes de session_start()... obviamente, la forma fácil de asegurarse esto no pase es colocarlo hasta el inicio

... así, no habiendo nada antes no hay posibilidades de error

.
www.php.net/session_start
Un saludo!