Dovrebbe essere corretto usare http_referer in quanto php_self ti dà lo script corrente e quello che a te serve è quello di provenienza.

Non posso garantire che il non trovato è considerato "provenienza" ma un tentativo lo puoi fare.