Я разработал простой модальный ящик, и я добавил $_SERVER["HTTP_REFERER"]
поэтому от конкретного реферера не появится. Он отлично работает, но $_SERVER["HTTP_REFERER"]
не работает в Mozilla. Есть ли другой способ сделать это?
Я использую простой PHP-код:
if ($_SERVER["HTTP_REFERER"] == "www.thedomain.com/article.php"){ //Code to do not show the modal box }else{ //code to show the modal box }
Как объяснено, вы не можете полагаться на реферера. Некоторые пользователи предпочитают полностью отключать реферер, а по HTTPS он всегда пуст.
Просто используйте параметр строки запроса, например &modal=true
.
«HTTP_REFERER» – адрес страницы (если таковой имеется), которая ссылалась на пользовательский агент на текущую страницу. Это устанавливается пользовательским агентом. Не все пользовательские агенты установят это, а некоторые предоставляют возможность изменять HTTP_REFERER как функцию. Короче говоря, на это нельзя доверять.
http://php.net/manual/en/reserved.variables.server.php
Другими словами, вы не должны полагаться на это значение в своем коде. Тем не менее, нет надежного способа получить эту информацию. Вы просто не всегда имеете доступ к этой информации из браузера пользователя.