ну action тебе прописывать надо
если не прописываешь то берется текущая страница по умолчанию
а что у тебя прилетает в HTTP_REFERER после поста ?
на странице при клике на cancel у тебя один referrer
при переходе через сабмит другой
Дейтсвительно.HTTP_REFERER хранит в себе предыдущий URL, соответвенно,после POST-запроса он хранит в себе уже адрес с этой же формой и на неё и редиректит.. В общем, HTTP_REFERER здесь не годится.