bonjour à tous,
J'ai créer mon site internet il y a quelque temps, qui tourne gentiment sous chrome, mais sur certain que je nommerai pas, mais il y a toujours le même, c'est plus noël.
Je souhaiterai que lorsqu'une personnes se connecte à mon site, en fonction de son explorateur il message apparaisse ou pas.
Je sais que c'est une question déjà posé, mais ce qu'il y a je n'arrive aps à retrouver les bons mots pour réveiller les moteurs de recherche.
Pourriez vous juste me dire ce que je cherche avec les bon mots.
Merci d'avance Flo
Bonjour,
tu trouveras des infos qui t'aiderons dans ta quête ici : http://www.phpfacile.com/creer_un_site_web_en_php/variables_predefinies_1.php5
sinon, peut être qu'avec les mots clés suivant, tu pourras t'aiguiller dans ta recherche : php détection navigateur
merci beaucoup,
grâce à toi j'ai pu trouver un php que j'ai retouché juste sur la forme
<?php
function detect_browser(){
$a=$_SERVER'HTTP_USER_AGENT'];
$b='\s\/]([0-9v]{1,7}(?:\.[0-9a-z]{1,7}){0,7})';
if (preg_match('#firefox'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Firefox version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#msie'.$b.'#i',$a,$c))
return('<div class="alert alert-danger">Attention, ce site n\'a pas été conçu pour votre navigateur Microsoft Internet Explorer version '.$c[1].'. Il vous est conseillé d\'utiliser un vrai navigateur internet comme Google Chome qui accepte les standards du net</div>');
if (preg_match('#chrome'.$b.'#i',$a,$c))
return('<div class="alert alert-success">Ce site a été conçu et testé pour Google Chrome version '.$c[1].'. Merci d\'avoir pris un vrai navigateur internet</div>');
if (preg_match('#icab'.$b.'#i',$a,$c))
return('<div class="alert alert-danger">Attention, ce site n\'a pas été conçu pour votre navigateur internet iCab (Crystal Atari Browser) version '.$c[1].'</div>');
if (preg_match('#microsoft\sPocket\sinternet\sexplorer'.$b.'#i',$a,$c))
return('<div class="alert alert-danger">Attention, ce site n\'a pas été conçu pour votre navigateur Microsoft Pocket Internet Explorer version '.$c[1].'. Il vous est conseillé d\'utiliser un vrai navigateur internet comme Google Chome qui accepte les standards du net</div>');
if (preg_match('#mspie'.$b.'#i',$a,$c))
return('<div class="alert alert-danger">Attention, ce site n\'a pas été conçu pour votre navigateur internet Microsoft Pocket Internet Explorer version '.$c[1].'. Il vous est conseillé d\'utiliser un vrai navigateur internet comme Google Chome qui accepte les standards du net</div>');
if (preg_match('#konqueror'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Konqueror version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#lunascape'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Lunascape version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#lynx'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Lynx version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#minimo'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Minimo version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#netscape'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Netscape version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#^nokia(^\/]+)\/([0-9v]{1,7}(?:\.[0-9a-z]{1,7}){0,7})#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Nokia '.trim($c[1]).' version '.$c[2].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#offbyone;#i',$a))
return('<div class="alert alert-warning">Attention, votre navigateur internet OffByOne n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#omniweb'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Omniweb version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#opera'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Opera version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#safari'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Safari version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#seamonkey'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet SeaMonkey version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#w3m'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet W3m version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#ia_archiver#i',$a))
return('<div class="alert alert-warning">Attention, votre navigateur internet Alexa Bot');
if (preg_match('#ask\sjeeves#i',$a))
return('<div class="alert alert-warning">Attention, votre navigateur internet Ask Jeeves Bot n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#curl'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Curl version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#exabot'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Exaled bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#ng'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Exaled bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#exabot-thumbnails#i',$a))
return('<div class="alert alert-warning">Attention, votre navigateur internet Exaled bot n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#gamespyhttp'.$b.'#i',$a,$c))
return('GameSpy Industries bot version '.$c[1].'</div>');
if (preg_match('#gigabot'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Gigablast bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#googlebot'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Google bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#googlebot-image'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Google bot (image) version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#grub-client\s\/\-]([0-9v]{1,7}(?:\.[0-9a-z]{1,7}){0,7})#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet LookSmart Grub bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#yahoo! slurp#i',$a))
return('<div class="alert alert-warning">Attention, votre navigateur internet Yahoo! Search) bot n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#slurp#i',$a))
return('<div class="alert alert-warning">Attention, votre navigateur internet Inktomi Slurp bot n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#msnbot'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Microsoft MSN Search bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#scooter\s\/\-]([0-9v]{1,7}(?:\.[0-9a-z]{1,7}){0,7})#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet AltaVista Scooter bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#wget'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet Wget bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
if (preg_match('#w3c_validator'.$b.'#i',$a,$c))
return('<div class="alert alert-warning">Attention, votre navigateur internet W3C validator bot version '.$c[1].' n\'a pas été testé pour ce site, merci de nous dire comment réagit votre navigateur</div>');
return '<div class="alert alert-danger">Navigateur non identifié</div>';
}
echo detect_browser();die();
?>
bonjour
perso je trouve ton code très sale et très mal structuré. il faut toujours penser à séparer le code du html.
voici une classe qui devrait t'aider à faire la même chose:
<?php /**
* IrivenCMS Pro : Rapid Development Framework (http://www.iriven.com)
* Copyright 2008-2013, Iriven France Software, Inc.
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright 2008-2013, Iriven France Software, Inc.
* @link http://www.iriven.com IrivenCMS Project
* @package IrivenCMS.Utility
* @since IrivenCMS Pro v 1.0.4
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
class UserAgent
{
private $agent = null;
private $isBrowser = false;
private $isMobile = false;
private $isRobot = false;
private $platform = '';
private $browser = '';
private $version = '';
private $mobile = '';
private $robot = '';
private $charsets = array();
private $languages = array();
private $platforms = array (
'Windows NT 6.2' => 'Windows 8',
'Windows NT 6.1' => 'Windows 7',
'windows nt 6.0' => 'Windows Longhorn',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.0' => 'Windows 2000',
'windows nt 5.1' => 'Windows XP',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows' => 'Unknown Windows OS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS'
);
private $browsers = array(
'Flock' => 'Flock',
'Chrome' => 'Google Chrome',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse',
'NCSA_Mosaic' => 'Mosaic'
);
private $mobiles = array(
'mobileexplorer' => 'Mobile Explorer',
'palmsource' => 'Palm',
'palmscape' => 'Palmscape',
// Phones and Manufacturers
'motorola' => "Motorola",
'nokia' => "Nokia",
'palm' => "Palm",
'iphone' => "Apple iPhone",
'ipad' => "iPad",
'ipod' => "Apple iPod Touch",
'sony' => "Sony Ericsson",
'ericsson' => "Sony Ericsson",
'blackberry' => "BlackBerry",
'cocoon' => "O2 Cocoon",
'blazer' => "Treo",
'lg' => "LG",
'amoi' => "Amoi",
'xda' => "XDA",
'mda' => "MDA",
'privateio' => "Vario",
'htc' => "HTC",
'samsung' => "Samsung",
'sharp' => "Sharp",
'sie-' => "Siemens",
'alcatel' => "Alcatel",
'benq' => "BenQ",
'ipaq' => "HP iPaq",
'mot-' => "Motorola",
'playstation portable' => "PlayStation Portable",
'hiptop' => "Danger Hiptop",
'nec-' => "NEC",
'panasonic' => "Panasonic",
'philips' => "Philips",
'sagem' => "Sagem",
'sanyo' => "Sanyo",
'spv' => "SPV",
'zte' => "ZTE",
'sendo' => "Sendo",
// Operating Systems
'symbian' => "Symbian",
'SymbianOS' => "SymbianOS",
'elaine' => "Palm",
'palm' => "Palm",
'series60' => "Symbian S60",
'windows ce' => "Windows CE",
// Browsers
'obigo' => "Obigo",
'netfront' => "Netfront Browser",
'openwave' => "Openwave Browser",
'mobilexplorer' => "Mobile Explorer",
'operamini' => "Opera Mini",
'opera mini' => "Opera Mini",
// Other
'digital paths' => "Digital Paths",
'avantgo' => "AvantGo",
'xiino' => "Xiino",
'noprivatera' => "Noprivatera Transcoder",
'vodafone' => "Vodafone",
'docomo' => "NTT DoCoMo",
'o2' => "O2",
// Fallback
'mobile' => "Generic Mobile",
'wireless' => "Generic Mobile",
'j2me' => "Generic Mobile",
'midp' => "Generic Mobile",
'cldc' => "Generic Mobile",
'up.link' => "Generic Mobile",
'up.browser' => "Generic Mobile",
'smartphone' => "Generic Mobile",
'cellphone' => "Generic Mobile"
);
// There are hundreds of bots but these are the most common.
private $robots = array(
'googlebot' => 'Googlebot',
'msnbot' => 'MSNBot',
'slurp' => 'Inktomi Slurp',
'yahoo' => 'Yahoo',
'askjeeves' => 'AskJeeves',
'fastcrawler' => 'FastCrawler',
'infoseek' => 'InfoSeek Robot 1.0',
'lycos' => 'Lycos'
);
/*
*
*/
public function __construct()
{
$this->agent = isset($_SERVER'HTTP_USER_AGENT'])? trim($_SERVER'HTTP_USER_AGENT']):null;
is_null($this->agent) or $this->loadCompilator();
}
/**
* Set the Platform
*
* @access private
* @return mixed
*/
private function setPlatform()
{
foreach ($this->platforms as $key => $val)
{
if (preg_match('#'.preg_quote($key).'#i', $this->agent))
{
$this->platform = $val;
return TRUE;
}
}
$this->platform = 'Unknown Platform';
}
/**
* Set the Browser
*
* @access private
* @return bool
*/
private function setBrowser()
{
foreach ($this->browsers as $key => $val)
{
if (preg_match('#'.preg_quote($key).'.*?([0-9\.]+)#i', $this->agent, $match))
{
$this->isBrowser = TRUE;
$this->version = $match[1] ;
$this->browser = $val ;
$this->setMobile();
return TRUE;
}
}
return FALSE;
}
/**
* Set the Mobile Device
*
* @access private
* @return bool
*/
private function setMobile()
{
foreach ($this->mobiles as $key => $val)
{
if (FALSE !== (strpos(strtolower($this->agent), $key)))
{
$this->isMobile = TRUE;
$this->mobile = $val;
return TRUE;
}
}
return FALSE;
}
/**
* Set the Robot
*
* @access private
* @return bool
*/
private function setRobot()
{
foreach ($this->robots as $key => $val)
{
if (preg_match('#'.preg_quote($key).'#i', $this->agent))
{
$this->isRobot = TRUE;
$this->robot = $val;
return TRUE;
}
}
return FALSE;
}
/**
* Set the accepted character sets
*
* @access private
* @return void
*/
private function setCharsets()
{
if ((count($this->charsets) == 0) AND isset($_SERVER'HTTP_ACCEPT_CHARSET']) AND $_SERVER'HTTP_ACCEPT_CHARSET'] != '')
{
$charsets = preg_replace('/(;q=.+)/i', '', strtolower(trim($_SERVER'HTTP_ACCEPT_CHARSET'])));
$this->charsets = explode(',', $charsets);
}
if (count($this->charsets) == 0)
{
$this->charsets = array('Undefined');
}
}
/**
* Is Browser
*
* @access public
* @return bool
*/
public function isBrowser()
{
if ( ! $this->isBrowser)
{
return FALSE;
}
return TRUE;
}
/**
* Is Robot
*
* @access public
* @return bool
*/
public function isRobot()
{
if ( ! $this->isRobot)
{
return FALSE;
}
return TRUE;
}
/**
* Is Mobile
*
* @access public
* @return bool
*/
public function isMobile($key = NULL)
{
if ( ! $this->isMobile)
{
return FALSE;
}
return TRUE;
}
/**
* Is this a referral from another site?
*
* @access public
* @return bool
*/
public function isReferral()
{
if ( ! isset($_SERVER'HTTP_REFERER']) OR $_SERVER'HTTP_REFERER'] == '')
{
return FALSE;
}
return TRUE;
}
/**
* Agent String
*
* @access public
* @return string
*/
public function agentString()
{
return $this->agent;
}
/**
* Get Platform
*
* @access public
* @return string
*/
public function getPlatform()
{
return $this->platform;
}
/**
* Get Browser Name
*
* @access public
* @return string
*/
public function browser()
{
return $this->browser;
}
/**
* Get the Browser Version
*
* @access public
* @return string
*/
public function version()
{
return $this->version;
}
/**
* Get The Robot Name
*
* @access public
* @return string
*/
public function robot()
{
return $this->robot;
}
/**
* Get the Mobile Device
*
* @access public
* @return string
*/
public function mobile()
{
return $this->mobile;
}
/**
* Get the referrer
*
* @access public
* @return bool
*/
public function referrer()
{
return ( ! isset($_SERVER'HTTP_REFERER']) OR $_SERVER'HTTP_REFERER'] == '') ? '' : trim($_SERVER'HTTP_REFERER']);
}
/**
* Get the accepted languages
*
* @access public
* @return array
*/
public function languages()
{
if (count($this->languages) == 0)
{
$this->setLanguages();
}
return $this->languages;
}
/**
* Get the accepted Character Sets
*
* @access public
* @return array
*/
public function charsets()
{
if (count($this->charsets) == 0)
{
$this->setCharsets();
}
return $this->charsets;
}
/**
* Test for a particular language
*
* @access public
* @return bool
*/
public function isAcceptedLang($lang = 'en')
{
return (in_array(strtolower($lang), $this->languages(), TRUE));
}
/**
* Test for a particular character set
*
* @access public
* @return bool
*/
public function isAcceptedCharset($charset = 'utf-8')
{
return (in_array(strtolower($charset), $this->charsets(), TRUE));
}
/**
* Compile the User Agent Data
*
* @access private
* @return bool
*/
private function loadCompilator()
{
$this->setPlatform();
foreach (array('setRobot', 'setBrowser', 'setMobile') as $function)
{
if ($this->$function() === TRUE)
{
break;
}
}
}
/*fin de la classe*/
}
par rapport à ton code, tu devrais pouvoir l'utiliser ainsi:
$browserRestriction = array($browser1=>$minVersion1,'......',$browserN=>$minVersionN);
$message = '';
include('UserAgent.php');
$ua = new UserAgent();
if($ua->isBrowser())
{
if(array_key_exists($ua->browser(),$browserRestriction))
{
if($browserRestriction$ua->browser()]>=$ua->version())
$message .= 'ce site est incompatible avec une version du navigateur '.$ua->browser().' inférieure à '.$browserRestriction$ua->browser()].'. Votre version: '.$ua->version();
}
}
empty($message) or die($message);
cordialement