Как вы гарантируете, что в конвейере запросов PHP достаточно рано глагол POST и запрещаете другим?
Это должно работать:
if ($_SERVER['REQUEST_METHOD'] != 'POST') die();