Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: WAP и WWW
 
 автор: Sfinks   (29.03.2005 в 06:05)   письмо автору
 
 

Здравствуйте =))

У меня такой вопрос....
Как программа может узнать, обращаются к ней с мобилы или с компа?
Т.е. либо что-то вроде:
<?php if (/*если это WAP*/) { ?>
WML-код страницы
<?php }else{ ?>
HTML-код страницы
<?php ?>

либо в .htaccess это можно как-то разграничить, либо как-то еще, но чтобы пользователь, хоть с компа, хоть с мобилы писал imya_sajta.ru и получал корректный результат!

   
 
 автор: cheops   (29.03.2005 в 09:44)   письмо автору
 
   для: Sfinks   (29.03.2005 в 06:05)
 

По сути наверное никак... но ведь все пользователи мобильных телефонов ходят через прокси-сервера и их немного. Т.е. допустим все жители Н.Новгорода выходящие в WAP будут идентифцироваться сервером как посетитель с IP-адресом 217.118.93.2, в Москве наверное таких адресов должно быть несколько. Т.е. следут поставить ловушку на IP-адреса $_SERVER['REMOTE_ADDR'] http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=2870&page=1 и опеределить хост при помощи функции gethostbyaddr()
<?php
   $hostname 
gethostbyaddr($_SERVER['REMOTE_ADDR']);
   echo 
$hostname;
?>

Для того, же Билайна будет выведено "nnfw2.beelinegprs.com"

...хотя ни фига мы так не опередлим, если WAP и GPRS-пользователи ходят с одного IP-адреса :(((

   
 
 автор: Akira   (29.03.2005 в 10:33)   письмо автору
 
   для: cheops   (29.03.2005 в 09:44)
 

Слушайте гуру в этом деле =) Единственное , что можно сделать так
это только при помощи юзер агента.

$_SERVER["HTTP_USER_AGENT"]

   
 
 автор: RV   (29.03.2005 в 12:46)   письмо автору
 
   для: Akira   (29.03.2005 в 10:33)
 

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

   
 
 автор: cheops (из ННГУ)   (29.03.2005 в 17:40)
 
   для: RV   (29.03.2005 в 12:46)
 

Хм... а это идея, только боюсь он может быть пустой....

   
 
 автор: Sfinks   (29.03.2005 в 19:53)   письмо автору
 
   для: cheops (из ННГУ)   (29.03.2005 в 17:40)
 

Да хотя бы даже упростить задачу....
На одном и том же домене юзер пишет wap.домен.ru - получает wml, пишет домен.ru или www.домен.ru - получает html.
Хотя, при наличии только домена третьего уровня - ето плохо =(( Согласитесь, писать (а главное запоминать) что-то вроде wap.ext.org.ru не очень удобно =((

   
 
 автор: Akira   (30.03.2005 в 00:16)   письмо автору
 
   для: Sfinks   (29.03.2005 в 19:53)
 

User Agent не пустой =) Имеет виду типа

SIE-C60
NOKIA6610i

ТАк , что только так и не иначе.

   
 
 автор: cheops   (30.03.2005 в 09:39)   письмо автору
 
   для: Akira   (30.03.2005 в 00:16)
 

Здорово, Akira у вас нет базы с USER_AGENT-ами сотовых телефонов? Я думаю эта информация была бы интересна всем кто занимается WAP...

   
 
 автор: Akira   (30.03.2005 в 14:06)   письмо автору
 
   для: cheops   (30.03.2005 в 09:39)
 

Вся база пропала =( НА петерхосте был проект, но он загнулся, а я не услидил.

   
 
 автор: Sfinks   (02.04.2005 в 01:09)   письмо автору
 
   для: cheops   (30.03.2005 в 09:39)
 

А что нам мешает создать такую базу?

В любом месте Вашего сайта положить простейший скрипт, который будет сохранять USER_AGENT обратившегося, и Вам, Cheops, как местному авторитету, создать новую тему, типа "Создадим базу!" с не длинным пояснением что к чему и просьбой КО ВСЕМ обратиться к указанному адресу с мобил через WAP. Даже кто не часто ходит на сам форум, получит письмо на мыло, и чего-то мы добьемся! =))

Давайте проведем эксперимент?!.. М?

   
 
 автор: Akira   (02.04.2005 в 10:17)   письмо автору
 
   для: Sfinks   (02.04.2005 в 01:09)
 

А как мы "заставим" людей заходить со своих мобильных?

   
 
 автор: Sfinks   (02.04.2005 в 11:22)   письмо автору
 
   для: Akira   (02.04.2005 в 10:17)
 

Почему ЗАСТАВИМ???...... ПОПРОСИМ!!!
Я же написал - в теме кратко описать зачем это нужно, и ПОПРОСИТЬ открыть адрес.
А скрипт сохранит USER_AGENT и выведет пользователю например "Спасибо за сотрудничество! Результаты будут размещены там-то тогда-то".
За одно и узнаем сколько людей здесь готовы помочь в общем деле.
ОБЩЕМ - потому что, как сказал Cheops, эта база будет очень интересна всем, кого интересует WAP.

   
 
 автор: cheops   (02.04.2005 в 11:33)   письмо автору
 
   для: Akira   (02.04.2005 в 10:17)
 

Да, здесь нужен именно хорошо-раскрученный WAP-проект, куда тьма народу с разных сотяр ходят - а мы так не сможем отсеять роботов, менеджеров закачки и посетителей с мобил.

   
 
 автор: Sfinks   (02.04.2005 в 11:49)   письмо автору
 
   для: cheops   (02.04.2005 в 11:33)
 

Да не нужен здесь проект! Чисто в пределах этого форума! У Вас 700 зарегистрированных пользователей! Просто попросить их обратиться к коду:
<?php
  $file 
fopen("u_agents.txt""a");
  if(
$file)
  { 
fwrite($file"\n".$_SERVER['USER_AGENT']);
    
fclose($file);
  }
  echo 
"Спасибо за сотрудничество!"
?>
который, например, будет лежать на www.softtime.ru/sua.php
Человек 50 откликнется, уже что-то.... Хоть названия фирм будут! А додумать (дописать) номера моделей уже можно вручную! Или вообще при проверке (использовании результатов) не проверять номер модели, а проверять только
<?php
  
if(substr($_SERVER['USER_AGENT'],0,5) == "NOKIA")
  
// значит ето уже телефон, а следовательно WAP!
?>

   
 
 автор: cheops   (02.04.2005 в 12:07)   письмо автору
 
   для: Sfinks   (02.04.2005 в 11:49)
 

Да поленятся, я в первую очередь, ведь не все любят WAP, я например терпеть не могу набирать что-то на телефоне (я даже sms-ки через шнурок отправляю с компа) - здесь бы нужен профильный ресурс - какой-нибудь WAP-чат или ещё что-то в этом духе - мы так ловить очень долго будем.

   
 
 автор: OZ   (09.06.2005 в 00:59)   письмо автору
 
   для: cheops   (30.03.2005 в 09:39)
 

Я могу за пару дней подробнейшую базу составить. Только она не нужна. Я определяю с помощью условий вроде
 if (stristr("Samsung",$HTTP_USER_AGENT)) $agent="Samsung"; 
- 20 условий ВПОЛНЕ хватает.

   
 
 автор: Sfinks   (10.06.2005 в 12:04)   письмо автору
 
   для: OZ   (09.06.2005 в 00:59)
 

Согласен, списка производителей достаточно!
А он у тебя имеется?.... Такой, чтобы никого не забыть....
Если есть, выложи плиз =))

   
 
 автор: OZ   (10.06.2005 в 13:19)   письмо автору
 
   для: Sfinks   (10.06.2005 в 12:04)
 

<?php 
Function telname($agent)
{
If (
strpos($agent"/")>0$agent=substr($agent,0,strpos($agent"/"));
$agent=strtoupper($agent);
If (
stristr($agent"ERICSSON")) $name="Ericsson";
If (
stristr($agent"SONYERICSSON")) $name="SonyEricsson";
if (
stristr($agent"NOKIA")) $name="Nokia";
if (
stristr($agent"SAMSUNG") || stristr($agent"SEC-")) $name="Samsung";
if (
stristr($agent"SIE")) $name="Siemens";
if (
stristr($agent,"MOT")) $name="Motorola";
If (
stristr($agent"LG ") || stristr($agent"LG-")) $name="LG";
if (
stristr($agent"SHARP")) $name="Sharp";
if (
stristr($agent"ALCATEL")) $name="Alcatel";
if (
stristr($agent"PANASONIC")) $name="Panasonic";
if (
stristr($agent"SAGEM")) $name="Sagem";
if (
stristr($agent"PANTECH")) $name="Pantech";
if (
stristr($agent"NEC")) $name="NEC";
if (
stristr($agent"BENQ")) $name="BenQ";
return 
$name;
}
?>

   
 
 автор: MajoR   (17.02.2006 в 02:47)   письмо автору
 
   для: OZ   (10.06.2005 в 13:19)
 

Да парни, чет вы тут мутите, особенно с проверками. Вот пример простой функции. Для себя накатал за пару минут:

<?
function user_agent_detecter($userep){
  
$usagent =  getenv("HTTP_USER_AGENT");
  
$usagent trim(substr($usagent0strpos($usagent,'/')));
  
$flag false;
  for(
$i=0$i<count($userep); $i++){
        if(!
$flag){
             
$usagent eregi_replace($userep[$i], $userep[$i+1], $usagent);
             
$flag=true;
             }else{ 
$flag false; }
        }
  return 
$usagent;
}

//Вырезаем некрасивые места, чтобы выделить чисто модель телефона:
$userep = array(
 
'MOT-','Motorola',
 
'SIE','Siemens',
 
'Nokia','Nokia ',
 
'SGH','',
 
'UP.Browser','',
 
' MIC''',
 
'-'' '
);

echo 
user_agent_detecter($userep);
?>


Можно сделать определение на тип браузера. Не спорю что мой метод самый лучший. Но в 80% он работает. Пример:


<?
$winserf 
= array(
 
'Mozilla',
 
'Opera'
);

$ua user_agent_detecter($userep);
if(
in_array($ua$winserf)) echo "Этоне мобила!";
else echo 
"Модель вашего телефона: ".$ua;
?>


На выходе функции имеем:
Nokia 7200 вместо Nokia7200/2.0 (3.110) Profile/MIDP-1.0 Configuration/CLDC-1.0
SAMSUNG X100 вместо SAMSUNG SGH-X100 UP.Browser/6.1.0.6 (GUI) MMP/1.0
Siemens C62 вместо SIE-C62/97

Просто ипонятно, а главное пашет. Тока для фильтрации мобильный броузер или нет нужен список по которому будет идти проверка валидный юзерагент или нет. У меня $winserf но не факт что он лучше, хотя вам решать: составитьсписок основных броузеров или моделей мобил. Каждому свое.

   
 
 автор: Sfinks   (02.04.2005 в 16:10)   письмо автору
 
   для: Sfinks   (29.03.2005 в 06:05)
 

Вот я тут пособирал чуть-чуть....
Alcatel-TH4/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
LG-C1100 MIC/WAP2.0 MIDP-2.0/CLDC-1.0
LG-G1600 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG-G5600 MIC/WAP2.0 MIDP-2.0/CLDC-1.0
MOT-C650/0B.D2.23R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
Motorola-E365 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
MOT-V600/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
Nokia3100/1.0 (03.10) Profile/MIDP-1.0 Configuration/CLDC-1.0
Nokia7200/2.0 (3.110) Profile/MIDP-1.0 Configuration/CLDC-1.0
Nokia7210/1.0 (5.52) Profile/MIDP-1.0 Configuration/CLDC-1.0
SAMSUNG SGH-X100 UP.Browser/6.1.0.6 (GUI) MMP/1.0
SAMSUNG-SGH-E100/T2 UP.Browser/6.1.0.6 (GUI) MMP/1.0
SAMSUNG-SGH-X100/PEARL UP.Browser/6.1.0.6 (GUI) MMP/1.0
SEC-SGHC100/1.0 UP.Browser/5.0.5.1 (GUI)
SIE-C62/97
SIE-C65/25 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
SIE-CX65/12 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
SIE-MC60/13 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
SonyEricssonT68/R201A Profile/MIDP-1.0 Configuration/CLDC-1.0
TTPCom WAP

Будет еще, дополню!
А кто все же не поленится, загрузите через WAP страницу http://ua.bol.org.ru
Заодно получите ссылку на бесплатную JAVA-игру =))

   
 
 автор: Sfinks   (03.04.2005 в 03:45)   письмо автору
 
   для: Sfinks   (02.04.2005 в 16:10)
 

Вот еще....
BOL-LOADER
MOT-C380/0B.D2.23R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
MOT-C650/0B.D2.23R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
Nokia3120/1.0 (05.91) Profile/MIDP-1.0 Configuration/CLDC-1.0
PHILIPS 530 / Obigo Internet Browser 2.0
SAMSUNG-SGH-X600/K3 UP.Browser/6.1.0.6 (GUI) MMP/1.0
SEC-SGHC100G/1.0 UP.Browser/5.0.5.1 (GUI)
SIE-C60/25 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
SonyEricssonT230/R101
SonyEricssonZ600/R601 Profile/MIDP-1.0 Configuration/CLDC-1.0

   
 
 автор: Loki   (10.06.2005 в 13:31)   письмо автору
 
   для: Sfinks   (03.04.2005 в 03:45)
 

а у меня есть вот такой:

Mozilla/4.1 (compatible; MSIE 5.0; Symbian OS; Nokia 6600;422) Opera 6.10  [ru]

   
 
 автор: cheops   (10.06.2005 в 13:38)   письмо автору
 
   для: Loki   (10.06.2005 в 13:31)
 

А это не КПК?

   
 
 автор: OZ   (10.06.2005 в 13:57)   письмо автору
 
   для: Loki   (10.06.2005 в 13:31)
 

Это или с компа зашли или со смартфона. Разницы для представления контента нет - если как Mozilla умеет идентифицироваться, значит и WEB-контент отобразит.

   
 
 автор: Akira   (10.06.2005 в 14:23)   письмо автору
 
   для: OZ   (10.06.2005 в 13:57)
 

Эх-хе-хе зря вы так. Производителей много ох как много ;)
Сони еще маскиуреться под SE =)
Symbian или WM вам вообще может не сообшить какой телефон ;)

   
 
 автор: skor   (31.10.2005 в 20:11)   письмо автору
 
   для: Akira   (10.06.2005 в 14:23)
 

