Ho da poco realizzato la versione mobile del mio sito, e ho sfruttato l'HTTP_USER_AGENT di php per determinare da quale dispositivo provenga l'accesso e provvedere ad un redirect automatico alla versione mobile.
Di seguito lo script
Codice PHP:
$my_user_agent = strtolower($_SERVER["HTTP_USER_AGENT"]);
if
(
strpos($my_user_agent, "alcatel") === FALSE &&
strpos($my_user_agent, "benq") === FALSE &&
strpos($my_user_agent, "blackberry") === FALSE &&
strpos($my_user_agent, "ericsson") === FALSE &&
strpos($my_user_agent, "galaxy") === FALSE &&
strpos($my_user_agent, "iphone") === FALSE &&
strpos($my_user_agent, "ipod") === FALSE &&
strpos($my_user_agent, "lg") === FALSE &&
strpos($my_user_agent, "motorola") === FALSE &&
strpos($my_user_agent, "nec-") === FALSE &&
strpos($my_user_agent, "nokia") === FALSE &&
strpos($my_user_agent, "sagem") === FALSE &&
strpos($my_user_agent, "samsung") === FALSE &&
strpos($my_user_agent, "sanyo") === FALSE &&
strpos($my_user_agent, "sharp") === FALSE &&
strpos($my_user_agent, "sie-") === FALSE &&
strpos($my_user_agent, "sony") === FALSE &&
strpos($my_user_agent, "panasonic") === FALSE &&
strpos($my_user_agent, "playstation portable") === FALSE &&
strpos($my_user_agent, "philips") === FALSE
)
{
// non succede nulla, carica il sito normale
}
else
{
// carica il sito mobile
echo "<script language=\"javascript\">
top.location.href = \"http://johell.altervista.org/mobile/\";
</script>";
}
Il problema è che non funziona con tutti gli smartphone, ad esempio alcuni modelli samsung non rilasciano la stringa "samsung" nell'HTTP_USER_AGENT, di conseguenza il controllo salta...
Su un samsung di mio possesso, ad esempio, l'HTTP_USER_AGENT rilascia una stringa molto lunga, ma al suo interno "samsung" non appare...
C'è un modo migliore per stabilire al 100% se il dispositivo è mobile?