Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: UNFORMAT en 13 Febrero 2011, 23:06 PM

Título: Problema con user agent de Iphone, Ipad y Ipod
Publicado por: UNFORMAT en 13 Febrero 2011, 23:06 PM
Hola buenas, tenia el siguiente código que utilizaba para redireccionar a otra pagina todos los usuarios que no accedieran a través del iphone a una determinada web:
Código (php) [Seleccionar]
function iPhoneCheck() {
$browser = strpos($_SERVER['HTTP_USER_AGENT'], "iPhone" );
if ($browser === false) {
return false;
} else {
return true;
}
}
if (iPhoneCheck()) {

} else {
header ("Location: http://www.loquesea.com"); }
?>



El problema es que ahora quiero añadir también a los usuarios que entren desde iPad y iPod, como puedo hacerlo? lo he intentado con OR pero no va, al parecer es problema de strpos


¿alguna sugerencia?
Título: Re: Problema con user agent de Iphone, Ipad y Ipod
Publicado por: JungleBoogie en 13 Febrero 2011, 23:36 PM
Pues segun lo que pone en este enlace (http://blogs.sitepoint.com/2010/04/20/identify-apple-iphone-ipod-ipad-visitors/):

iPod:
Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3A101a Safari/419.3

iPhone:
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

iPad:
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) version/4.0.4 Mobile/7B367 Safari/531.21.10

Por lo que esto deberia funcionar:
function iPhoneCheck() {
$browser = strpos($_SERVER['HTTP_USER_AGENT'], "iPhone" ) || strpos($_SERVER['HTTP_USER_AGENT'], "iPod" ) || strpos($_SERVER['HTTP_USER_AGENT'], "iPad" );
if ($browser === false) {
return false;
} else {
return true;
}
}
if (iPhoneCheck()) {

} else {
header ("Location: http://www.loquesea.com"); }
?>


Y sino:
function iPhoneCheck() {
$browser = strpos($_SERVER['HTTP_USER_AGENT'], "iPhone" ) || strpos($_SERVER['HTTP_USER_AGENT'], "iPod" ) || strpos($_SERVER['HTTP_USER_AGENT'], "iPad" );
if ($browser > 0) {
return true;
} else {
return false;
}
}
if (iPhoneCheck()) {

} else {
header ("Location: http://www.loquesea.com"); }
?>