кому нужна база??? качайте
http://xwap.org/user.txt

   
 
 автор: MajoR   (17.02.2006 в 03:04)   письмо автору
 
   для: skor   (31.10.2005 в 20:11)
 

Да парни, чет вы тут мутите, особенно с проверками. Вот пример простой функции. Для себя накатал за пару минут:

<?
function user_agent_detecter($userep){
  
$usagent =  getenv("HTTP_USER_AGENT");
  
$usagent trim(substr($usagent0strpos($usagent,'/')));
  
$flag false;
  for(
$i=0$i<count($userep); $i++){
        if(!
flag){
             
$usagent eregi_replace($userep[$i], $userep[$i+1], $usagent);
             
$flag=true;
             }else{ 
$flag false; }
        }
  return 
$usagent;
}

//Вырезаем некрасивые места, чтобы выделить чисто модель телефона:
$userep = array(
 
'MOT-','Motorola',
 
'SIE','Siemens',
 
'Nokia','Nokia ',
 
'SGH','',
 
'UP.Browser','',
 
' MIC''',
 
'-'' '
);

echo 
user_agent_detecter($userep);
?>


Можно сделать определение на тип браузера. Не спорю что мой метод самый лучший. Но в 80% он работает. Пример:


<?
$winserf 
= array(
 
'Mozilla',
 
'Opera'
);

$ua user_agent_detecter($userep);
if(
in_array($ua$winserf)) echo "Это не мобила!";
else echo 
"Модель вашего телефона: ".$ua;
?>


На выходе функции имеем:
Nokia 7200 вместо Nokia7200/2.0 (3.110) Profile/MIDP-1.0 Configuration/CLDC-1.0
SAMSUNG X100 вместо SAMSUNG SGH-X100 UP.Browser/6.1.0.6 (GUI) MMP/1.0
Siemens C62 вместо SIE-C62/97

Просто ипонятно, а главное пашет. Тока для фильтрации мобильный броузер или нет нужен список по которому будет идти проверка валидный юзерагент или нет. У меня $winserf но не факт что он лучше, хотя вам решать: составитьсписок основных броузеров или моделей мобил. Каждому свое.

   
 
 автор: MajoR   (18.02.2006 в 23:21)   письмо автору
 
   для: MajoR   (17.02.2006 в 03:04)
 

-

   
 
 автор: MajoR   (18.02.2006 в 23:23)   письмо автору
 
   для: MajoR   (17.02.2006 в 03:04)
 

-

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования