Redirect

21 Jul 2008 In: Catatan Pinggir

Redirect atau URL redirection adalah cara untuk mengarahkan visitor dari satu URL ke URL lain. Ada beberapa sebab dilakukannya redirection, di antaranya:

  • Halaman yang dimasuki visitor punya persyaratan login untuk memasukinya, maka visitor diarahkan ke halaman login.
  • Halaman yang didatangi visitor sudah tidak ada lagi, maka visitor diarahkan ke halaman pemberitahuan mengenai nasib dari halaman yang dicarinya, atau diarahkan ke halaman lain sebagai penggantinya.
  • Halaman redirection merupakan bagian dari tahapan-tahapan proses (workflow) yang harus dilalui visitor, seperti pada saat registrasi, shopping online, atau posting di forum.
  • Halaman redirection merupakan bagian dari proses access control, di mana visitor diarahkan ke halaman sesuai dengan kapasitas visitornya.
  • URL dari halaman tersebut terlalu panjang atau tidak user friendy, sehingga dengan teknik clean url dibuat lebih pendek dan user friendly, dan visitor yang mengunjungi clean url tersebut diarahkan ke URL yang sebenarnya.

Cara-cara Redirect

Ada beberapa cara redirection, dari yang termudah sampai yang tersulit. Ringkasannnya sebagai berikut:

  • Dengan menggunakan link href, visitor diminta meng-klik link untuk pergi ke halaman yang diarahkan, misal:
    Kunjungi <a href="http://blog.lentera.web.id>blogku</a> 
  • Dengan META TAG Refresh yang dipasang di bagian <head> halaman web, misalnya:
    <meta http-equiv="Refresh" content="0;http://blog.lentera.web.id">
    
  • Dengan PHP menggunakan perintah header, misal:
    header("location:http://blog.lentera.web.id")
  • Dengan memnfaatkan mod_rewrite Apache, misalnya:
    RewriteRule ^(.*)$ http://blog.lentera.web.id/$1 [R,L]
  • Dengan menggunakan JavaScript juga bisa, misal:
    window.location="http://blog.lentera.web.id/";

Penggunaan Redirect

Cara-cara penggunaan redirect tergantung dari kebutuhan redirecting. Untuk redirect yang disebabkan oleh proses di dalam workflow, maka teknik redirect yang digunakan biasanya menggunakan PHP atau server-side engine lainnya. Untuk redirect yang disebabkan perubahan alamat halaman web, biasanya menggunakan mod_rewrite apache. Teknik gabungan menggunakan mod_rewrite dan PHP juga sering digunakan dalam aplikasi web.

Mencegah Download Langsung

20 Jul 2008 In: Catatan Pinggir

Kenapa ya, terdapat web master sengaja menyediakan beberapa file untuk di-download, tetapi berusaha juga dengan berbagai cara untuk melakukan pencegahan terhadap file-filenya daripada agar bisa di-download langsung atau disebut hotlinking. Pastinya ada alasan baik.

Alasan Pencegahan Download Langsung

Web master punya alasan kenapa file-file tidak boleh dipungut langsung, di antaranya:

  • ingin mengetahui statistik file yang didownload, sudah berapa kalikah file didownload.
  • ingin mengetahui siapa saja yang mendownload, baik dengan cara harus login dulu, atau harus memasukkan email untuk dikirim link-nya lewat email, merepotkan memang.
  • ingin merahasikan lokasi file berada, khawatir kalau lokasinya ketahuan bisa didownload semua.
  • anda menginginkan hit pada halaman web anda, dan tidak rela file download anda dimanfaatkan oleh pihak lain.
  • ada alasan lain? …

Anda termasuk yang mana? kalau tidak termasuk, biarkanlah file bisa bebas didownload. Tetapi meneruskan baca arikel ini tidak ada salahnya, mungkin suatu ketika anda membutuhkannya.

Cara-cara Mencegah Download Langsung

1. Cara pertama, gunakan .htaccess ini:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]

RewriteCond %{REQUEST_FILENAME} .*zip$|.*pdf$|.*mp3$ [NC]
RewriteRule (.*) /halaman_download.php?file=$1 [R]

keterangan:

  • baris ke 3, referer tidak boleh kosong, artinya tidak boleh download langsung
  • baris ke 4, yourdomain diganti dg nama domain anda, artinya tidak boleh didownload dari website lain
  • baris ke 5, google, membolehkan download dari google
  • baris ke 6, search, membolehkan download dari link hasil search
  • baris 8, extensi file yang diatur tidak boleh download langsung
  • baris 9, halaman redirect, …

