Это действительно зависит от того, насколько безопасным и надежным он вам нужен. Будет работать скрытое поле формы, хотя это означает, что вам нужно добавить его в каждую форму, которая указывает на ваш скрипт обработки. Это также легко подделать, если кто-то хотел. В качестве альтернативы вы можете использовать $ _SERVER ['HTTP_REFERER']. Это не всегда надежно - я считаю, что это зависит от того, какой браузер вы используете, но должно быть достаточно хорошим в большинстве простых сценариев. Другой альтернативой было бы хранить что-то в сеансе и использовать это. Это, вероятно, наиболее безопасно, поскольку все это на стороне сервера и не может быть подделано, но, вероятно, это труднее всего реализовать (не то, что это ракетостроение).