Foro de elhacker.net

Programación => 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
  1. function iPhoneCheck() {
  2. $browser = strpos($_SERVER['HTTP_USER_AGENT'], "iPhone" );
  3. if ($browser === false) {
  4. return false;
  5. } else {
  6. return true;
  7. }
  8. }
  9. if (iPhoneCheck()) {
  10.  
  11. } else {
  12. header ("Location: http://www.loquesea.com"); }
  13. ?>


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:
Código:
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:
Código:
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:
Código:
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:
Código:
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:
Código:
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"); }
?>