Sinceramente, no veo ningún error aparente en el código. Supongo que se me escapara algo, pero no veo que puede ser.
Solo decirte una cosa, en todas las variable como POST o SESSION acostúmbrate a llamarlas con comillas simples o dobles, pero no vayas mezclando. Eso es solo una opinión, cada cual que haga lo que quiera.