Intereting Posts
Чтение PHP недопустимым json с json_decode (); читать xml-файл с php .htaccess между разработкой, постановкой и производством «Функция split () устарела» в PHP? Как создать массив из этого набора результатов (вложенные категории, хранящиеся в базе данных с моделью обхода)? Когда файлы ini в файле /etc/php.d/ загружаются? Соединение с WebSocket с «ws: //mydomain.com: 8084 /? Peer_id = 123» не выполнено: ошибка при установлении соединения: net :: ERR_CONNECTION_TIMED_OUT Удалить подполя из документа mongoDb Как вызвать метод обратного вызова для класса? array merge и total, если это те же ключи Как мы можем сделать следующее утверждение в темах Controller с paginate? динамически создавать текстовые области с уникальными идентификаторами на основе входных данных флажка Ошибка анализа: синтаксическая ошибка, неожиданный '{', expecting '(' help? Как я могу обмениваться контентом со своей внутренней страницы на странице Facebook? Динамически созданные zip-файлы ZipStream в PHP не будут открываться в OSX

Отсутствует информация HTTP-Referrer о IE / FF (хорошо работает в Chrome / Safari)

У меня есть page1.php с этим кодом:

 <form action="/redirect.php" method="POST" target="_blank"> <input name="destination" type="hidden" value="a"/> <input type="submit" value="Click here"></form> 

и это redirect.php :

 <?php $url = "http://www.default.com"; if(isset($_POST['destination'])){ switch ($_POST['destination']) { case "a": $url = "http://www.domain1.com"; break; case "b": $url = "http://www.domain2.com"; break; default: $url = "http://www.default.com"; } } header( "refresh:1;url=$url" ); ?> <!doctype html> <html> <head> </head> <body> <div>Redirecting, Please wait</div> </body> </html> 

Я создал страницу перенаправления таким образом, потому что для меня важно, чтобы она загружала и отображала определенный контент, а не перенаправляла сразу (и, следовательно, выдает код 200, а не код 302).

Однако только в Chrome и Safari заголовки перенаправления содержат информацию о domain1.com , который является redirect.php , и, таким образом, например, владелец domain1.com будет знать, что посетитель пришел из mydomain.com/redirect.php .

Но в IE и FF реферер в заголовках имеет значение null. Что вызывает это различное поведение и как я могу его исправить, чтобы они несли одну и ту же информацию о реферере?

Вы можете попробовать:

 header("Location: ".$url.""); 

Рабочий пример (проверено на FF 27.0.1):

Файл page1.php :

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Starting page</title> </head> <body> <form action="redirect.php" method="post"> <input type="hidden" name="destination" value="a"> <input type="submit" value="Click here"> </form> </body> </html> 

Файл redirect.php :

 <?php $url = "http://www.default.com"; if(isset($_POST['destination'])){ switch ($_POST['destination']) { case "a": $url = "http://www.domain.com"; break; case "b": $url = "http://www.examples.com"; break; default: $url = "http://www.example.com"; } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Landing page</title> </head> <body> <div>Redirecting, Please wait</div> <script> window.onload = function() { setTimeout(function(){ window.location = '<?php echo $url;?>'; }, 4000); }; </script> </body> </html> 

Как это работает: после нажатия кнопки Click here на page1.php , отправленные данные отправляются и выбирается домен http://www.domain.com . С помощью javascript через 4 секунды после загрузки окна браузер перенаправит пользователя на http://www.domain.com . Я смотрел заголовки рефери в Firebug и они были отправлены.

Смущенный. Перенаправление и обновление страницы не одинаково. И еще – не все браузеры поддерживают обновление заголовка.