Kamis, 08 September 2011

PHP Script: Kalkulasi Waktu


 Pernah penmen agar halaman web kamu bisa menampilkan waktu 1 jam dari sekarang? Di sini kamu bisa lihat contoh PHP Script dan penjelasannya.Pointing up
Scrip membuat kalkulasi waktu tentu saja dapat dibuat dengan berbagai macam cara. Biasanya programmer canggih akan membuat PHP script dengan cara yang sangat singkat. Kamu tahu kenapa? Salah satu sebabnya adalah agar PHP script yang mereka bikin lebih efisien, dan tentu saja, makin singkat PHP script nya, makin canggih kelihatannya dan makin membingungkan buat kita para newbie.
Nah, di sini kita akan coba lihat step by step.

Salah satu caranya adalah dengan tiga langkah mudah sebagai berikut:
1. Prinsipnya ubah dulu ke timestampnya server menggunakan fungsi $timestamp=strtotime($skr).
Nah, isi variabel $timestamp itu adalah jumlah detik sejak 1 Januari 1970.

2. Kalau sudah, tambahkan $timestamp dengan angka detik yang diinginkan (dalam kasus ini adalah 60 detik. So, tambahkan baris kode berikut: $timestamp=$timestamp+60.

3. Kalau sudah tinggal kembalikan angka timestamp ke format tanggal yang kita kenal pada umumnya dengan fungsi date.
So, kode keseluruhannya akan menjadi:

Code:
$timestamp=strtotime($skr);
$timestamp=$timestamp+60;
date("m/d/Y H:i:s",$timestamp);
?> ?>

Gampang kan .Thumbs up
Nah tentu saja ada cara lain yang lebih singkat (dan mungkin agak membingungkan buat yg baru belajar) seperti ini misalnya :
$timestamp = date('U');
$skr = date('m/d/Y H:i:s', $timestamp);
$nanti = date('m/d/Y H:i:s', $timestamp+60);

Mudah-mudahan bermanfaat.

Menggunakan PHP dan Form HTML

kita lanjutkan tutorial kita dengan melihat bagaimana caranya untuk menggabungkan form HTML dengan kode PHP.
Dalam contoh-contoh kita sampai saat ini, kita sudah berhasil mengisi variabel dan menggunakannya dalam satu kode yang sama. Kayaknya hal ini agak kurang bermanfaat ya? Emang sih. Lha gimana nggak, daripada repot-repot masukin nilai yang kita inginkan, dilanjutkan dengan menampilkan apa yang kita inginkan melalui variabel kita tadi, kan mendingan langsung aja tuh nampilin apa yang kita iningkan tanpa menggunakan variabel, lebih singkat, cepat dan mudah. Jadi, gimana dong? Tenang ..... di tutorial inilah anda akan melihat kekuatan variabel yang sesungguhnya.
Nah, sekarang ayo kita coba sesuatu yang lebih menarik, dan bisa menunjukkan kegunaan variabel kita tercinta dalam sebuah program.
Baiklah, tanpa membuang waktu lagi, sekarang saatnya untuk membuat sebuah halaman web yang akan kita gunakan untuk menginput nama kita dan nama orang yang kita sukai dan kemudian menampilkannya secara bersamaan di halaman lain. Apa …… halaman lain? Ya, di halaman lain, ini yang membedakan dengan kode-kode kita sebelumnya, untuk itulah, mohon konsentrasi di bagian ini, karena ini sangat penting bagi perkembangan PHP anda di masa datang. Pahami betul bagaimana cara kita mengirimkan variabel kita dari satu halaman ke halaman yang lain yach…
Sebelum membuatnya, bayangkan kembali skenario ini. Anda membuat sebuah halaman website di mana pengunjung bisa mengisi nama mereka dan nama kekasih mereka dalam sebuah form dan kemudian menampilkan kembali nama-nama tersebut di halaman web lainnya.

Untuk melakukan hal itu, kita perlu membuat 2 buah file PHP. File pertama adalah sebuah form HTML untuk mengumpulkan input dari user, mengisikan input tersebut ke dalam variabel dan kemudian mengirimkannya ke file kedua yang bertugas menampilkan kembali isi variabel tersebut ditambah dengan beberapa hal sederhana lainnya. Maaf kalau cara penyampaiannya payah ya, tapi saya berharap paling enggak bisa tetap fun deh buat Prothelors dalam mempelajari PHP.
Pertama-tama, kita buat dulu halaman formnya, halaman ini adalah halaman HTML biasa dengan FORM di dalamnya. Sesudah ini kita akan buat sebuah halaman lain (PHP) untuk memproses apa yang diinputkan dari halaman HTML kita ini. Kita namai dengan form_saya.html
1.      <html>
2.      <head>
3.      <title>Form Saya</title>
4.      </head>
5.      <body>
6.       
7.      <form action="hasil_form_saya.php" method=post>
8.       
9.      Nama saya adalah: 
10. <br> <input type="text" name="NamaAnda">
11.  
12. <p> Nama orang yang saya sukai:  
13. <br> <input type="text" name="NamaDia">
14. <p>
15.  
16. <input type="submit" name="submit" value="Cocokkan!">
17. </form>
18.  
19. </body>
20. </html> 
Ini adalah sebuah form HTML biasa tapi mengandung beberapa hal penting yang perlu Prothelors semua pahami. Bagian-bagian pentingnya adalah:
Baris 7: HTML membaca action="hasil_form_saya.php" yang menunjukkan pada browser file PHP mana yang akan memproses hasil form kita. Implikasinya, beberapa saat lagi anda harus membuat sebuah file yang bernama hasil_form_saya.php yang merupakan mesin kecil yang bertugas untuk menampilkan hasil input di form kita. (Jangan khawatir, kita akan membahas method=post belakangan)
Baris 10: input type="text" menentukan jenis elemen form apa yang kita inginkan,dalam kasus kita ini adalah sebuah inputan teks atau text box (kita juga bisa mendefinisikannya sebagai radio button, check box, dll); name="NamaAnda" artinya adalah bahwa apapun yang kita ketikkan ke dalam text box kita tadi akan mengisi sebuah variabel yang bernama “NamaAnda”. Inilah yang menghubungkan antara form dan variabel – setiap field dalam sebuah form dapat digunakan untuk mengisi variabel untuk kemudian kita gunakan sesuka kita (asik ya?).
Baris 13: di baris ini, kita memiliki sebuah teks input yang akan kita gunakan untuk mengisi variabel lain yang kita beri nama “NamaDia” yang merupakan nama orang yang kita sukai.
Baris 16, 17: Kode ini membuat sebuah tombol submit dengan tulisan “Cocokkan!” (maksudnya adalah coba cocokkan nama anda dengan nama orang yang anda sukai).
Dan berakhirlah form kita.
Nah, tugas form kita itu adalah mengumpulkan informasi nama anda dan nama orang yang anda sukai (tentu saja saat praktek, anda harus memasukkan nama-nama tersebut ke dalam form) dan mengisikannya ke dalam variabel masing-masing. Setelah itu ngapain ya? Berikutnya tentu saja adalah membawa dan menampilkan variabel yang sudah terisi dengan nama-nama tersebut dalam bentuk yang berbeda di …… ya, di halaman lain.
Masih inget kan, bahwa pada baris 7 kode HTML di atas, kita memberitahu form kita agar menuju atau mengeksekusi file hasil_form_saya.php begitu kita klik tombol submit (yang bertuliskan Cocokkan! itu). Berikut ini kira-kira isi file hasil_form_saya.php:
<html>
<head>
<title>Sayang Sekali!</title>
</head><body bgcolor="#FFFFFF" text="#000000">
<p>Kayaknya <?php print $NamaAnda; ?>
<p>gak bakalan bisa jadian sama
<b> <?php print $NamaDia; ?> deh!?! </b>
<p>Cobalah berusaha lebih keras ya…siapa tahu ada kesempatan.
</body>
</html>
Gimana, udah ngerti ya bagaimana caranya form kita mengirimkan sebuah variabel dari form kita itu ke sebuah file PHP?
Cat: FIle hasil_form_saya.php di atas hanya bisa berjalan jika setting register global php server kamu on. Kalau kebetulan settingnya off, maka kamu harus tambah baris setelah seperti ini:
<?
$NamaAnda=$_POST['NamaAnda'];
$NamaDia=$_POST['NamaDia'];
?>
Perhatikan bahwa pada file hasil_form_saya.php kita sebuah variabel dipanggil dengan menambahkan tanda $ ($NamaAnda) di depan variabel yang kita definisikan pada file HTML form_saya.html sebelumnya (NamaAnda).

Get vs Post
Kita sudah menggunakan metode "Post" untuk mengirimkan data form dengan cara yang berbeda menggunakan metode lain yaitu “Get”. Ingat, ini merupakan bagian dari form kita di mana tertulis <form action="hasil_form_saya.php" method=post>. 
Perbedaan antara kedua metode ini adalah bahwa metode post secara transparan mengirimkan semua informasi yang sudah dikumpulkan oleh halaman form kita, sedangkan metode Get akan mengirimkan semua informasi itu sebagai bagian dari URL (dalam contoh form kita tadi, akan seperti ini: http://localhost/hasil_form_saya.php?NamaAnda=panjul&NamaDia=cinta&submit=Cocokkan! — Perhatikan bagaimana informasi yang sudah dimasukkan user mengenai namanya dan nama orang yang disukainya ditambahkan pada URL? Ini akan sangat membantu nanti jika anda sudah mempelajari cara pengiriman variabel antar halaman lebih lanjut).

Keamanan Php


Saat kita mulai membuat aplikasi berbasis webdengan menggunakan PHP tentu kita akan berfokus pada cara pembuatannya, bagaimana mengimplementasikan logika sehingga menghasilkan suatu karya (sistem) yang berjalan sesuai dengan keinginan dan kebutuhan kita.
Tapi ada kalanya kita perlu membalik pola pikir tersebut dengan memandang sebagai seorang user (pengguna aplikasi) yang mungkin memiliki waktu lebih banyak dalam penggunaan aplikasi tersebut. Dalam hal ini banyak hal yang mungkin tidak kita perhatikan dari aplikasi buatan kita tersebut oleh karena itu ada pepatah “Tidak ada sistem yang sempurna.” tetapi penulis akan memberikan sedikit informasi keamanan dasar sehingga kita bisa sedikit melangkah menuju kesempurnaan tersebut.
Beberapa hal yang perlu diperhatikan dalam langkah percobaan para cracker untuk memboikot akses website kita antara lain :
1.  Melalui URL (method GET)
2. Melalui media input yang terdapat dalam form (method POST)
Sebagaimana kita ketahui bahwa terdapat 2 cara umum pengiriman variable dalam PHP yaitu GET dan POST sehingga perlu penanganan khusus dalam penerimaan serta pengiriman variable tersebut.
Untuk method POST :
Method POST merupakan penangkapan variable dari media input yang terdapat dalam FORM.
1. Batasi jumlah karakter (maxlength)
Pembatasan jumlah karakter dalam media input sangat penting sehingga tidak dimungkinkan penulisan script seperti javascript pada inputbox tersebut.
Contoh implementasi : <input name=”_cari” maxlength=”10″ />
Titik rawan : Input Login (username dan password), Input search
2. Lapisi dengan penahan kutip atau addslashes()
Fungsi PHP ini akan membantu kita menambahkan tanda kutip (‘;) pada setiap karakter garing (/) sehingga dapat mencegah timbulnya efek SQL injection. Saya rasa teknik hacking ini cukup populer diantara anda. Penambahan kutip akan membuat garing menjadi bertipe string sehingga tidak dianggap sebagai salah satu perintah query pada MySQL / SQL.
Contoh implementasi : addslashes($_POST['_username'])
Titik rawan : Form Login
3. Lapisi dengan penahan tag atau htmlspecialchars()
Untuk mencegah terjadinya teknik hacking xss atau javascript injection maka ada baiknya kita menambahkan fungsi tersebut. Hal ini akan membuat tag html maupun javascript memiliki tipe data string sehingga tidak akan dieksekusi oleh browser.
Apabila script dimungkinkan dalam media input sehingga masuk ke dalam database dan saat browser membuka halaman yang terkontaminasi tersebut maka browser akan melakukan eksekusi terhadap perintah tersebut yang biasanya dalam bentuk javascript.
Contoh implementasi : htmlspecialchars($_POST['pesan'])
Titik rawan : Form Login, Form Kontak Admin
4. Perhatikan nama media input
Sudah saatnya kita berusaha sedikit lebih unik dalam menentukan nama pada media input kita sehingga mempersulit beberapa tools penjahat yang menggunakan library (kamus kata) dalam penentuan nama variable incarannya. Misalnya pada media input login tambahkan garis bawah. Tentu anda memiliki ide sendiri dalam
mengimplementasikan hal ini.
Contoh implementasi : <input name=”_username” />
Titik rawan : Input Login (username dan password)
Untuk method GET :
Method get merupakan penangkapan variable yang berasal dari URL.
1. Gunakan .htaccess
Sebenarnya ini adalah sebuah metode yang menjadikan website kita seakan memiliki
struktur direktori yang luas, padahal itu adalah variable. Sehingga memecah
konsentrasi dari pengunjung yang berniat isenk. Bila halaman tidak ditemukan maka
kita dapat meredirectnya ke halaman 404 kesayangan kita.
Implementasi :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L]
</IfModule>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^(.*) http://www.mydomain.com/$1 [L,R=301]
2. Hindari $_REQUEST()
Metode ini digunakan untuk menangkap variable dalam bentuk POST dan GET. Ada kalanya kita membutuhkan metode penerimaan variable dengan menggunakan fungsi ini, tetapi batasilah penggunaannya karena tanpa disadari suatu saat anda akan mendapatkan masalah karena hal ini. Dan bila kita telah terlanjur menggunakannya pada seluruh aplikasi kita maka kita akan sulit untuk merubah (Bisa, dengan memilah mana yang tidak perlu dan benar-benar menggunakan.).
Tambahan :
1. Session dan Cookies timeout
Gunakan timeout pada session atau cookies terutama untuk pengenalan login. Session merupakan penanda dari sisi server dan akan hilang apabila browser ditutup, sedangkan cookies adalah pengenalan dari sisi browser dan bila tidak diset timeout maka status akan terus login (pada pengenalan login.), tentu saja anda tau kemungkinan-kemungkinan yang akan terjadi selanjutnya.
Mungkin sampai disini dulu, karena sudah waktunya berangkat kerja. Bila ada yang ingin ditambahkan silahkan ditambahkan karena pengetahuan kita tidak akan habis dengan saling berbagi.

Penulis : Dedy Antonius Sinaga
`