Indice PHP indéfini: HTTP_USER_AGENT
Le code suivant valide l'agent de l'utilisateur accédant au site, cependant j'obtiens l'erreur. De quoi ai-je besoin de mettre à jour pour accueillir les scénarios où il n'y a aucun agent utilisateur d'être ensemble?
ERREUR
PHP notice: Undefined index: HTTP_USER_AGENT in Utils.php sur la ligne 7
CODE
public static function detectBrowser()
{
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
if (preg_match('/opera/', $userAgent)) {
$name = 'opera';
}
elseif (preg_match('/webkit/', $userAgent)) {
$name = 'safari';
}
elseif (preg_match('/msie/', $userAgent)) {
$name = 'msie';
}
elseif (preg_match('/mozilla/', $userAgent) && !preg_match('/compatible/', $userAgent)) {
$name = 'mozilla';
}
else {
$name = 'unrecognized';
}
if (preg_match('/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/', $userAgent, $matches)) {
$version = $matches[1];
}
else {
$version = 'unknown';
}
if (preg_match('/linux/', $userAgent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/', $userAgent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/', $userAgent)) {
$platform = 'windows';
}
else {
$platform = 'unrecognized';
}
return array(
'name' => $name,
'version' => $version,
'platform' => $platform,
'userAgent' => $userAgent
);
}
source d'informationauteur PeanutsMonkey
Vous devez vous connecter pour publier un commentaire.
L'-tête User-Agent est facultatif. Les pare-feu peuvent filtrer ou les gens peuvent configurer leurs clients afin de les omettre. Il suffit de vérifier à l'aide de
isset()
si elle existe. Ou mieux encore, utiliser!empty()
comme un vide en-tête ne sera pas utile, soit:Cependant, puisque l'ensemble de votre code semble fonctionner sur une chaîne vide et conduit à "l'inconnu" valeurs", il vous suffit de modifier la ligne suivante:
comme ceci:
utiliser isset: