Tag: Snippet

Catatan Sibudi

  • Menangani Browser dengan JavaScript Disable

    JavaScript dibutuhkan pada hampir semua website modern. Tanpanya, maka sebuah website tidak akan berjalan sesuai keinginan. Namun apa yang harus dilakukan jika client men-disable dukungan terhadap JavaScript? Solusi yang paling sederhana adalah dengan memberikan peringatan pada client untuk mengizinkan browser menjalankan JavaScript.

    Pada sebuah dokumen HTML, JavaScript disisipkan di antara tag <script> dan </script>. Selain itu juga ada tag <noscript>, yang akan dijalankan pada saat JavaScript di-disable pada browser.

    <script>kode di dalam sini akan dieksekusi saat javascript enable</script>
    <noscript>kode di dalam sini akan dieksekusi saat javascript disable</noscript>
    

    Untuk menangani client yang men-disable JavaScript maka perlu me-redirect-nya ke sebuah halaman yang berisi peringatan untuk meng-enable JavaScript. Namun, bagaimana untuk me-redirect halaman tanpa menggunakan sebuah script? Yaitu dengan menggunakan HTML meta tag yang bernama meta refresh. Meta tag ini akan me-redirect user ke halaman lain dalam interval yang sudah ditentukan pada header.

    <noscript>
      <meta http-equiv="Refresh" content="1; url=warning.html">
    </noscript>
    

    Snippet yang ada di dalam tag <noscript> di atas adalah sebuah meta refresh yang menginstruksikan browser untuk me-refresh halaman website secara otomatis dalam interval yang sudah ditentukan dalam atribut content (dalam satuan detik). Atribut url berisi halaman yang dituju untuk menampilkan pesan peringatan.

  • Update Tahun Copyright Secara Otomatis pada Footer

    Tahun baru telah tiba, saatnya untuk mengganti tahun copyright pada bagian footer website/blog. Jika webmaster lupa menggantinya, sebuah website akan tampak ketinggalan tahun 😀 Jadi kita akan membuat sebuah kode yang akan melakukan pekerjaan meng-update tahun secara otomatis. Berikut ini adalah sebuah snippet untuk meng-update tahun copyright secara otomatis pada footer sebuah website.

    <?php 
    $copyYear = 2011; 
    $curYear = date('Y'); 
    echo '&copy;' . $copyYear . (($copyYear != $curYear) ? ' - ' . $curYear : ''); 
    ?>
    

    Jangan lupa untuk mengganti variabel $copyYear sesuai dengan tahun terbit website/blog. Variabel $curYear akan secara otomatis berubah sesuai dengan tahun yang sedang berjalan di komputer server. Pada contoh di bagian footer blog ini (pada saat tulisan ini dibuat) menunjukkan tahun 2011 – 2012. Untuk website yang baru saja terbit, hanya akan memunculkan $copyYear.

    Snippet di atas juga bisa diterapkan untuk blog yang menggunakan WordPress. Letakkan pada bagian footer.php sesuai theme yang digunakan.

  • Menghilangkan Versi WordPress dari Kode HTML

    Menghilangkan informasi tentang versi berapa WordPress yang digunakan adalah ide yang bagus. Adanya informasi yang menunjukan versi WordPress yang diinstal, dapat sedikit membantu hacker untuk menyelidiki kelemahan sebuah blog. Dengan sedikit trik, kita bisa menyembunyikan fakta bahwa WordPress yang diinstal bukan merupakan versi terbaru.

    Sebelumnya kita pelajari dulu bagaimana untuk melihat versi WordPress. Klik view source atau tekan ctrl + u untuk melihat kode html yang dihasilkan WordPress. Perhatikan ada

    <meta name="generator" content="WordPress 3.2.1" />

    Cara termudah yang disarankan untuk menghilangkan versi WordPress adalah dengan menginstal sebuah plugin. Namun trik berikut ini menurut saya lebih mudah, tanpa plugin. Edit dan tambahkan langsung di file function.php pada folder themes yang digunakan.

    remove_action('wp_head', 'wp_generator');

    Setelah ditambahkan sebaris kode di atas pada file function.php, coba kita periksa dengan mengklik view source pada browser. Jika generator meta tidak hilang, mungkin ditulis hard-coded di file header.php. Cari dan hapus kode di bawah ini:

    <meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />

    Sebagai tambahan untuk trik yang pertama, dapat diganti menggunakan kode di bawah ini untuk menghapus semua generator meta versi WordPress, termasuk untuk menghapus tanda http://wordpress.org/?v=3.2.1 pada RSS feed. Bagi yang belum tau, tanda ini terletak pada source code RSS feed WordPress, pada bagian atas. Tanda ini tidak terhapus jika hanya menggunakan kode pada trik pertama di atas.

    function remove_version() {  
       return '';  
    }  
    add_filter('the_generator', 'remove_version');
    

    Terakhir, coba buka alamat blog Anda ditambah dengan readme.html (misal: http://blogsaya.com/readme.html). Halaman tersebut berisi deskripsi lengkap versi WordPress yang digunakan.
    readme version wordpress

    Saya rasa semua juga sudah tau, tinggal hapus saja file readme.html di direktori utama WordPress. Jika tidak ingin menghapusnya, cukup hapus nomor versi yang terletak di atas.

  • Pengenalan AJAX Menggunakan jQuery

    AJAX (Asynchronous JavaScript and XML) adalah sebuah teknik pemrograman yang memungkinkan kita melakukan pertukaran data antara client dengan server secara asynchronous, yang artinya komunikasi terjadi di belakang layar sehingga halaman web tidak harus dimuat ulang hanya untuk mengganti sebagian dari isinya.

    Sebelum era jQuery, pemrograman AJAX sangat sulit dilakukan, karena berhubungan dengan pengaksesan DOM menggunakan JavaScript. Terimakasih kepada jQuery, sehingga pemrograman menggunakan teknik AJAX bisa menjadi lebih mudah dan cepat.

    Penerapan teknik AJAX yang paling sederhana adalah untuk memanggil dan memuat sebuah dokumen HTML ke dalam DOM. Teknik ini dapat dengan mudah kita wujudkan dengan menggunakan fungsi load() dari jQuery. Secara singkat fungsi ini berguna untuk memuat data (HTML dokumen) dari server dan menyisipkannya ke dalam elemen yang sesuai.

    $(document).ready(function() {
      $('#tombol').click(function(){
        $('#container').load('content.html');
        });
      });
    

    Selain menggunakan fungsi jQuery load(), potongan kode di atas juga menggunakan fungsi click(). Fungsi ini akan dieksekusi ketika ada click event (user meng-klik sebuah tombol atau link). Fungsi ini mirip dengan JavaScript event onClick.

    Berikut ini adalah source code lengkapnya. Untuk mencoba kode ini, dibutuhkan juga sebuah file HTML yang akan dipanggil, beri nama “isi.html” dan isilah dengan sembarang kode HTML.

    <!DOCTYPE html>
    <html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>	
      <script type="text/javascript">
      $(document).ready(function() {
        $('#tombol').click(function(){
          $('#kontainer').load('isi.html');
          });
        });
      </script>
    </head>
    <body>
      <input type="button" id="tombol" value="klik di sini">
      <div id="kontainer">
        <!--Isi dari file content.html akan ditampilkan di sini-->
      </div>
    </body>
    </html>
    

    Ketika tombol diklik, AJAX memanggil URL “isi.html” dan menyisipkannya ke dalam DOM. DOM yang dimaksud di sini adalah sebuah elemen dengan id=”kontainer”.

    Karena fungsi jQuery click() mirip dengan event JavaScript onClick, maka source code di atas dapat juga ditulis seperti berikut:

    <!DOCTYPE html>
    <html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
      <script type="text/javascript">		
      function loadIsi(){
        $('#kontainer').load('isi.html');
      }
      </script>
    </head>
    <body>	
      <a href="#tombol" onclick="loadIsi(); return false;">load isi</a>
      <div id="kontainer">
        <!--Isi dari file content.html akan ditampilkan di sini-->
      </div>
    </body>
    </html>
    
  • Mengatasi Masalah Undefined Index di PHP 5

    undefined index
    Bagi yang beralih dari PHP 4.x ke PHP 5.x mungkin pernah menjumpai peringatan seperti ini:

    Notice: Use of undefined constant mod – assumed ‘mod’ in /var/www/blogsaya/index.php on line 7

    atau seperti ini:

    Notice: Undefined index: mod in /var/www/blogsaya/index.php on line 7

    atau seperti ini:

    Notice: Undefined variable: mod in /var/www/blogsaya/index.php on line 8

    Ketiganya hanyalah pesan peringatan (notice), bukan kesalahan (error). Namun nampak tidak elegan jika pesan seperti itu muncul di halaman website kita. Untuk menyembunyikan pesan peringatan tersebut cukup dengan menambahkan sebaris kode berikut di bagian paling awal kode PHP.

    error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

    Kode tersebut hanya akan menyembunyikan semua pesan peringatan level Notice dan Warning yang muncul, pesan kesalahan yang lain, misal error, tetap muncul.

    Namun tentu saja menyembunyikan pesan peringatan bukan solusi yang baik. Notice message tersebut muncul karena penanganan register global di PHP 5.x yang sedikit berbeda dengan PHP 4.x, dan juga ada variable atau konstanta yang tidak diinisialisasi sebelum digunakan. Pelanggaran yang umum dalam bahasa pemrograman PHP tetapi penegakan hukumnya kurang ketat.

    Perhatikan contoh berikut:



    $_POST[‘mod’] ada isinya, maka $_POST['mod'] akan disalin ke $mod , jika tidak maka $mod akan berisi string kosong.

    Tulisan ini adalah kategori baru yang ingin saya catat di blog, yaitu tentang troubleshooting (penyelesaian masalah) dalam pemrograman. Troubleshooting adalah salah satu aspek paling penting dalam mempelajari bahasa pemrograman apapun.