Сейчас: 20:54:53   19-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеПолучить разрешение экрана
19
68

Скрипт получения разрешения экрана
и записи его на стороне сервера

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


В таком случае нам может помочь использование JavaScript кода, который будет выполняться непосредственно в браузере посетителя при заходе на Ваш сайт. Но тут возникает вопрос: как передать полученные при помощи JavaScript в браузере пользователя данные на сервер?


Ответ: необходимые данные можно передавать через строку URL-адреса (методом $_GET). В таком случае нам понадобится принудительная перезагрузка посещенной странички после добавления необходимых данных в строку адреса.


Далее мы приводим скрипт, который добавляет необходимые данные о разрешение экрана посетителя сайта в строку URL-адреса, после чего делает принудительную перезагрузку посещенной странички. После перезагрузки странички срабатывает скрипт записи логов посещений (строчка include "visit_bot.php";) на стороне сервера.

PHP код:
<?php
if (!isset($_GET[w]) and !isset($_GET[h])) {
?>
 <
script type="text/javascript">;
 var 
width 0
 var 
height 0;
 if (
self.screen) {
    
width screen.width;
    
height screen.height;
 }
 else if (
self.java) {
    var 
jToolKit java.awt.Toolkit.getDefaultToolkit();
    var 
scrsize jToolKit.getScreenSize();
    
width scrsize.width;
    
height scrsize.height
 }

<?
php
 
echo 'location.href="'.$_SERVER[SCRIPT_NAME].'?w=" + width + "&h=" + height';
 echo 
'</script>';
}
else include 
"visit_bot.php";
?>

После выполнения приведенного выше скрипта, на стороне сервера, остается только вытащить данные из строки адреса методом $_GET и записать их в базу. Для этого в скрипте записи логов посещений необходимо заменить всего одну строчку:

Цитата:
$lines[]=$date."|".$bot."|".$ip."|".$home."\r\n";

на строчку

$lines
[]=$date."|".$bot."|".$ip."|".$home."|".$_GET[w]."|".$_GET[h]."\r\n";

На данный момент это наверно самое простое решение получения информации о разрешении экрана посетителей Вашего сайта, но есть и свои минусы - необходима принудительная перезагрузка тех страничек, где будет стоять скрипт определения разрешения экрана посетителя.

Дата создания: 15:25:04 05.10.2011 г.
Дата обновления: 22:36:47 08.03.2012 г.
Посещений: 11658 раз(а).

Комментарии посетителей (5 шт.):
Алексей
4
# 34
(19:42:58  10.11.2011 г.)

Вы супер ребята! Благодарочка Вам огромная, теперь будет понятно под каким разрешением на сайт заходят, что бы максимально адаптировать разметку страницы...
Ответить

Александр
0
# 1513
(00:33:34  06.03.2014 г.)

Думаю, можно использовать jQuery и не перезагружать страницу. В фоне отправить разрешение и всё.
Ответить

Артем
0
# 3230
(14:23:28  23.05.2016 г.)

А если JavaScript на клиенте отключен?
Ответить

Administrator
0
# 3231
(19:54:00  23.05.2016 г.)

Тогда работать не будет.
Ответить

Егор
0
# 3358
(15:43:10  03.08.2016 г.)

Там получается странная ссылка.
Ответить

Закрыть
Ваше имя:
422 + 9 =
Добавить комментарий:
Ваше имя:
422 + 9 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 4

Какую CMS для сайта Вы предпочитаете?