2. Cara kedua menggunakan PHP.

cara ini adalah dengan meng-output file yang didownload dari script php, sementara di htaccess anda harus didefinisikan redirect file yang didownload di arahkan ke sebuah file php.

File .htaccess berisi:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} .*zip$|.*pdf$|.*mp3$ [NC]
RewriteRule (.*) /download.php?file=$1 [R]

dan file download.php berisi:

$ref = $_SERVER["HTTP_REFERER"];

if ( $ref != ‘http://www.yourdomain.com/halaman_download.php’ )
{
header(”Location:http://www.yourdomain.com/halaman_download.php”);
exit;
} else {
header(”Content-type: $filetype”);
header(”Content-Disposition: attachment; filename=\”$filename\”");
header(”Content-Length: $filesize”);

echo file_get_contents($filepath);
}

3. Cara ketiga, tidak mempublikasikan URL file.

  • jangan pernah mempublikasikan URLnya sehingga nggak ada yang bisa download langsung
  • dengan PHP, kita bisa meng-generate random encrypted URL, misalnya: download/g6Tgskd93/file.zip
  • random URL tersebut berbasis session dg waktu terbatas
  • lalu, kalo ada yg mengakses link tersebut, maka htaccess me-redirect ke halaman atau file download, kalau link-nya sudah expired maka muncul pesan error page not found atau di-redirect ke halaman tertentu.

Sekedar Info

Tip ini berkaitan dengan penggunaan mod_rewrite pada htaccess, akan sangat baik bagi anda untuk memahami bagaimana menggunakan mod_rewrite. Membaca manual memang paling tepat tetapi kadang kurang praktis, membaca tutorial jadi pilihannya, yaitu melawat ke
Stupid htaccess Tricks, anda wajib ke sana.

PHP Excel to MySQL Converter

15 Jul 2008 In: Catatan Pinggir
Free Download Excel2Mysql

Spreadsheet Excel secara luas digunakan untuk aplikasi keuangan, statistik dan aplikasi lain yang memerlukan penyajian data secara tabulasi. Level penggunaannya yang bervariasi memungkinkan software ini dapat digunakan oleh newbee dan profesional. Karenanya tidak heran banyak data disimpan dan dipertukarkan dalam bentuk Excel.
Read the rest of this entry »

Cara Memasak ala Programmer [ SDLC ]

25 Jun 2008 In: Catatan Pinggir

Memasak, sepertinya kegiatan yang gampang dilakukan. Tapi apakah pernah anda memasak? Kalau anda belum pernah memasak, mungkin tulisan ini akan membantu anda dalam memahami bagaimana membuat masakan. Saya tidak menjamin dengan tulisan ini anda akan bisa memasak. Minimal anda tahu caranya, dengan begitu anda menghargai proses penciptaan masakan. Read the rest of this entry »

Salah satu hal menarik yang diperkenalkan PHP dalam pembuatan form input data adalah pengenalan input array sebagai nama variabel input, misalnya input[ ]. Dengan format seperti itu, untuk meng-upload 10 image sekaligus, anda tak perlu membuat variabel image_1, image_2, image_3, …, image_10. Cukup image[ ]. Misalnya:

  1. <input name="image[]" type="file" />
  2. <input name="image[]" type="file" />
  3. <input name="image[]" type="file" />
  4.  
  5. <input name="image[]" type="file" />

Permalasahannya adalah ketika melakukan validasi data, JavaScript tidak menganggap legal variabel yang mengandung tanda siku [], sehingga JavaScript tidak bisa mengakses variabel tersebut sebagaimana yang diinginkan.

Ini triknya. Untuk mengakses input array, gunakan sintaks berikut:

  1.  
  2.  var inputArray = document.forms[0].elements['image[]'];
  3.  
  4.  if(inputArray.length>0) {
  5.  
  6.   for(i=0;i<inputArray.length;i++) {  
  7.    alert(inputArray[i].value);
  8.   }
  9.  } else {
  10.    alert(inputArray.value);
  11.  }

Sangat mudah bukan?

Random Quote

Great ability develops and reveals itself increasingly with every new assignment. — Baltasar Gracian


Social Bookmarks

  • ADD TO DEL.ICIO.US
  • ADD TO DIGG
  • ADD TO FURL
  • ADD TO NETSCAPE
  • ADD TO REDDIT
  • ADD TO STUMBLEUPON
  • ADD TO TECHNORATI FAVORITES
  • ADD TO SQUIDOO
  • ADD TO WINDOWS LIVE
  • ADD TO YAHOO MYWEB
  • ADD TO GOOGLE

Sponsors