Membedakan Visitor Berdasarkan Browser dan Device dengan PHP

Mendeteksi browser atau device visitor bukan lah suatu hal yang baru, layanan analytics seperti google analytics dan google search console contohnya. Hal ini diperlukan suatu website untuk dapat membantu dalam proses menampilkan data, analisis data, dan sebagai acuan untuk menampilkan data yang benar kepada user. Secara umum, web browser dapat dibedakan menjadi 2 macam berdasarkan device yang dipakai, yaitu browser web desktop dan browser web mobile. Web browser yang sering digunakan oleh pengunjung yaitu Google Chrome, Mozilla Firefox, Opera, dan Safari.

Salah satu fungsi mendeteksi device/perangkat pengunjung yaitu untuk menentukan data yang ingin di tampilkan ke user, Misalkan untuk pengunjung yang menggunakan mobile device akan kita arahkan ke website khusus mobile dan desktop di arahkan ke website khusus desktop. Hal ini biasa di terapkan di website berita seperti tribunnews. Lalu, Bagaimana cara kita mendeteksi jenis Browser dan Device yang dipakai oleh pengunjung?.

Mendapatkan Jenis Web Browser

Hal pertama yang kita lakukan adalah cara mendapatkan jenis web browser pengunjung, Kita dapat menggunakan PHP script untuk mendapatkan USER AGENT dari pengunjung. Kita dapat menggunakan script PHP seperti berikut, $_SERVER[‘HTTP_USER_AGENT’]. Tampilan data user agent akan berbeda-beda di setiap browser dan sistem operasi yang dipakai oleh pengunjung. Sebagai contoh script dibawah akan mengeluarkan data “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Safari/537.36” di perangkat yang Anda gunakan saat ini dan akan berubah sewaktu Anda mengganti perangkat yang Anda gunakan.

<?php
//Belajar Bersama Helixs
echo $_SERVER['HTTP_USER_AGENT'];
?>

Setelah mengetahui cara menampilkan data user agent, kita akan membedakan antara web browser mobile dan desktop dengan data user agent tadi. Hal pertama kita memerlukan list user agent mobile/desktop terlebih dahulu untuk mengklasifikasikan jenis web browser yang digunakan. Berikut program yang dapat Anda gunakan untuk mengklasifikan jenis web browser pengunjung.

<?php
function Device(){
$useragent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
 {
    $Device = 'Mobile';
}
else
 {
   $Device = 'Desktop';
}
return $Device;
}
?>

Jika function device() dijalankan maka program akan mengecek data user agent dan disimpan dalam variabel $useragent, selanjutnya program akan membuat kondisi jika fungsi preg_match mencocok kan regular expression yang isinya list user agent mobile dengan isi variabel $useragent. Jika kondisi TRUE, maka akan variabel $Device adalah Mobile dan jika FALSE maka variabel $Device adalah Desktop. Fungsi diatas kita dapat gunakan di berbagai kondisi yang kita inginkan, sebagai contoh sebagai berikut.

Mengarahkan Pengunjung ke Website Lain

<?php
$Devices = Device();
if($Devices == 'Mobile'){
header("Location:https://m.helixsid.today");
} 
elseif($Devices == 'Desktop') {
header("Location:http://helixsid.today");
} ?>

Script diatas dimulai dari function Device() akan tersimpan di variabel $Devices, dan hasil fungsi itu akan kita eksekusi dengan kondisi if dan else, Jika $Devices sama dengan Mobile maka akan diarahkan ke website khusus Mobile. Lalu, Jika $Devices adalah Desktop maka akan diarahkan ke website khusus Desktop.

Menampilkan Jenis Device Pengunjung

<?php
$Devices = device();
if($Devices == 'Mobile'){
echo "Mobile Device";
} 
elseif($Devices == 'Desktop') {
echo "Desktop Device";
} ?>

Menyimpan Data di Database Sebagai Statistik

<?php
$Devices = device();
if($Devices == 'Mobile'){
$updatedevice = mysqli_query($config,"UPDATE browser SET view = view+1 WHERE browser_device='Mobile'");
} 
elseif($Devices == 'Desktop') {
$updatedevice = mysqli_query($config,"UPDATE browser SET view = view+1 WHERE browser_device='Desktop'");
} ?>

Setelah mengetahui cara mendeteksi device pengunjung, Lalu bagaimana kita dapat mengetahui browser apa yang dipakai pengunjung?.

Mendeteksi Browser

Ada cukup banyak browser yang sering dipakai pengunjung, contohnya Google Chrome dan Safari, untuk menampilkan browser yang dipakai oleh pengunjung tidak terlepas dari variabel $_SERVER[‘HTTP_USER_AGENT’]. Dengan variabel ini kita dapat mendeteksi browser yang dipakai pengunjung, Berikut contoh script PHP untuk mendeteksi browser pengunjung.

<?php
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Mac')){
        $browser = 'Safari Browser';
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox')){
        $browser = 'Mozilla Firefox';
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome')){
        $browser = 'Google Chrome';
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera')){
        $browser = 'Opera';
} else{
        $browser = 'Tidak Diketahui';
}
echo $browser;
?>

Penggunaan fungsi strpos() pada script diatas adalah untuk mencari sebuah karakter dalam variabel, contoh strpos($string, ‘kata’) jika kata berada dalam $string maka fungsi bernilai TRUE dan menampilkan posisi kata.

Reference : irnanto.com, stackoverflow.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *