Альтернатива для переменной $ _SERVER PHP в MSIE

Я использовал переменную $_SERVER['HTTP_REFERER'] в моем приложении (используется PHP). В Firefox выше переменные wokring. Но я заметил, что $_SERVER['HTTP_REFERER'] не работает в Microsoft Internet Explorer 8. Я также узнал, что переменная HTTP_REFERER не работает на MSIE8 и MSIE7.

Пожалуйста, дайте мне свои предложения, как использовать переменную $_SERVER['HTTP_REFERER'] чтобы избавиться от MSIE7 / 8 или есть ли другая альтернатива для переменной $_SERVER['HTTP_REFERER']

Спасибо за ваше предложение.

-Pravin.

Если вам нужно только использовать информацию реферера внутри вашего сайта (например, между страницами вашего сайта, а не извне), вы можете вручную отслеживать информацию о реферере пользователя.

 // Get the full URL of the current page function current_page_url(){ $page_url = 'http'; if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){ $page_url .= 's'; } return $page_url.'://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; } /* (Assuming session already started) */ if(isset($_SESSION['referrer'])){ // Get existing referrer $referrer = $_SESSION['referrer']; } elseif(isset($_SERVER['HTTP_REFERER'])){ // Use given referrer $referrer = $_SERVER['HTTP_REFERER']; } else { // No referrer } // Save current page as next page's referrer $_SESSION['referrer'] = current_page_url(); 

Затем, чтобы получить доступ к рефереру, просто используйте переменную $referrer .

 if(isset($referrer)){ echo 'Referred from "'.$referrer.'"'; echo '<a href="'.$referrer.'">Back</a>'; } else { echo 'No referrer'; } 

Таким образом, если пользователь посещает http://www.example.com/page_1.php , они будут видеть информацию о реферере, если их браузер предоставил ее, в противном случае нет реферера. Затем, когда они посещают http://www.example.com/page_2.php и любые последующие страницы вашего сайта, реферер будет доступен.

Пожалуйста , не используйте сеанс, чтобы угадать реферер . Это приведет к нежелательному поведению и странным ошибкам.

Если вам действительно нужно знать ссылочную страницу, передайте ее через параметр запроса. Вы можете добавить параметр с помощью сценария JS или на стороне сервера.

Вариант jQuery для всех ссылок на странице:

 $(document).ready(function(){ $('a').on('click', function(e) { url = this.getAttribute('href'); // Check if the page is internal. if (url.charAt(0) != '/') { return; } e.preventDefault(); // Append referrer. url += url.indexOf('?') === -1 ? '?' : '&'; url += 'referer=' + encodeURIComponent(document.URL); window.location = url; }); });