Доступ к странице только после редиректа с оплаты

Здравствуйте!

Имеются два ресурса:
1. Страница успешной оплаты (/success.html)
2. Страница неудачной оплаты (/fail.html)

После оплаты пользователь попадает на одну из них в зависимости от ситуации. Ссылки имеют следующий вид:
/success.html?cms_name=modx&customerNumber=*
/fail.html?cms_name=modx&customerNumber=*

Возникла необходимость закрыть доступ к данным страницам, скажем в случае простого ввода их в строку браузера. То есть, чтобы страницы были доступы только после редиректа со страницы оплаты.

Возможно ли как-нибудь реализовать данную надстройку?

Благодарю за помощь.
Юрий
05 мая 2016, 12:21
modx.pro
1 616
0

Комментарии: 4

Алексей Федоров
05 мая 2016, 19:48
+1
Если задача — дать доступ после оплаты, то проще использовать готовый компонент.
    Юрий
    05 мая 2016, 20:55
    0
    Благодарю. Но, к сожалению, немного не то.
    Задача — только уведомить пользователя об успешной/неуспешной оплате, не более. Однако, не хотелось бы, чтобы страницы с уведомлением были доступны в остальное время.
      Алексей Федоров
      05 мая 2016, 21:56
      +1
      Довольно странное желание. Если прям совсем критично, то теоретически нужно проверять адрес страницы, с которой осуществляется переход и сравнивать с разрешенными. Совпадает — даем ответ, не совпадает — отправляем на 404. Программирование это не ко мне, но есть такая штука
      $_SERVER['HTTP_REFERER'];
      Образцы сравнения, видимо, придется задавать как регулярное выражение, учитывая, что в адресе есть
      ?cms_name=modx&customerNumber=*
      Как уже впихнуть это в сниппет, решай сам. Может кто еще чего подскажет.
        Роман Садоян
        05 мая 2016, 23:00
        +1
        Довольно странное желание.
        Ну почему же странное желание, это очень похоже на то, как не показывать пользователю страницу «Большое спасибо, что воспользовались формой обратной связи!» или страницу регистрации авторизованным пользователям.

        А решение в принципе правильное, но у пользователей с отключенным referer может не сработать.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4