Pero, por qué $_SESSION? No deberías usar tal vez $_POST?
No veo error en tu código (Más que en vez de elseif(.....) deberías usar sólo else. Es cuestión de lógica. Pero en todo caso, revisa que las variables de sesión se estén creando correctamente.