2013-09-09 4 views
0

Как я могу узнать, используя PHP, является ли текущий запрос из всплывающего окна или из обычного окна браузера?Как узнать, была ли загружена страница из всплывающего окна

- Спасибо

+4

всплывающее окно ** IS ** обычное окно браузера. –

+0

Ваш код на стороне клиента должен будет сообщить вашему серверному коду, что это происходит. При открытии окна «всплывающего окна» вы можете указать значение строки запроса, указывающее на код на стороне сервера, что это «всплывающее» окно. Однако, помимо явного указания кода на стороне сервера, другого пути нет. На самом деле это не проблема серверного кода, в котором окно клиента отображает контент. – David

+0

Это звучит как XY-проблема http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Halcyon

ответ

0

Вы не можете сделать это с помощью PHP.

Возможно, вы захотите использовать `$ _SERVER ['HTTP_REFERER'], чтобы определить, как пользователь достиг страницы, чтобы определить, является ли это всплывающим окном.

Если у вас есть возможность использовать JQuery, вы можете использовать $(window).height();, чтобы определить размер окна.

С сырьем JS вещами получить немного сложнее: http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript

0

РНР на стороне сервера, окно браузера являются на стороне клиента. нет способа узнать это, используя только PHP ... вам нужен язык на стороне клиента, который может отличить его, и передать его на ваш PHP-скрипт.

Но, как уже было сказано в комментариях, нет никакой разницы между всплывающим окном и «нормальным» окном браузера ... так же, как нет разницы между двумя экземплярами браузера и двумя вкладками в одном браузере window ...

0

если открыть всплывающие себя, вы можете открыть окно со строкой запроса, как это:

window.open("page.php?popup=1"); 

, то вы можете проверить эту строку запроса в PHP например:

if(isset($_GET['popup'])){ 
    echo 'popup window'; 
}else{ 
    echo 'normal window'; 
}