PHP & MySQL Web Development Pengantar PHP & MySQL adalah bahasa pemprogaman web yang mendunia, bahasanya mudah untuk dipelajari, kompatibilitas dengan berbagai macam server baik itu windows maupun unix, dan yang tak kalah penting adalah bahasa pemprogaman PHP & MySQL bersifat open source sehingga perkembangannya pun akan semakin cepat dan dapat diimplementasikan diberbagai bidang kebutuhan dalam pembuatan aplikasi. Dengan semakin berkembangnya dunia internet dan tingginya kebutuhan akan sebuah bahasa pemprogaman yang mumpuni, setiap saat berbagai macam fungsi baru dan library tambahan selalu muncul di internet untuk memperkokoh dan meningkatkan performa keduanya, bug-bug yang ada pada versi sebelumnya diperbaiki oleh komunitas dan juga oleh para programmer handal yang ada diseluruh dunia. PHP & MySQL sekarang hadir tidak lagi pada pembuatan aplikasi web dan database semata, tetapi juga sudah merambah kedalam dunia desktop Windows yang dikenal dengan PHP GTK. Karena manfaatnya yang sangat banyak, mudah untuk dipelajari, dan dapat diimplementasikan dihampir semua bidang kebutuhan maka hadirlah sebuah E-book ini, E-book ini dibuat dengan mengambil dari berbagai macam sumber yang ada, dari situs internet, E-book dan dari manual book.
Apakah PHP Itu ? PHP kepanjangan dari Hypertext Preprocessor, PHP sendiri dibuat oleh Rasmus Lerdorf, PHP bersifat open source dan telah digunakan oleh hampir seluruh web developer di seluruh dunia, situs resmi php bisa dikunjungi di www.php.net. Karena sifatnya yang open source dan semakin banyaknya user membuat bahasa pemprogaman ini mengalami perkembangan yang sangat cepat. Sintak atau strukturnya hampir mirip dengan bahasa pemprogaman C, Java dan Perl sehingga dengan begitu bagi mereka yang sudah mempelajari bahasa tersebut tidak akan mengalami kesulitan, selain itu bagi para pemula yang baru memulai bahasa pemprogaman web rasanya PHP turut diperhitungkan, karena pemanfaatan bahasa PHP tidak hanya sekedar untuk web dan aplikasinya tetapi sudah merambah kedunia desktop windows, namanya yaitu PHP GTK, kita akan membahas PHP GTK lebih lanjut nanti. Sebuah contoh script php sederhana :
Belajar PHP & MySQL 1
Kalau kita perhatikan script diatas, bahasa php dimulai dengan tanda “”, sama seperti pemprogaman web lainnya, script php ditempatkan di dalam tag HTML. Berbeda halnya dengan bahasa pemprogaman Java script, script php di olah di sisi server, ini berarti bahwa script php yang telah dibuat akan diproses terlebih dahulu di server baru kemudian ditampilkan ke client dalam bentuk html atau dalam format lainnya, dengan begitu script akan lebih aman dan meminilisasikan kesalahan interpreter browser. Jika masih penasaran, sekarang coba lihat source code script diatas, kalau anda menjalankan script diatas menggunakan IE maka anda bisa memilih menu view > source, maka isinya akan seperti ini:
Belajar PHP & MySQL Selamat belajar PHP & MySQL Berbeda bukan dengan source codenya !, inilah yang disebut sebagai server side scripting. PHP memiliki ekstensi *.php pada setiap filenya.
Apa saja yang bisa dilakukan dengan PHP ? PHP hampir dapat berjalan di semua system operasi seperti Windows, Unix, Linux dan variannya, Mac OS X, RISC OS dan lainnya. PHP juga Kompatibel dengan web server yang ada sekarang seperti Apache, IIS ( Internet Information Service ), Personal web server, Caudium, Xitami, Omni dan masih banyak lainnya. Dengan begitu system operasi apapun yang anda gunakan atau web server apapun yang anda gunakan php dapat berjalan dengan lancar. Seperti telah diterangkan sebelumnya bahwa script php diolah di server kemudian ditampilkan ke client dalam bentuk HTML atau format lainnya, dengan tambahan berupa library, php mampu menampilkannya dalam berbagai macam format seperti gambar (image), pdf bahkan swf. Selain output diatas php juga mampu menghasilkan output berupa teks seperti XHTML dan XML. Salah satu fitur dasyat PHP dibandingkan bahasa pemprogaman web lainnya adalah PHP mampu berkomunikasi hampir pada semua database yang ada sekarang, diantaranya :
2
• • • • • • • • • • • • • • • • • • • •
Adabas D Ingres Oracle (OCI7 and OCI8) dBase InterBase Ovrimos Empress FrontBase PostgreSQL FilePro (read-only) mSQL Solid Hyperwave Direct MS-SQL Sybase IBM DB2 MySQL Velocis Informix ODBC Dan Unix dbm
Dengan PHP kita juga mampu berhubungan dengan berbagai macam protocol yang ada seperti LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM dan lainnya. Fasilitas lainnya adalah soket programming, dengan fasilitas ini kita bisa membuat script php yang dapat menghubungkan komputer pada sebuah jaringan, sehingga kita bisa bertukar data. Kemudian ada juga yang namanya COBRA Extension untuk access remote objects. Fungsi-fungsi lain diantaranya adalah : • Bzip2 Compression Functions yaitu fungsi untuk membuat dan membaca file berformat *.zip • ClibPDF Functions yaitu fungsi untuk membuat file pdf secara on the fly, fungsi ini hampir mirip dengan PDFlib. • Cybercash Payment Functions, bagi mereka yang ingin membuat aplikasi yang berhubungan dengan E-Payment bisa menggunakan fungsi ini. • DOM XML Functions • • •
•
NET Functions Filesystem Functions COM (for Windows) dengan fungsi ini kita mampu berkomunikasi antar aplikasi yang dibuat dengan standar com, maka dengan begitu kita bisa saling kirim data antar aplikasi. Dan masih banyak lagi, untuk lebih jelasnya anda bisa masuk ke situs resminya yaitu www.php.net
3
Hal baru di PHP 5 PHP 5 adalah versi terbaru sekarang, dengan berbagai macam kelebihan yang ada dibandingkan pada versi sebelumnya yaitu versi 4, PHP 5 hadir dengan lebih banyak fungsi dan perbaikan bug. Dengan PHP 5 kita mampu menangani dan membuat session pada object. Kemudian ada juga tambahan library seperti GD2 untuk memproses dynamic image dengan lebih efektif. Fungsi untuk menangani Form dan Simple XML juga ditingkatkan di PHP 5, dan masih banyak kelebihan dan tambahan fungsi yang dapat mempermudahkan kita untuk bekerja dengan PHP & MySQL.
Menginstall PHP Server di desktop Berbeda dengan bahasa pemprogaman HTML yang tinggal klik 2 kali sudah bisa dijalankan di IE atau browser lainnya, PHP membutuhkan sebuah aplikasi yang bernama web server emulator atau server emulator atau program server untuk menjalankan scriptnya, lain halnya jika anda mempunyai koneksi internet 24 jam dan mempunyai dana lebih untuk menyewa hosting, dengan menyewa jasa hosting anda cukup mengupload script yang anda buat ke dalam server.. Apabila anda memakai alternative yang pertama dalam menjalankan script php, anda harus terlebih dahulu menjalankan aplikasi server terlebih dahulu, baru kemudian memanggil atau menjalankan script PHP. Program server yang dapat digunakan ada banyak diantaranya adalah Phptriad, XAMPP, Reactor server, WAMP server dan masih banyak lagi, namun bagi pemula disarankan untuk menginstal XAMPP sebagai servernya, mengapa ? karena proses penginstalan server XAMPP relative lebih mudah jika dibandingkan aplikasi server lainnya, untuk mendownload XAMPP bisa didownload di situs http://www.apachefriends.org/.
Gambar : XAMPP SERVER 4
MySQL MySQL adalah database yang cepat dan tangguh, sangat cocok jika digabungkan dengan PHP, dengan database kita bisa menyimpan, mencari dan mengklasifikasikan data dengan lebih akurat dan professional. MySQL menggunakan SQL language ( Structur Query Language ) artinya MySQL menggunakan query atau bahasa pemprogaman yang sudah standar di dalam dunia database. Kelebihan MySQL diantaranya : 1. Dari segi performa, MySQL tidak bisa diragukan, pemprosesan database sangat cepat 2. Open source 3. Mudah untuk dipelajari 4. Kompabilitas dengan berbagai system operasi dan web server yang ada
Mengapa Memilih PHP & MySQL Tidak semua bahasa pemprogaman dapat berjalan di semua sistem operasi dan web server yang ada, kalau dalam dunia programming, C dan Java adalah bahasa pemprogaman yang dapat berjalan hampir disemua sistem operasi, apalagi dengan Java, Java tidak lagi monoton masuk dalam dunia Komputer tetapi juga merambah dalam dunia mobile seperti Smartphone dan aplikasinya. PHP & MySQL adalah sebuah pasangan yang sangat cocok dan dapat berjalan di hampir semua system operasi dan web server yang ada. Alasan lain mengapa memilih PHP & MySQL adalah karena perkembangannya yang sangat cepat apalagi PHP & MySQL adalah bahasa pemprogaman yang bersifat open source, setiap waktu selalu muncul fungsi-fungsi tambahan yang dapat meningkatkan performa keduanya, apalagi ketika PHP sudah merambah kedalam dunia desktop dengan dikembangkannya PHP GTK, maka harus menunggu apa lagi, belajarlah mulai dari sekarang, tahap demi tahap, trial and error, karena bahasa pemprogaman PHP & MySQL bisa dibilang sebuah bahasa pemprogaman masa depan. Dan jika suatu saat Anda berminat masuk kedalam dunia IT atau lebih khususnya Web Deveploment maka anda sudah siap dan tidak terlalu banyak tertinggal.
5
PHPdetail – Function Pendahuluan Programmer yang handal adalah programmer yang mampu membuat kode program se-efisien mungkin, bayangkan jika kode-kode program yang memiliki fungsi yang sama ditulis berulang-ulang, ditempatkan di setiap kode program, hal ini tentulah tidak efisien dan akan mengakibatkan pembengkakan file dari suatu program. Fungsi hadir untuk memberikan solusi tersebut, kode-kode programyang sama dibuatkan fungsinya, jika diperlukan maka tinggal panggil saja. Fungsi pada dasarnya terdiri dari blok-blok program yang dapat dipanggil melalui include(), memasukkannya langsung ke kode program utama, dan memanggil nama fungsinya. Hal terpenting dari fungsi adalah fungsi dapat menerima value dari luar, atau dikenal dengan parameter, value ini kemudian dapat di olah dan hasilnya dapat digunakan di luar fungsi.
Jenis fungsi 1) Internal function : fungsi yang sudah disediakan pada library PHP, untuk memakainya cukup memanggilnya saja. 2) Define function : fungsi yang dibuat sendiri.
Manfaat menggunakan fungsi 1) Kode program lebih mudah di baca. 2) Jika terdapat kesalahan mudah untuk di koreksi. 3) Perintah atau prosedur dalam suatu program dapat langsung diubah dari fungsinya, tanpa harus mengubah program utama, dengan begitu akan meningkatkan efisiensi dalam programming.
Memanggil fungsi Untuk memanggil suatu fungsi caranya : nama_fungsi($parameter); Di mana $parameter adalah value yang nantinya di olah pada fungsi. $parameter dapat berupa tipe data integer, float atau $variabel. Contoh : fungsi_hitung(2); fungsi_hitung(2.7); fungsi_hitung($variabel);
6
Note : $variabel juga dapat berupa array.
Contoh fungsi dan parameternya strip_tags ( string $str [, string $allowable_tags] ) Penjelasan fungsi : Strip_tags berfungsi untuk membuang tag-tag HTML & PHP dalam suatu string. $str adalah variable yang mau diolah. Tanda […] bersifat optional, artinya boleh diberikan atau tidak. Note : Pesan error akan muncul pada browser bila fungsi yang dipanggil tidak terdapat dalam library PHP atau salah penamaan, lihat gambar 1.
Gambar 1 : Pesan error ketika memanggil fungsi yang tidak ada atau salah penamaan Pesan error yang ditampilkan di browser sangatlah berguna, dari pesan error kita dapat mengetahui di mana letak kesalahan ketika melakukan programming. Ada dua hal yang harus diperhatikan ketika melihat pesan error : 1) Apakah nama fungsi yang dipanggil benar. 2) Jika memakai fungsi yang ada dalam Library PHP, cek apakah fungsi yang dipanggil terdapat pada versi PHP yang digunakan. Berdasarkan pengalaman penulis, hal yang sering terjadi adalah, penulis lupa fungsi yang mau dipakai memakai tanda pemisah “_” atau tidak, sebagai contoh : str_replace ( mixed $search, mixed $replace, mixed $subject [, int&$count] ) 7
strtok ( string $str, string $token ) Keduanya memiliki 3 huruf depan yang sama “str”, suatu saat lupa yang memakai pemisah “_” yang mana ? oleh karena itu sampai saat ini, PHP Manual selalu berada dalam USB, manakala dibutuhkan sebagai acuan tinggal search saja.
Fungsi bersifat Case Insensitive Dalam hal penamaan, fungsi bersifat insensitive, fungsi contoh(); , Contoh(); , CONToh(); , akan memberikan hasil yang sama. Note : Disarankan, ketika membuat dan memanggil suatu fungsi usahakan untuk menggunakan lowercase (huruf kecil) karena hal ini sesuai dengan acuan dalam Library PHP.
Membuat Fungsi Sendiri Suatu fungsi yang terdapat dalam Library PHP dapat melakukan berbagai macam hal, seperti menggunakan dan menghubungkan database, membuat grafik/chart, membuat zip on the fly, mengecek suatu format email, memotong dan menggabungkan text, memecah atau menggabungkan array, membuat enkripsi suatu string, mengcopy file dari server ke server, membuat folder, dan macam sebagainya. Namun tetap saja hal itu memiliki keterbatasan. Dengan membuat fungsi sendiri, Anda dapat dengan bebas menggabungkan, memodifikasi antara satu fungsi dan fungsi lainnya. Dengan begitu diharapkan fungsi yang Anda buat efisien dan sesuai dengan kebutuhan.
Struktur Fungsi Struktur dasar fungsi dalam PHP sebagai berikut : function nama_fungsi() { Taruh kode program di sini; } Untuk membuat Fungsi ada beberapa hal yang harus diperhatikan : Awali setiap pembuatan fungsi dengan kata function. Nama fungsi dapat berupa angka, huruf atau campuran keduanya, namun huruf pertama tidak boleh angka. Contoh penamaan fungsi yang salah : function 1contoh () { Contoh; 8
} Nama fungsi tidak boleh sama dengan yang ada dalam Library PHP. Contoh : Function echo() { Kode; } Dalam tanda {…}, merupakan tempat untuk menuliskan kode program. Untuk memanggil fungsi, cukup dengan memanggil nama fungsinya.
Parameter Parameter merupakan nilai yang diberikan kepada fungsi yang kemudian diolah dan hasilnya dapat digunakan di luar fungsi. Suatu fungsi bisa terdiri dari 1 parameter, 2 paramater, 3 dan seterusnya, bahkan tanpa parameter sekalipun. Contoh PHP script yang mengunakan parameter : Output : 25 Penjelasan : $nilai = 5 adalah variable yang mau di olah dalam fungsi hitungmath. Function hitungmath($nilai) -> membuat suatu fungsi dengan nama hitungmath dan parameter $nilai, $nilai di sini merupakan nilai yang mau diolah dalamfungsi hitungmath, dalam hal ini nilai yang mau diolah sebesar $nilai atau 5. Hitungmath($nilai); -> memanggil fungsi hitungmath. 9
Scope Variable Scope variable dapat diartikan sebagai sebuah cakupan wilayah yang dapat ditangani oleh variabel. PHP memiliki 2 jenis scope variable : 1) Lokal variable yaitu variable yang hanya dapat digunakan di dalam fungsi. 2) Global variable yaitu variable yang dapat digunakan di luar dan di dalam fungsi. PHP memiliki beberapa syarat dalam variable scope, diantaranya : 1) Variabel yang dideklarasikan di dalam sebuah function, hanya dapat digunakan pada fungsi tersebut. Jenis scope variable ini dikenal dengan local variable. 2) Variabel yang dideklarasikan di luar function, di kenal dengan global variable. 3) Menggunakan perintah require() dan include() tidak mempengaruhi area scope varibel. Jika suatu ketika memanggil dengan perintah di atas dan variable terletak di dalam suatu fungsi maka variable yang terdapat didalamnya adalah local variable, namun jika variable terletak diluar fungsi maka variable tersebut akan dianggap sebagai global variable. 4) Suatu variable dalam fungsi dapat dijadikan global variable dengan cara menambahkan kata global pada variable yang dideklarasikan. 5) Variable yang terbentuk dapat dihapus dengan cara unset($nama_variabel). Agar lebih paham mengenai variable scope, simak studi kasus berikut : variablescope1.php Function scope() {$ variabel = “nilai”; } echo $variabel; Apa yang ditampilkan jika script di atas dijalankan ? jawabannya tidak ada, lho kenapa ? Jika Anda benar-benar membaca dengan seksama mengenai perbedaan local variable dan global variable maka Anda tidak akan bingung. $variabel yang ada pada function scope(), dinamai local variable, variable ini hanya dapat digunakan di dalam function scope() saja. $variabel diluar function scope(), dinamai global variable, variable ini bersifat global, karena $variabel tidak didefinisikan sebelumnya maka tidak ada hal yang ditampilkan. variablescope2.php
{e cho “Nilai variable sebelum deklarasi variabel = $var”; $var = 15; echo “nilai variable setelah deklarasi variable = $var”; } Kasus2(); echo $var; ?> Tebak apa yang keluar tanpa menjalankannya di browser ?
Pass by value dan Pass by reference Passby1.php //print out 10 Script diatas akan menghasilkan $value = 10 bukan $value = 11 mengapa ? hal ini disebabkan karena peraturan scope variable. Kode $value = 10 akan membuat sebuah variable bernama value dan bernilai 10, kemudian pada baris pass ($value); fungsi pass dipanggil. Selanjutnya $value = 10 diproses, $value = $value +$tambah;, dengan begitu nilai dari $value = 11, sesuai dengan peraturan scope varibel, $value = 11 hanya akan sampai pada baris terakhir pada fungsi, nilai yang telah diolah tidak akan dapat dipakai di luar, singkatnya bersifat local variable.
Apa itu Pass by value dan Pass by reference? Pass by value dan Pass by reference adalah cara bagaimana variable diolah.
11
Pass by value, variable yang diberikan oleh parameter hanya akan diolah didalam fungsi, variable yang berada diluar fungsi akan tetap. Dengan kata lain variable yang dipakai oleh suatu fungsi tidak akan mempengaruhi variable yang ada diluar. Pass by reference, jika pada pass by value, nilai hasil olahan tidak dapat digunakan diluar fungsi, maka pass by reference sebaliknya, hasil olahan yang telah diproses di dalam fungsi dapat digunakan di luar fungsi, dengan kata lain value yang di luar fungsi akan turut berubah seiring perubahan yang terjadi pada variable didalam fungsi. Passbyrefence.php ”; Passref($x); Echo “nilai sesudah fungsi ”. $x.”
”; ?> //print out nilai sebelum fungsi 10 nilai sesudah fungsi 11 Note : Pemahaman yang mendalam mengenai scope variable, pass by value dan pass by reference amatlah penting, karena dalam web development skala besar hal-hal diatas amatlah diperlukan, terutama dalam hal efisiensi kode program.
Fungsi Return Return berfungsi untuk menghentikan kode program. Contohreturn.php
cho "Data yang Anda isikan tidak lengkap"; return; } if(!empty($name) && !empty($pass)) {e cho "selamat datang"; } } //variabel datacek($username, $password); ?> //input1 $username = "kinta mahadji"; $password = "root"; Masukan input1 dibawah kode blok //variable dan lihat hasilnya. //input2 $username = "kinta mahadji"; Ganti input1 dengan input 2 dibawah kode blok //variable dan lihat hasilnya. Penjelasan script Contohreturn.php Fungsi dari isset() adalah untuk mencek apakah variable sudah terbentuk, dan fungsi dari empty() adalah untuk memastikan bahwa variable yang diberikan tidaklah kosong. Ketika diberikan input1, variable2 terpenuhi, sehingga kode akan langsung mencek apakah variable yang diberikan kosong atau tidak, jika tidak kosong maka fungsi echo akan dijalankan. Ketika diberikan input2, variabel2 yang dibutuhkankan tidak terpenuhi, pada saat melakukan pengecekan variable pada baris if(!isset($name) || !isset($pass)), maka fungsi echo akan dijalankan dan kode akan dihentikan dengan return. Script - script
Sample1.php A function to validate a username and password.
information //in the database. For the sake of simplicity in this example, the username //and password are hard-coded into variables. $actualuser = "myusername"; $actualpass = "mypassword"; //Now, you do a quick comparison to see if the user has entered the correct login. if (strcmp ($username, $actualuser) == 0 && strcmp ($password, $actualpass) == 0){ return true; } else { return false; }}/ /You then call the function and pass in the values you want checked. if (validatelogin ("myusername","mypassword")){ echo "You are logged in correctly"; } else { echo "You have an incorrect username and/or password"; }? >
Sample2.php A function to return the sum of three values. "; //Echoes a 1. //If you pass all the arguments, you will still get a valid result. echo addvalues (1,2,3); //Echoes a 6. ?>
14
Sample3.php A function to concatenate text.
Sample4.php A function to add up any number of values.
}/ /Now, you can pass the function any numbers. echo addanything (1,5,7,8,11) . "
"; //Outputs 32. echo addanything (1,1) . "
"; //Outputs 2. //It will ignore noninteger values. echo addanything (1,1,"Hello World"); //Still outputs 2. ?>
sample5.php Function that will take in a set of values, calculate them "; //Will echo 13. echo $myarray[1]; //Will echo 7. ?>
16
Sample6.php A function to add two values "; //Let's say this value represents a user-submitted value. $whattodo = "subtractvalues"; //You can then call the function as a variable. echo $whattodo($firstvalue, $secondvalue) . "
"; //Let's say this value represents a user-submitted value. $whattodo = "multiplyvalues"; //You can then call the function as a variable. echo $whattodo($firstvalue, $secondvalue) . "
"; ?>
17
Batasi Download File dengan PHP Script Salah satu masalah seorang web developer adalah ketika berusaha melakukan pembatasan download. Pembatasan download disini bukanlah dimaksudkan sebagai manajemen bandwidth seperti yang dilakukan oleh administrator jaringan komputer. Tapi yang dimaksud pembatasan download disini adalah membatasi hanya user yang telah terdaftar saja yang boleh melakukan download. Masalah kembali muncul ketika browser menampilkan letak asli direktori penyimpanan file tersebut. Tentunya script yang telah di buat menjadi sia-sia. Masalah lain berkenaan dengan pembatasan download kembali ada ketika user menggunakan download manager. Bisa diambil contoh www.pdfchm.com. Belakangan ini penulis pun memiliki beberapa pertanyaan. Bagaimana melakukan pencegahan yang baik agar hanya user yang sudah registrasi saja yang dipersilahkan untuk mendownload. Maklum, banyak pendownload sejati yang tidak pernah kehabisan akal untuk mencari cara bagaimana mendownload yang baik. :D~~ Termasuk penulis sendiri. :D~~ Beberapa waktu terakhir penulis mencoba merakit sebuah script untuk memberikan solusi itu semua. Yang menakjubkan adalah didalamnya sudah termasuk solusi pencegahan download oleh Download Manager seperti IDM, Download Accelerator Plus, dan berbagai download manager lain. :D~~ Yang ada hanyalah user mendapatkan file html biasa ketika melakukan download menggunakan download manager. :D~~ Kesal memang di sisi pendownload. Tapi menguntungkan bagi kita. Setidaknya bisa meminimalisir masalah-masalah yang ada. Yupsss... dari pada penulis berbicara sendirian nggak karuan, lebih baik langsung penulis jabarkan sedetil mungkin mengenai cara pembatasan download dengan php. Di bawah ini hanyalah sebuah contoh yang penulis buat untuk menjelaskan bagaimana cara kerja script ini. Pertama adalah file index.php penulis tidak akan menjelaskan script ini, karena cukup familiar. Yang :D~~~
sudah
Registrasi
dan
bayar
duitnya
...
Kalo mau ngetest yang nggak bayar browsernya di clear sessionnya dulu ...
Tukang download tapi nggak bayar, gw banget :D~~~"; ?>
18
Kedua adalah file reg.php. Penulis andaikan script ini adalah keadaan ketika user telah teregistrasi dan akan mendownload file yang diinginkan. Ditampilkan sebuah form berikut security codenya. User dipersilahkan untuk mengisi nama, email dan code yang telah disediakan. Jika syarat telah terpenuhi maka user diperbolehkan untuk melakukan download. Jika tidak user akan diredirect ke halaman redirect.php .
"; ?> Sedikit penulis jelaskan script diatas. Terdapat suatu fungsi dan satu form. Fungsi tersebut adalah generateCode() ... $codenya = generateCode(); Fungsi ini diambil dari file code.php, isinya adalah sebagai berikut :
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1); $i++; } return $code ; } ?> Fungsi tersebut hanya melakukan proses randomisasi angka dan huruf. Kemungkinan angka-huruf dan berapa bit yang akan ditampilkan dapat diset sesuai keinginan. Kalimat intinya adalah : while ($i < $characters) { $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1); $i++; } Ini berarti, lakukan proses randomisasi sepanjang n $characters dengan menggunakan variable $possible sebagai kemungkinannya. Anda dapat menggunakan logika milik anda untuk melakukan proses randomisasi. Ini hanya sebagai contoh proses randomisasi yang nantinya digunakan sebagai security code. Balik lagi ke halaman reg.php $_SESSION['code'] = $codenya; $_SESSION['download'] = session_id(); $_SESSION['cekdownload'] = $_SESSION['download']; $_SESSION['code'] nantinya digunakan sebagai patokan untuk melakukan pencocokan dengan variable $_POST['code']. Variable $_POST['code'] sendiri dihasilkan dari text inputan bernama 'code' yang dimasukkan oleh user ketika mengisi form inputan. $_SESSION['download'] di peroleh dari session_id(), disini penulis gunakan ketika user dalam kondisi telah login. Dan nantinya pula akan digunakan untuk memberikan izin hanya user yang telah teregistrasi saja yang dipersilahkan untuk mendownload. $_SESSION['cekdownload'], penulis gunakan variable session ini untuk penegasan saja. Kemudian file cek.php berisi :
} ?> script ini berfungsi untuk melakukan filterisasi : if (ISSET($_POST['nama']) && ISSET($_POST['email']) && ISSET($_POST['code'])) ketika user telah berhasil memasukkan nama, email dan security code if ( $_SESSION['code'] == $_POST['code']) dan apabila user telah benar mengisi security codenya maka header ("location: download.php/true/$_SESSION[download]") user akan di redirect untuk mendownload filenya. dan kalimat ini else { echo "Security Codenya Salah !!"; } terjadi karena user salah mengisi codenya. Kemudian script intinya adalah download.php : untuk browser header('content-disposition: attachment; filename=' . $fileName); header('content-type: ' . $mimeType); header('content-length: ' . filesize($fileName)); // Display the file readfile($fileName); } else { header("location: redirect"); } ?> 21