PDA

View Full Version : سوال: تشخيص مرورگر كاربر



ravand
پنج شنبه 25 اسفند 1390, 18:52 عصر
اين كد اطلاعات غلط ميده وقتي با مرورگر اكسپلورر وارد ميشم مينويسه موزيلا. سيستم عامل رو هم مي نويسه NT. :لبخند:

echo $_SERVER['HTTP_USER_AGENT'];

Reza1607
پنج شنبه 25 اسفند 1390, 19:21 عصر
براي تشخيص مرورگر كاربر از اين تابع استفاده كن



function getBrowser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$ub = '';
if(preg_match('/MSIE/i',$u_agent))
{
$ub = "Internet Explorer";
}
elseif(preg_match('/Firefox/i',$u_agent))
{
$ub = "Mozilla Firefox";
}
elseif(preg_match('/Safari/i',$u_agent))
{
$ub = "Apple Safari";
}
elseif(preg_match('/Chrome/i',$u_agent))
{
$ub = "Google Chrome";
}
elseif(preg_match('/Flock/i',$u_agent))
{
$ub = "Flock";
}
elseif(preg_match('/Opera/i',$u_agent))
{
$ub = "Opera";
}
elseif(preg_match('/Netscape/i',$u_agent))
{
$ub = "Netscape";
}
return $ub;
}

ravand
پنج شنبه 25 اسفند 1390, 19:35 عصر
نميدونم چرا كروم رو تشخيص نميده و مي نويسه Apple Safari :لبخند:

<?php
function getBrowser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$ub = '';
if(preg_match('/MSIE/i',$u_agent))
{
$ub = "Internet Explorer";
echo $ub;
}
elseif(preg_match('/Firefox/i',$u_agent))
{
$ub = "Mozilla Firefox";
echo $ub;
}
elseif(preg_match('/Safari/i',$u_agent))
{
$ub = "Apple Safari";
echo $ub;
}
elseif(preg_match('/Chrome/i',$u_agent))
{
$ub = "Google Chrome";
echo $ub;
}
elseif(preg_match('/Flock/i',$u_agent))
{
$ub = "Flock";
echo $ub;
}
elseif(preg_match('/Opera/i',$u_agent))
{
$ub = "Opera";
echo $ub;
}
elseif(preg_match('/Netscape/i',$u_agent))
{
$ub = "Netscape";
echo $ub;
}
return $ub;
}
getBrowser();
?>

MostafaEs3
پنج شنبه 25 اسفند 1390, 20:06 عصر
please Test :


<script type="text/javascript">
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName = navigator.appName;
var fullVersion = ''+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version"
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
browserName = "Opera";
fullVersion = nAgt.substring(verOffset+6);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
browserName = "Microsoft Internet Explorer";
fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome"
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
browserName = "Chrome";
fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version"
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
browserName = "Safari";
fullVersion = nAgt.substring(verOffset+7);
if ((verOffset=nAgt.indexOf("Version"))!=-1)
fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox"
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
browserName = "Firefox";
fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
(verOffset=nAgt.lastIndexOf('/')) )
{
browserName = nAgt.substring(nameOffset,verOffset);
fullVersion = nAgt.substring(verOffset+1);
if (browserName.toLowerCase()==browserName.toUpperCas e()) {
browserName = navigator.appName;
}
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
fullVersion = ''+parseFloat(navigator.appVersion);
majorVersion = parseInt(navigator.appVersion,10);
}
var nnn="12";

document.write(''
+'Browser name = '+browserName+'<br>'
+'Full version = '+fullVersion+'<br>'
+'Major version = '+majorVersion+'<br>'
+'navigator.appName = '+navigator.appName+'<br>'
+'navigator.userAgent = '+navigator.userAgent+'<br>'
)





</script>

Reza1607
پنج شنبه 25 اسفند 1390, 20:08 عصر
والا من اين رو از خود سايت php.net گرفتم شما جاي شرط كروم رو با سافاري جابجا كن
من عوض كردم جواب داد ولي سافاري نصب ندارم تا تست كنم ببينم اون رو هم درست نشون ميده يا نه؟

http://www.php.net/manual/en/function.get-browser.php

MostafaEs3
پنج شنبه 25 اسفند 1390, 20:28 عصر
منم توی این تابع گیج شدم. .. توی کروم جواب نمیده ! نمیدونم چطوریه .. راستی این جاوا اسکریپتی که گذاشتم اگه جواب نداد بخاطر اینه که این ویرایشگر مزخرف سایت توی خط 44 یک فاصله انداخته ! :لبخند:

MMSHFE
جمعه 26 اسفند 1390, 10:11 صبح
این کد رو ببینید:


<?php
$agent = &$_SERVER['HTTP_USER_AGENT'];
if((preg_match('#Nav#', $agent) || preg_match('#Gold#', $agent) || preg_match('#X11#', $agent) || preg_match('#Netscape#', $agent)) && !preg_match('#MSIE#', $agent) && !preg_match('#Mozilla#', $agent) && !preg_match('#Konqueror#', $agent)) $browser = 'Netscape';
elseif((preg_match('#Mozilla#', $agent) || preg_match('#FireFox#i', $agent) || preg_match('#Bon\.Echo#i', $agent)) && !preg_match('#MSIE#', $agent)) $browser = 'FireFox';
elseif(preg_match('#MSIE#', $agent)) $browser = 'MSIE';
elseif(preg_match('#Lynx#', $agent)) $browser = 'Lynx';
elseif(preg_match('#Opera#', $agent)) $browser = 'Opera';
elseif(preg_match('#WebTV#', $agent)) $browser = 'WebTV';
elseif(preg_match('#Konqueror#', $agent)) $browser = 'Konqueror';
elseif(preg_match('#google#i', $agent)) $browser = 'Chrome';
elseif(preg_match('#bot#i', $agent) || preg_match('#Slurp#', $agent) || preg_match('#Scooter#', $agent) || preg_match('#Spider#i', $agent) || preg_match('#Infoseek#i', $agent)) $browser = 'Bot';
else $browser = 'Other';
if(preg_match('#Win#', $agent)) $os = 'Windows';
elseif(preg_match('#Mac#‎', $agent) || preg_match('#PPC#‎', $agent)) $os = 'Mac';
elseif(preg_match('#Linux#', $agent)) $os = 'Linux';
elseif(preg_match('#FreeBSD#', $agent)) $os = 'FreeBSD';
elseif(preg_match('#SunOS#', $agent)) $os = 'SunOS';
elseif(preg_match('#IRIX#', $agent)) $os = 'IRIX';
elseif(preg_match('#BeOS#', $agent)) $os = 'BeOS';
elseif(preg_match('#OS/2#', $agent)) $os = 'OS/2';
elseif(preg_match('#AIX#', $agent)) $os = 'AIX';
else $os = 'Other';
?>

بعد از اجرای این کد، مرورگر کاربر توی متغیر browser$ و سیستم عاملش رو توی متغیر os$ خواهید داشت. امیدوارم مشکلتون برطرف بشه. موفق باشید.

MMSHFE
جمعه 26 اسفند 1390, 11:16 صبح
فایل ضمیمه رو دریافت کنید بهتره. ادیتور سایت کد رو بهم میریزه. موفق باشید.