| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

17-03-2009, 14:39
|
|
onkelgigal
Newbie
|
|
Registriert seit: Feb 2008
Beiträge: 9
|
|
Seitenaufruf mit Handy erkennen??
Hallo PHPler,
ich stehe vor einem kleinen Problem und konnte bis jetzt leider keine Lösung finden.
Gibt es eine Möglichkeit bei einem Seitenaufruf zu erkennen ob dieser Aufruf von einem Handy aufgerufen wird? Mir ist leider keine Möglichkeit bekannt und ich kann mir nicht vorstellen wie das funktionieren sollte.
Gehe ich recht in der annahme das dies nicht möglich ist? Oder kennt doch jemand eine Lösung?!
|

17-03-2009, 15:14
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Mache senden ihre Telefonnummer im Request mit.
Auch die Browserkennung könnte Informationen liefern
Untersuche mal das $_SERVER Array.
http://www.zytrax.com/tech/web/mobile_ids.html
|

18-03-2009, 11:47
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Re: Seitenaufruf mit Handy erkennen??
Zitat:
Original geschrieben von onkelgigal
Gibt es eine Möglichkeit bei einem Seitenaufruf zu erkennen ob dieser Aufruf von einem Handy aufgerufen wird?
|
Keine 100-prozentig sichere.
Zitat:
Mir ist leider keine Möglichkeit bekannt und ich kann mir nicht vorstellen wie das funktionieren sollte.
|
Es gibt (mindestens) zwei Ansätze, um mobile Web-Clients genauer zu identifizieren. Über diese kannst du auch die Fähigkeiten des Gerät, auf dem der Client läuft, näher bestimmen. Sie tragen lustige Namen:
UAProf: User Agent Profile
WURFL: Wireless Universal Resource File
Für letzteres gibts eine fertige PHP-Library.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
Geändert von fireweasel (18-03-2009 um 11:49 Uhr)
|

19-03-2009, 13:53
|
|
onkelgigal
Newbie
|
|
Registriert seit: Feb 2008
Beiträge: 9
|
|
Kleiner Ansatz für alle die mal vor dem gleichen Problem stehen:
PHP-Code:
<?php
/* MOBILE DETECT */
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))):
$mobile_browser++;
endif;
if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))):
$mobile_browser++;
endif;
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array('w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');
if(in_array($mobile_ua,$mobile_agents)):
$mobile_browser++;
endif;
if(strpos(strtolower($_SERVER['ALL_HTTP']),'operamini')>0):
$mobile_browser++;
endif;
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0):
$mobile_browser=0;
endif;
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0):
$mobile_browser++;
endif;
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),' ppc;')>0):
$mobile_browser++;
endif;
if($mobile_browser>0):
echo "mobile";
else:
echo "nix mobile";
endif;
?>
|

20-03-2009, 11:57
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
PHP-Code:
// ...
$mobile_agents = array(
// ...
'oper',
// ...
);
if(in_array($mobile_ua,$mobile_agents)):
$mobile_browser++;
endif;
Es soll auch Oper(a)-Browser geben, die auf "gewöhnlichen" PCs (Desktop, Notebook etc.) laufen ...
PHP-Code:
// ...
if(strpos(strtolower($_SERVER['ALL_HTTP']),'operamini')>0):
$mobile_browser++;
endif;
// ...
Ich glaube nicht, dass OperaMini in der Lage ist, auf dem Webserver eine CGI-Variable namens 'ALL_HTTP' zu setzen ...
Entweder sie heißt 'HTTP_ALL' oder der Autor des Scriptes hat nicht wirklich den Durchblick.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|