Bila kalian pengelola (developer) website - website besar seperti kaskus, OLX (tokobagus), tokopedia dll, privasi member tentu menjadi pertimbangan yang sangat penting mengingat pengelola tidak boleh sembarangan menampilkan no. telepon, email dll. Diperlukan proteksi agar privasi2 pengguna layanan tersebut tetap aman dan tidak dimanfaatkan pihak lain. Terus untuk apa pengelola memproteksinya? agar yang menghubungi pihak penjual adalah benar2 orang yang berkepentingan dalam hal Jual beli (kasus untuk website jual beli seperti tokopedia dan olx dll). Kita batasi permasalahan ini hanya pada pemfilteran no. telepon.

Bagaimana bila tanpa proteksi? sudah tentu dengan mudahnya mendapatkan nama, email dan no.  telepon orang2 yang bersangkutan. Kalian para developer tentu tau CURL (php), request (python) dll atau istilahnya Grabbing/Scraping, ya dengan teknik ini programer dapat mengambil data2 dari website lain tanpa harus mengakses via browser, sekaligus dapat juga memprogram agar data yang diinginkan bisa disimpan/dicopy. Oleh karena itu pada artikel ini kita membuat trik agar no. telepon sedikit dibuat susah untuk dicopy, meski didapatkan datanya hanya berupa kode2 HTML biasa.

berikut sedikit codenya.

CSS

[class^="bg-"]  {
    background-image: url("phone_number.png");
    background-position: 0 0;
    background-repeat: no-repeat;
    display: inline-block;
    height: 25px;
    line-height: 25px;
    overflow: hidden;
    text-indent: 9999px;
    vertical-align: text-top;
    width: 10px;
}
.bg-00, .bg-18, .bg-39{ background-position: -20px -9px;}
.bg-01, .bg-19, .bg-40{ background-position: -33px -9px;}
.bg-02, .bg-20, .bg-41{ background-position: -47px -9px;}
.bg-03, .bg-21, .bg-42{ background-position: -60px -9px;}
.bg-04, .bg-22, .bg-43{ background-position: -73px -9px;}
.bg-05, .bg-23, .bg-44{ background-position: -86px -9px;}
.bg-06, .bg-24, .bg-45{ background-position: -99px -9px;}
.bg-07, .bg-25, .bg-46{ background-position: -112px -9px;}
.bg-08, .bg-26, .bg-47{ background-position: -126px -9px;}
.bg-09, .bg-27, .bg-48{ background-position: -140px -9px;}
.bg-empty{ background-position: -10.4px -9px;}
.bg-plus{ background-position: -2px -9px;}

kelas untuk menyembunyikan no. telepon

class hideNumber{
    private $no0 = array("bg-00","bg-18","bg-39"); // random angka nol
    private $no1 = array("bg-01","bg-19","bg-40"); // random angka satu
    private $no2 = array("bg-02","bg-20","bg-41"); // random angka dua
    private $no3 = array("bg-03","bg-21","bg-42"); // random angka tiga
    private $no4 = array("bg-04","bg-22","bg-43"); // random angka empat
    private $no5 = array("bg-05","bg-23","bg-44"); // random angka lima
    private $no6 = array("bg-06","bg-24","bg-45"); // random angka enam
    private $no7 = array("bg-07","bg-25","bg-46"); // random angka tujuh
    private $no8 = array("bg-08","bg-26","bg-47"); // random angka delapan
    private $no9 = array("bg-09","bg-27","bg-48"); // random angka sembilan
    private $nop = array("bg-plus"); // simbol plus
    private $noe = array("bg-empty"); // spasi
   
    function doNumber($str){
        $total = strlen($str);
        $result = "";
       
        for($i=0;$i<$total;$i++){
            $num = $this->cekNumber($str[$i]);
           
            if(in_array($num, $this->no0)){
                $result .="<span class=\"".$num."\"></span>";                   
            }else if(in_array($num, $this->no1)){
                $result .="<span class=\"".$num."\"></span>";
            }else if(in_array($num, $this->no2)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->no3)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->no4)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->no5)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->no6)){
                $result .="<span class=\"".$num."\"></span>";       
            }else if(in_array($num, $this->no7)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->no8)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->no9)){
                $result .="<span class=\"".$num."\"></span>";   
            }else if(in_array($num, $this->nop)){
                $result .="<span class=\"".$num."\"></span>";   
            }else{                   
                $result .="<span class=\"".$num."\"></span>";
            }
        }
       
        return $result;
    }
   
    function cekNumber($no){
        switch($no){
            case "0":  $result = $this->no0;  break;
            case "1":  $result = $this->no1;  break;
            case "2":  $result = $this->no2;  break;
            case "3":  $result = $this->no3;  break;
            case "4":  $result = $this->no4;  break;
            case "5":  $result = $this->no5;  break;
            case "6":  $result = $this->no6;  break;
            case "7":  $result = $this->no7;  break;
            case "8":  $result = $this->no8;  break;
            case "9":  $result = $this->no9;  break;
            case "+":  $result = $this->nop;  break;
            default:   $result = $this->noe;  break;
        }
       
        $rand = array_rand($result,1);
        return $result[$rand];
    }
}

diatas adalah class untuk menampilkan angka - angka yang diambil dari sebuah image, trik penyembunyian angka - angka diatas dikombinasikan dengan CSS untuk memetakan tiap angka pada sebuah gambar, gambar angka bisa di ambil disini.

untuk menampilkannya dengan cara :

$num = new hideNumber;
echo $num->doNumber("+62856 12345678");

sangat mudah bukan, artikel Trik agar no. Telepon tidak dapat di copy pada browser terinspirasi dari cara menampilkan no. telepon pada website OLX.

Ingat trik ini tidak 100% dapat memproteksi no. telepon pada website kalian akan tetapi akan sedikit mempersulit bila ada seseorang yang ingin grabbing/scraping no. telepon tersebut.

untuk code lengkapnya bisa didownload disini.