Professional Documents
Culture Documents
opasdfghjklzxcvbnmqwertyuiopasdfgh
jklzxcvbnmqwertyuiopasdfghjklzxcvb
nmqwertyuiopasdfghjklzxcvbnmqwer
tyuiopasdfghjklzxcvbnmqwertyuiopas
dfghjklzxcvbnmqwertyuiopasdfghjklzx
cvbnmqwertyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyuiopasdfghj
klzxcvbnmqwertyuiopasdfghjklzxcvbn
mqwertyuiopasdfghjklzxcvbnmqwerty
uiopasdfghjklzxcvbnmqwertyuiopasdf
ghjklzxcvbnmqwertyuiopasdfghjklzxc
vbnmqwertyuiopasdfghjklzxcvbnmrty
uiopasdfghjklzxcvbnmqwertyuiopasdf
ghjklzxcvbnmqwertyuiopasdfghjklzxc
vbnmqwertyuiopasdfghjklzxcvbnmqw
ertyuiopasdfghjklzxcvbnmqwertyuiop
asdfghjklzxcvbnmqwertyuiopasdfghjkl
Cara Memproses HTML Form yang Benar
Kebanyakan programmer PHP pemula tidak tahu bagaimana cara memproses HTML form
yang benar. Bahkan ini juga terjadi bagi yang sudah lama berkecimpung di dunia PHP.
Kebanyakan masih menggunakan cara lama (bisa dibilang salah), cara yang populer di versi
PHP4 ke bawah. Dimana di versi PHP4 ke bawah register_global secara default disetting ON.
Tentu saja, ketika register_global diset menjadi OFF, script php tersebut tidak akan bekerja.
Berikut adalah cara memproses html form menggunakan php yang benar, yang bekerja di
semua versi php (dari 4.1.0 sampai version terkini 5.3.3).
Form HTML dibentuk menggunakan tag <form/>, tag <form/> memiliki attribute method yang
digunakan untuk menentukan bagaimana cara form mengirim data ke server (data dikirim ke
page/halama yang diset di dalam attribute action). Attribute method bisa diisi dengan 2 nilai,
yaitu post dan get. Jika diisi dengan post, maka data akan dikirim sebagai sebuah HTTP post
transaction. Jika diisi dengan get, maka data akan dikirim sebagai variabel variabel URL.
Contoh:
view plaincopy to clipboardprint TryIt?
Form pertama akan mengirim data ke http://google.com menggunakan method get, dan form
kedua akan mengirim data ke http://sandbox.paypal.com/cgi-bin/webscr dengan method post.
Dalam memproses sebuah form, yang perlu diketahui adalah di PHP ada yang disebut dengan
superglobals variables. Superglobals variables adalah variabel standar yang tersedia di seluruh
ruang lingkup kode php bersangkutan. Superglobals variables yang berperan saat memproses
form adalah $_POST, $_GET, dan $_FILES. Ketiga variabel ini akan diisi dengan data yang
diterima/dikirim dari/oleh form html.
Di atas telah disebutkan bahwa sebuah form bisa menggunakan 2 metode pengiriman data. Jika
menggunakan post, maka data yang diterima dari form ini akan disimpan ke dalam variable
$_POST. Jika dikirim menggunakan metode get, maka data yang diterima akan disimpan ke
dalam varibel $_GET. Sedangkan variabel $_FILES berfungsi untuk menyimpan informasi file
file yang diupload (untuk mengupload file digunakan element form dengan type="file"). Ketiga
superglobals variables itu, akan berisi associative array.
Untuk lebih memperjelas akan diberikan contoh. Misalkan anda memiliki sebuah form dengan 4
element seperti di bawah:
2
pada saat form diisi data dan tombol submit ditekan, data akan dikirim ke server dan terjadi
proses seperti gambar:
Ilustrasi sederhana di atas menjelaskan bahwa pada saat tombol submit ditekan, data akan
3
dikirim ke server dan diproses oleh php. PHP akan menyimpan data yang diterima (yang telah
diproses) ke dalam variabel $_POST (karena data dikirim dengan method post). Selanjutnya,
adalah "tugas programmer untuk memproses data yang diterima", yang telah ditempatkan di
variabel $_POST oleh PHP. Seperti terlihat di gambar, variabel $_POST akan berisi associative
array berikut:
view plaincopy to clipboardprint TryIt?
1. $_POST = array (
2. 'nama' => 'John',
3. 'kelamin' => 'L',
4. 'status' => 'M',
5. 'alamat' => 'Jalan kutilang',
6. );
Pertanyaan yang muncul adalah, mengapa variabel $_POST terbentuk seperti itu? Gambar di
bawah akan menjelaskannya.
Di variabel $_POST, bagian sebelah kiri tanda => disebut dengan 'key', bagian sebelah kanan
disebut dengan 'value'. 'key' akan bersesuaian dengan attribute 'name' dari masing masing
element <form/>, dan 'value' and berisi data yang dinput oleh user pada masing masing element
<form/> (lihat gambar agar lebih jelas).
4
Setelah mengetahui bagaimana PHP menerima data yang dikirim dari sebuah form, langkah
selanjutnya adalah memproses data yang diterima tadi, yang ditempatkan di dalam variabel
superglobal (dalam hal ini adalah $_POST). Misalkan data tadi hanya ditampilkan setelah user
menekan tombol submit.
view plaincopy to clipboardprint TryIt?
1. <?php
2. echo "Nama: ".$_POST['nama'];
3. echo "<br/>Jenis Kelamin: ".$_POST['kelamin'];
4. echo "<br/>Status: ".$_POST['status'];
5. echo '<br/>Alamat: '.$_POST['alamat'];
6. ?>
kode php di atas akan bekerja di semua versi php (dari 4.1.0 sampai version terkini 5.3.3), baik
register_global diseting on ataupun off. Kode php ini adalah bagian pemrosesan data yang
dilakukan oleh programmer. Untuk form yang mengirim data menggunakan method get,
prinsipnya sama hanya ganti $_POST dengan $_GET.
Rangkuman
Secara garis besar memproses form dengan php adalah seperti berikut. Dimulai dari browser
menampilkan form yang perlu diisi oleh user. Kemudian user menginputkan data ke dalam form.
Data dikirim oleh browser ke server. PHP menerima data dan menempatkan data yang diterima
ke dalam variabel $_POST atau $_GET atau $_FILES. Selanjutnya "programmer memproses
data yang telah disimpan ke dalam variabel $_POST atau $_GET atau $_FILES tadi". Terakhir,
server mengirim hasil pemrosesan data ke browser dan menampilkannya kepada user.
Jika ada pertanyaan tentang tutorial "Cara Memproses HTML Form yang Benar" ini,
silahkan tanyakan di http://ask.myphptutorials.com atau dengan form di bawah.
5
PHP Function
Tutorial PHP Function akan menjelaskan cara membuat function anda sendiri (user defined function).
Function memudahkan anda untuk tidak menulis kode yang sama berulang kali.
Apa yang akan Anda pelajari:
Membuat Function
1. function namaFunction(){
2. //badan function
3. //berisi kode php untuk dieksekusi
4. }
contoh:
view plaincopy to clipboardprint TryIt?
1. <?php
2. function showName(){
3. echo "My name is MyPHPtutorials";
4. }
5. function getUrl(){
6. return "http://www.myphptutorials.com";
7. }
8. ?>
9. <html>
10. <head>
11. <title>Contoh PHP Function</title>
12. </head>
13. <body>
14. <div>
15. <?php showName();?>
16. </div>
17. <div>
18. Website: <?php echo getUrl();?>
19. </div>
20. </body>
21. </html>
6
Menggunakan Function di Semua Halaman
Tentu saja function bisa dipanggil dari semua halaman website, caranya adalah membuat sebuah file
yang berisi function yang anda buat (misal file funciton.php), dan menggunakan statement include_once
untuk meng-include file tersebut. Contoh:
buat file function.php
1. <?php
2. //file function.php
3. function showName(){
4. echo "MyPHPtutorials";
5. }
6. function getUrl(){
7. return "http://www.myphptutorials.com";
8. }
9. ?>
kemudian buat file lain yang menggunakan function di atas, dan include file function.php
menggunakan statement include_once
view plaincopy to clipboardprint TryIt?
1. <?php
2. //file index.php
3. include_once "function.php"; //include file function.php
4. ?>
5. <html>
6. <head>
7. <title>Contoh PHP Function</title>
8. </head>
9. <body>
10. <div>
11. <?php showName();?>
12. </div>
13. <div>
14. Website: <?php echo getUrl();?>
15. </div>
16. </body>
17. </html>
18.
19. <?php
20. //file about.php
21. include_once "function.php";
22. ?>
23. <html>
24. <head>
25. <title>About <?php showName();?></title>
26. </head>
27. <body>
28. Website: <?php echo getUrl();?>
29. </body>
30. </html>
7
Argumen Function
Informasi bisa diberikan kepada function melalui argumen argumen atau paremeter paremeter yang
dipisahkan tanda koma ",".
Format:
Contoh:
view plaincopy to clipboardprint TryIt?
Argumen function bisa memiliki nilai default seperti halnya di C++, contoh:
8
Function dengan Argumen Tak Terhingga
Function bisa memiliki argumen dengan jumlah tak terhingga, untuk itu dibutuhkan bantuan function
func_num_args(), func_get_arg(), dan func_get_args(). Misalkan Anda ingin membuat function untuk
menjumlahkan banyak bilangan (bukan hanya 1+2, tetapi 1+2+3+5+7 dst.), caranya adalah sebagai
berikut:
1. function jumlah(){
2. if(func_num_args() <= 0){
3. echo "0";
4. }else{
5. $argumen = func_get_args();
6. $hasil = 0;
7. foreach($argumen as $bilangan){
8. $hasil += $bilangan;
9. }
10. echo $hasil;
11. }
12. }
13. //cara penggunaan
14. jumlah(); //hasil 0
15. jumlah(2); //hasil 2
16. jumlah(1,2,3,4,5);// hasil 15
Untuk mereturn hasil dari kalkulasi yang dilakukan oleh sebuah function digunakan statement return.
Statement return akan membuat eksekusi function berhenti dan memberikan hasil kalkulasi. Contoh:
9
Anonymous Function
Anonymous function atau closures adalah function tanpa nama function. Kegunaan utamanya sebagai
Callback parameter. Contoh:
10
Save Edit Delete Data Dari Database
Tutorial Save Edit Delete Data Dari Database menjelaskan cara menyimpan data ke database,
mengedit data yang telah disimpan, dan menghapus data yang tidak diperlukan. Menyimpan,
mengedit, dan menghapus data adalah merupakan hal yang paling dasar yang harus diketahui
dalam membuat website yang dinamis. Dengan menguasai ketiga hal tersebut anda akan bisa
membuat website dalam bentuk apapun.
11
10. <dd><input type="text" name="nama" id="nama"/></dd>
11. <dt>Jenis Kelamin</dt>
12. <dd>
13. <input type="radio" name="jenis_kelamin" id="laki" value="L"/> Laki Laki
14. <input type="radio" name="jenis_kelamin" id="prm" value="P"/> Perempuan
15. </dd>
16. <dt>Tanggal Lahir</dt>
17. <dd>
18. <input type="text" name="tanggal" id="tanggal" size="5"/>
19. <input type="text" name="bulan" id="bulan" size="5"/>
20. <input type="text" name="tahun" id="tahun" size="5"/>
21. </dd>
22. <dt></dt>
23. <dd><input type="submit" name="save" value="save" /></dd>
24. </dl>
25. </form>
26. </body>
27. </html>
1. <?php
2. $nis = $_POST['nis'];
3. $nama = $_POST['nama'];
4. $jenis_kelamin = $_POST['jenis_kelamin'];
5. $tglLahir = $_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tanggal'];
6. //koneksi database
7. $conn = mysql_connect("dbhost","db_user","db_password");
8. mysql_select_db("absensi_siswa");
9.
10. $query = "insert into siswa set nis='$nis',nama='$nama', jenis_kelamin='$jenis_kelamin',
tgl_lahir='$tglLahir'";
11. $hasil = mysql_query($query);
12. if($hasil){
13. echo "Data siswa telah disimpan";
14. }else{
15. echo "Error! gagal menyimpan data siswa:".mysql_error();
16. }
17. ?>
Di baris 2-5 digunakan untuk menyimpan data form yang telah dikirim ke variabel yang
bersesuaian. Seperti $nis = $_POST['nis'], mengapa menggunakan $_POST['nis']. Karena pada
file form_siswa.php di tag <form/> (baris 5) atribut method diisi dengan method="post" yang
artinya data dikirim dengan method POST dan di baris 8 file form_siswa.php atribut name dari
12
<input/> field untuk meng-input NIS diset name="nis". Lebih lengkapnya ada di
tutorial Penanganan HTML form di PHP. Baris 7 adalah untuk melakukan koneksi ke database.
Silahkan ganti "dbhost" dengan host database anda, "db_user" dengan user dari database dan
"db_password" dengan password database. Kemudian di baris 8 untuk menentukan database
yang akan digunakan. Baris 10 untuk membuat sql query untuk menyimpan data ke database.
Baris 11 untuk mengeksekusi sql query yang telah dibuat di baris 10. Baris selanjutnya adalah
melakukan pengecekan apakah data berhasil disimpan atau tidak.
Menampilkan Data
Setelah berhasil menyimpan data ke database, selanjutnya adalah menampilkan data. Untuk
menampilkan data cukup mudah. Gunakan script php di bawah untuk menampilkan data.
view plaincopy to clipboardprint TryIt?
1. <?php
2. $conn = mysql_connect("dbhost", "db_user", "db_password");
3. mysql_select_db("absensi_siswa");
4.
5. if($_GET['action'] == 'delete'){
6. mysql_query("delete from siswa where nis='".mysql_real_escape_string($_GET['id'])."'"
);
7. }
8.
9. $query = "select * from siswa order by nama";
10. $rowSet = mysql_query($query);
11. echo '<a href="form_siswa.php">Input Siswa Baru</a>';
12. echo '<table border="1">';
13. echo '<tr>';
14. echo '<td>NIS</td>';
15. echo '<td>Nama</td>';
16. echo '<td>Jenis Kelamin</td>';
17. echo '<td>Tanggal Lahir</td>';
18. echo '<td>Action</td>';
19. echo '</td>';
20. while($row = mysql_fetch_array($rowSet)){
21. echo '<tr>';
22. echo '<td>'.$row['nis'].'</td>';
23. echo '<td>'.$row['nama'].'</td>';
24. echo '<td>'.($row['jenis_kelamin'] == 'L' ? 'Laki Laki' : 'Perempuan').'</td>';
25. echo '<td>'.$row['tgl_lahir'].'</td>';
26. echo '<td>';
27. echo '<a href="data_siswa.php?id='.$row['nis'].'&action=delete">Delete</a>';
28. echo ' | <a href="form_edit_siswa.php?id='.$row['nis'].'">Edit</a>';
29. echo '</td>';
30. echo '</tr>';
31. }
32. echo '</table>';
33. ?>
Simpan dengan nama data_siswa.php. kode di atas menampilkan data siswa ke dalam sebuah
table yang disertai dengan link edit dan delete. Di baris 5-7 anda bisa melihat cara menghapus
data dari database. Pada saat link delete diklik browser akan diarahkan ke url seperti
data_siswa.php?id=1000&action=delete, pada saat itu kode pada baris 5-7 akan dieksekusi.
Edit Data
13
Yang terakhir adalah membuat script untuk mengedit data. Pertama yang dilakukan adalah
membuat file form_edit_siswa.php. Form edit siswa akan seperti di bawah.
view plaincopy to clipboardprint TryIt?
1. <?php
2. $conn = mysql_connect("dbhost", "db_user", "db_password");
3. mysql_select_db("absensi_siswa");
4. $query = "select * from siswa where nis='".mysql_real_escape_string($_GET['id'])."'";
5. $result = mysql_query($query);
6. $siswa = mysql_fetch_array($result);
7. ?>
8. <form name="formSiswa" id="formSiswa" method="post" action="edit_siswa.php">
9. <dl>
10. <dt>NIS</dt>
11. <dd><input name="nis" id="nis" type="text" value="<?=$siswa['nis'];?>" readonly="r
eadonly"/></dd>
12. <dt>Nama</dt>
13. <dd><input type="text" name="nama" id="nama" value="<?= $siswa['nama'];?>"/></
dd>
14. <dt>Jenis Kelamin</dt>
15. <dd>
16. <input type="radio" name="jenis_kelamin" id="laki" value="L" <? echo $siswa['jeni
s_kelamin'] == 'L' ? 'checked="checked"' : '';?>/> Laki Laki
17. <input type="radio" name="jenis_kelamin" id="prm" value="P" <? echo $siswa['jeni
s_kelamin'] == 'P' ? 'checked="checked"' : '';?> /> Perempuan
18. </dd>
19. <dt>Tanggal Lahir</dt>
20. <dd>
21. <?php $tgl_lahir = explode('-', $siswa['tgl_lahir']); ?>
22. <input type="text" name="tanggal" id="tanggal" size="5" value="<?= $tgl_lahir[2];?
>"/>
23. <input type="text" name="bulan" id="bulan" size="5" value="<?=$tgl_lahir[1];?>"/>
Baris 2-6 pada kode di atas berfungsi untuk mengambil data siswa yang sedang diedit. Pada baris
selanjutnya berfungsi untuk menampilkan data yang sedang diedit. Ini dilakukan dengan
menambahkan atribut value pada masing masing element form dengan data yang bersesuian.
14
Langkah kedua adalah membuat file edit_siswa.php untuk menyimpan perubahan data yang
dilakukan pada form_edit_siswa. Gunakan script di bawah dalam file edit_siswa.php.
view plaincopy to clipboardprint TryIt?
1. <?php
2. $nis = $_POST['nis'];
3. $nama = $_POST['nama'];
4. $jenis_kelamin = $_POST['jenis_kelamin'];
5. $tglLahir = $_POST['tahun'].'-'.$_POST['bulan'].'-'.$_POST['tanggal'];
6. //koneksi database
7. $conn = mysql_connect("dbhost","db_user","db_password");
8. mysql_select_db("absensi_siswa");
9. $query = "update siswa set nama='$nama', jenis_kelamin='$jenis_kelamin', tgl_lahir='$tg
lLahir' where nis='$nis'";
10. $hasil = mysql_query($query);
11. if($hasil){
12. echo "Data siswa telah disimpan";
13. }else{
14. echo "Error! gagal menyimpan data siswa:".mysql_error();
15. }
16. ?>
15
Menyimpan Gambar Ke Database
Tutorial Menyimpan Gambar Ke Database akan menjelaskan cara menyimpan gambar ke
database dan cara menampilkan gambar yang telah disimpan di database. Untuk bisa mengikuti
tutorial ini anda harus mengerti cara mengupload gambar dengan PHP. Ada dua cara menyimpan
gambar ke database:
Yang akan dibahas di tutorial ini adalah langkah pertama, Menyimpan gambar ke database
dengan tipe data blob.
Buatlah sebuah database dengan nama misalkan "gallery". Kemudian buat tabel di dalamnya
dengan nama "pictures" dengan struk seperti di bawah:
file_name varchar(100)
mime_type varchar(50)
file_data mediumblob
16
view plaincopy to clipboardprint TryIt?
Langkah selanjutnya adalah menyimpan gambar ke database, gunakalah script php di bawah
untuk menyimpan gambar ke database.
1. <?php
2. $connection = mysql_connect("dbhost", "dbuser", "dbpassword"); //sesuaikan dengan database
anda
3. mysql_select_db("gallery");
4.
5. if($_FILES['gambar']['size'] > 0 && $_FILES['gambar']['error'] == 0){
6. $fileName = $_FILES['gambar']['name'];
7. $mimeType = $_FILES['gambar']['type'];
8. $tmpFile = fopen($_FILES['gambar']['tmp_name'], 'rb'); // (fileName, mode)
9. $fileData = fread($tmpFile, filesize($_FILES['gambar']['tmp_name']));
10. $fileData = addslashes($fileData);
11.
12. $query = "insert into pictures set file_name='$fileName',mime_type='$mimeType', file_data='$f
ileData'";
13. mysql_query($query) or die("Upload Gambar Gagal: ".mysql_error());
14. echo "Gambar telah disimpan";
15. }
16. ?>
Di baris 8, file yang diupload dibuka menggunakan fungsi fopen dengan mode 'rb' yang artinya
membuka file dengan mode read dan mode binary. Di baris 9 membaca file yang telah dibuka
di baris 8 dengan fungsi fread. Selanjutnya di baris 12 dan 13 menyimpan gambar ke database.
Simpan script di atas dengan nama upload.php.
Langkah terakhir adalah menampilkan gambar yang telah disimpan di database. Untuk
menampilkan gambar dibutuhkan 2 file. File gambar.php untuk me-render gambar dan file
gallery.php untuk menampilkan gallery keseluruhan gambar yang tersimpan di database.
Gunakanlah script berikut:
17
File gambar.php
1. <?php
2. $connection = mysql_connect("dbhost", "dbuser", "dbpassword"); //sesuaikan dengan database
anda
3. mysql_select_db("gallery");
4. $idFile = $_GET['id'];
5.
6. $dataGambar = mysql_fetch_array(mysql_query("select * from pictures where id='$idFile'"));
7. $filename = $dataGambar['file_name'];
8. $mime_type = $dataGambar['mime_type'];
9. $filedata = $dataGambar['file_data'];
10. header("content-disposition: inline; filename=$filename");
11. header("content-type: $mime_type");
12. header("content-length: ".strlen($filedata));
13. echo ($filedata);
14. ?>
File gallery.php
1. <?php
2. $connection = mysql_connect("dbhost", "dbuser", "dbpassword"); //sesuikan dengan database
anda
3. mysql_select_db("gallery");
4.
5. $query = "select * from pictures";
6. $result = mysql_query($query);
7. $i=1;
8. echo '<table>';
9. echo '<tr>';
10. while($gambar = mysql_fetch_array($result)){
11. echo '<td><img src="gambar.php?id='.$gambar['id'].'" width="150" /></td>';
12. if($i % 4 == 0){
13. echo '</tr><tr>';
14. }
15. $i++;
16. }
17. echo '</tr>';
18. echo '</table>';
19. ?>
18
Menampilkan Gambar Dari Sebuah Folder
Jul 01, 2010 oleh MyPHPtutorials | 1585 kali dibaca sejak Dec 26, 2010 |
Level: Menengah
Tutorial Menampilkan Gambar Dari Sebuah Folder akan menjelaskan cara menampilkan
gambar gambar yang ada di dalam sebuah directory. Tutorial ini sekaligus menjelaskan cara
menampilkan isi dari sebuah folder atau directory. Tutorial ini merupakan lanjutan dari tutorial
Upload Gambar dengan PHP. Di tutorial ini akan diajarkan cara menampilkan gambar dari
sebuah directory seperti di bawah ini.
Untuk menampilkan isi dari sebuah folder seperti gambar di atas, gunakan script php seperti
berikut:
19
view plaincopy to clipboardprint TryIt?
1. <?php
2. $folder = "photos"; //folder tempat gambar disimpan
3. $handle = opendir($folder);
4. echo '<table cellspacing="2" cellpadding="5">';
5. echo '<tr>';
6. $i = 1;
7. while(false !== ($file = readdir($handle))){
8. if($file != '.' && $file != '..'){
9. echo '<td style="border:1px solid #000000;" align="center">
10. <img src="photos/'.$file.'" width="100" /><br />
11. '.$file.'
12. </td>';
13. if(($i % 4) == 0){
14. echo '</tr><tr>';
15. }
16. $i++;
17. }
18. }
19. echo '</tr>';
20. echo '</table>';
21. ?>
Untuk dapat menampilkan 4 gambar dalam satu baris, maka di baris 13 dilakukan pengecekan
apakah sudah ditampilkan 4 gambar, dengan melakukan operasi mod (%) terhadap variabel $i.
Bagaimana jika di dalam sebuah folder ada file selain gambar, misalnya pdf atau zip atau yang
lainya, maka diperlukan pengecekan ekstensi dari file bersangkutan. Sehingga kode di atas perlu
diubah menjadi:
20
view plaincopy to clipboardprint TryIt?
1. <?php
2. $folder = "photos";
3. $handle = opendir($folder);
4. echo '<table cellspacing="2" cellpadding="5">';
5. echo '<tr>';
6. $i = 1;
7. $fileGambar = array('png', 'jpg', 'jpeg', 'gif');
8. while(false !== ($file = readdir($handle))){
9. $fileAndExt = explode('.', $file);
10. if(in_array(end($fileAndExt), $fileGambar)){
11. echo '<td style="border:1px solid #000000;" align="center">
12. <img src="photos/'.$file.'" width="100" /><br />
13. '.$file.'
14. </td>';
15. if(($i % 4) == 0){
16. echo '</tr><tr>';
17. }
18. $i++;
19. }
20. }
21. echo '</tr>';
22. echo '</table>';
23. ?>
Dapat dilihat perubahan pada baris 7, ditambahkan variabel $fileGambar yang berisi array
ekstensi tipe file gambar. Kemudian di baris 9 nama file diparse untuk memperoleh ekstensi file
menggunakan function explode. Yang terakhir di baris 10 dilakukan pengecekan apakah ekstensi
file ada di dalam array $fileGambar.
Selamat Mencoba.
21
Tutorial PHP : Validasi Form dengan PHP
Validasi data yang diinput dari sebuah form sangat diperlukan dikebanyakan applikasi web.
Mengapa validasi form sangat diperlukan? Misalkan, anda memiliki sebuah contact form di
website anda dan meminta masukan email, apa gunanya jika email yang dimasukkan tidak valid.
Contoh lain, jika sebuah online shop yang meminta masukan shipping address, dan pengguna
memasukkan kode pos berupa text bukan digit angka maka pengelola website tidak bisa
mengirim barang yang dibeli oleh pengguna.
22
26. <dt>Alamat:</dt>
27. <dd>
28. <input name="alamat" id="alamat" type="text" />
29. </dd>
30. <dt>Kota:</dt>
31. <dd>
32. <input name="kota" id="kota" type="text" />
33. </dd>
34. <dt>Kode POS:</dt>
35. <dd>
36. <input name="kode_pos" id="kode_pos" type="text" />
37. </dd>
38. <dt></dt>
39. <dd>
40. <input name="submit" id="submit" type="Submit" value="Submit" />
41. </dd>
42. </dl>
43. </form>
Jika user tidak memasukkan salah satu data maka akan ditampilkan pesan "Data tidak komplit",
seperti di bawah:
23
Dengan script di atas, setiap kali user lupa memasukan salah satu data maka user harus
menginput ulang semua data. Agar data yang sebelumnya diinputkan kembali tampil di form
pada saat user melakukan kesalahan, ubah script di atas menjadi:
1. <?php
2. if($_POST){
3. $nama = $_POST['nama'];
4. $email = $_POST['email'];
5. $alamat = $_POST['alamat'];
6. $kota = $_POST['kota'];
7. $kodePos = $_POST['kode_pos'];
8. if(empty($nama) || empty($email) || empty($alamat) || empty($kota) || empty($kodePos))
{
9. echo '<strong>Data tidak komplit</strong>';
10. }else{
11. //prosess data
12. }
13. }
14. ?>
15. <form name="form-name" method="post" action="">
16. <dl>
17. <dt>Nama:</dt>
18. <dd>
19. <input name="nama" id="nama" type="text" value="<?php echo isset($_POST['nama'])
? $_POST['nama'] : '';?>" />
20. </dd>
21. <dt>Email:</dt>
22. <dd>
23. <input name="email" id="email" type="text" value="<?php echo isset($_POST['email'])
? $_POST['email'] : '';?>" />
24. </dd>
25. <dt>Alamat:</dt>
26. <dd>
27. <input name="alamat" id="alamat" type="text" value="<?php echo isset($_POST['alama
t']) ? $_POST['alamat'] : '';?>" />
28. </dd>
29. <dt>Kota:</dt>
30. <dd>
31. <input name="kota" id="kota" type="text" value="<?php echo isset($_POST['kota']) ? $
_POST['kota'] : '';?>" />
32. </dd>
33. <dt>Kode POS:</dt>
34. <dd>
35. <input name="kode_pos" id="kode_pos" type="text" value="<?php echo isset($_POST['
kode_pos']) ? $_POST['kode_pos'] : '';?>" />
36. </dd>
37. <dt></dt>
38. <dd>
39. <input name="submit" id="submit" type="Submit" value="Submit" />
40. </dd>
41. </dl>
42. </form>
24
Script diubah pada line 19, 23, 27, 31, 35 dengan menambahkan attribute value di masing
masing text field yang diisi dengan nilai form sebelumnya. Penampilan error message juga bisa
diubah menjadi lebih manis dan lebih user friendly seperti di bawah:
1. <?php
2. if($_POST){
3. $nama = $_POST['nama'];
4. $email = $_POST['email'];
5. $alamat = $_POST['alamat'];
6. $kota = $_POST['kota'];
7. $kodePos = $_POST['kode_pos'];
8. $error = array();
9. if(empty($nama)){
10. $error['nama'] = 'Nama tidak boleh kosong';
11. }
12. if(empty($email)){
13. $error['email'] = 'Email tidak boleh kosong';
14. }
15. if(empty($alamat)){
16. $error['alamat'] = 'Alamat tidak boleh kosong';
17. }
18. if(empty($kota)){
19. $error['kota'] = 'Kota tidak boleh kosong';
20. }
21. if(empty($kodePos)){
22. $error['kode_pos'] = 'Kode pos tidak boleh kosong';
23. }
24. if(empty($error)){
25. //prosess data
26. }
27. }
28. ?>
29. <form name="form-name" method="post" action="">
30. <dl>
31. <dt>Nama:</dt>
32. <dd>
25
33. <input name="nama" id="nama" type="text" value="<?php echo isset($_POST['nama'
]) ? $_POST['nama'] : '';?>" />
34. <div style="color:red"><?php echo isset($error['nama']) ? $error['nama'] : '';?></div>
35. </dd>
36. <dt>Email:</dt>
37. <dd>
38. <input name="email" id="email" type="text" value="<?php echo isset($_POST['email'
]) ? $_POST['email'] : '';?>" />
39. <div style="color:red"><?php echo isset($error['email']) ? $error['email'] : '';?></div>
40. </dd>
41. <dt>Alamat:</dt>
42. <dd>
43. <input name="alamat" id="alamat" type="text" value="<?php echo isset($_POST['ala
mat']) ? $_POST['alamat'] : '';?>" />
44. <div style="color:red"><?php echo isset($error['alamat']) ? $error['alamat'] : '';?></div
>
45. </dd>
46. <dt>Kota:</dt>
47. <dd>
48. <input name="kota" id="kota" type="text" value="<?php echo isset($_POST['kota']) ?
$_POST['kota'] : '';?>" />
49. <div style="color:red"><?php echo isset($error['kota']) ? $error['kota'] : '';?></div>
50. </dd>
51. <dt>Kode POS:</dt>
52. <dd>
53. <input name="kode_pos" id="kode_pos" type="text" value="<?php echo isset($_POS
T['kode_pos']) ? $_POST['kode_pos'] : '';?>" />
54. <div style="color:red"><?php echo isset($error['kode_pos']) ? $error['kode_pos'] : '';?>
</div>
55. </dd>
56. <dt></dt>
57. <dd>
58. <input name="submit" id="submit" type="Submit" value="Submit" />
59. </dd>
60. </dl>
61. </form>
JIka file untuk menyimpan/memproses data atau file untuk memvalidasi data berbeda dengan file
untuk menampilkan form, dengan kata lain menggunakan dua file berbeda maka bisa
menggunakan bantuan session. Gunakan script php seperti di bawah:
26
view plaincopy to clipboardprint TryIt?
27
view plaincopy to clipboardprint TryIt?
1. <?php
2. //file save-form.php
3. session_start();
4. if($_POST){
5. $nama = $_POST['nama'];
6. $email = $_POST['email'];
7. $alamat = $_POST['alamat'];
8. $kota = $_POST['kota'];
9. $kodePos = $_POST['kode_pos'];
10. $error = array();
11. if(empty($nama)){
12. $error['nama'] = 'Nama tidak boleh kosong';
13. }
14. if(empty($email)){
15. $error['email'] = 'Email tidak boleh kosong';
16. }
17. if(empty($alamat)){
18. $error['alamat'] = 'Alamat tidak boleh kosong';
19. }
20. if(empty($kota)){
21. $error['kota'] = 'Kota tidak boleh kosong';
22. }
23. if(empty($kodePos)){
24. $error['kode_pos'] = 'Kode pos tidak boleh kosong';
25. }
26. if(empty($error)){
27. //prosess data
28. }else{
29. $_SESSION['error'] = $error;
30. $_SESSION['post'] = $_POST;
31. header("location: contact-form.php");
32. }
33. }
34. ?>
Selain mengecek apakah data yang masukkan tidak kosong, anda juga bisa melakukan validasi
yang lebih detail.
1. <?php
2. $emailPattern = '/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/';
3. $email = 'tutorials@myphptutorials.com';
4. var_dump(preg_match($emailPattern, $email)); //hasil true
5. $email = 'buka email';
6. var_dump(preg_match($emailPattern, $email)); // hasil false
7. ?>
28
Validasi Kode POS
Kode pos terdiri dari 5 digit angka atau 5 digit plus 4 digit di belakang, misal: 80361 atau 60612-
0344. Untuk memvalidasi kode pos gunakan script di bawah:
1. <?php
2. $patenKodePos = '/^\d{5}([\-]\d{4})?$/';
3. $kodePos = '80461';
4. var_dump(preg_match($patenKodePos, $kodePos)); //hasil true
5. $kodePos = '60612-0344';
6. var_dump(preg_match($patenKodePos, $kodePos)); //hasil true
7. $kodePos = '123456';
8. var_dump(preg_match($patenKodePos, $kodePos)); //hasil false
9. $kodePos = 'abcdef';
10. var_dump(preg_match($patenKodePos, $kodePos)); //hasil false
11. ?>
Masih banyak lagi validasi yand bisa dilakukan. Untuk validasi form data yang lain bisa
ditanyakan di http://ask.myphptutorials.com atau melalui comment form di bawah.
29
Validasi Form dengan Javascript
May 25, 2010 oleh MyPHPtutorials | 1519 kali dibaca sejak Dec 26, 2010 |
Level: Pemula
Ada dua tipe validasi form, validasi client side dan validasi server side. Validasi server side telah
dibahas di tutorial Validasi Form Dengan PHP. Validasi client side menggunakan javascript akan
dijelaskan di tutorial ini. Di tutorial sebelumnya "Validasi Form dengan PHP" sudah disebutkan
alasan validasi client side tidak dianjurkan. Namun validasi client side membuat website lebih
user friendly. User dapat langsung mengetahui jika ada kesalahan pada input data, tanpa harus
menunggu load halaman php untuk validasi form. Artinya website tidak perlu menload halaman
yang sama berkali kali saat tejadi kesalahan input data. Bisa juga dikatakan proses input data
akan menjadi lebih cepat.
Perlu diingat jika menggunakan validasi client side, data masih perlu divalidasi
menggunakan validasi server side untuk memastikan kebenaran data.
30
30. document.getElementById('email').focus();
31. return false;
32. }
33. if(document.getElementById('phone').value == ''){
34. alert('Phone tidak boleh kosong');
35. document.getElementById('phone').focus();
36. return false;
37. }
38. document.getElementById('form1').submit();
39. }
40. </script>
Dari baris 1 sampai baris 14 adalah untuk membuat html form. Kemudian di baris16
ditambahkan tag html "<script>". Pada line selanjutnya membuat function saveForm() untuk
melakukan validasi. Function saveForm() akan dipanggil pada saat user mengklik tombol save.
Sehingga di baris 12 pada button save ditambakan attribute onlick="saveForm(); return
false;". Di baris 18 anda akan melihat "if(document.getElementById('firstName').value == '')",
baris ini berarti mengambil nilai yang diinputkan pada element dengan id="firstName" dan
mengeceknya apakah kosong atau tidak. Jika kosong maka akan ditampilkan alert message (baris
19). Di baris 20 artinya memindahkan focus kursor ke element dengan id="firstName".
Javascript juga bisa digunakan untuk memvalidasi hal hal yang lain seperti berikut.
1. function validasiEmail(email){
2. var validEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-
Z]{2,4}$/; //regex untuk cek email
3. if(validEmail.test(email)){
4. return true;
5. }
6. return false;
7. }
8. alert(validasiEmail('email@example.com')); //hasil true
9. alert(validasiEmail('bukanemail')); //hasil false
31
Validasi Kode Pos dengan Javascript
view plaincopy to clipboardprint TryIt?
1. function validasiPostalKode(postalCode){
2. var validPostalCode = /^\d{5}([\-]\d{4})?$/; //regex untuk cek kode pos
3. if(validPostalCode.test(postalCode)){
4. return true;
5. }
6. return false;
7. }
8. alert(validasiPostalKode('80361')); //hasil true
9. alert(validasiPostalKode('80361-1234')); //hasil true
10. alert(validasiPostalKode('salah')); //hasil false
11. alert(validasiPostalKode('1234')); //hasil false
32
Membuat Contact Form
Tutorial php Membuat Contact Form menjelaskan cara membuat contact form. Mulai dari
membuat form html, meyimpan contact ke database, mengirim contact ke pengelola lewat email
dan juga membahas masalah security dari contact form beserta cara meningkatkan security
contact form.
Name:
Email:
Message:
Code:
33
Mengirim Contact ke Pengelola Lewat Email
Di tutorial Mengirim Email Dengan PHP telah dijelaskan cara untuk mengirim email dengan
PHP. Di tutorial ini tinggal mengimplementasikan tutorial tersebut. Untuk mengirim contact
lewat email kepada pengelola website bisa digunakan script php di bawah:
1. <?php
2. // file save-comment.php
3. $name = $_POST['name'];
4. $email = $_POST['email'];
5. $text = $_POST['message'];
6.
7. $email_pengelola = 'pengelola@example.com'; // sesuai dengan email pengelola
8.
9. $message = "Name: ". $name ."\n";
10. $message .= "Email: ". $email ."\n";
11. $message .= "Message: " .$comment;
12. $message = wordwrap($text, 70);
13. //mengirim email
14. mail($email_pengelola, "New message from ".$name, $message);
15. ?>
Contact juga bisa dikirim menggunakan HTML email dengan script php di bawah:
1. <?php
2. // file save-comment.php
3. $name = $_POST['name'];
4. $email = $_POST['email'];
5. $text = $_POST['message'];
6.
7. $email_pengelola = 'pengelola@example.com'; // sesuai dengan email pengelola
8.
9. $message = "<html>
10. <head>
11. <title>New Message</title>
12. </head>
13. <body>";
14. $message .= "<p>New message from $name</p>";
15. $message .= "<dl>
16. <dt>Email:</dt>
17. <dd>$email</dd>
18. <dt>Message:</dt>
19. <dd>$text</dd>
20. </dl>";
21. $message .= "</body></html>";
22. //setting header
23. $headers = 'MIME-Version: 1.0' . "\r\n";
24. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
25. $headers .= 'From: Your Website Name <noreply@example.com>' . "\r\n";
26. //send email
27. mail($email_pengelola, "New message from ".$name, $message, $headers);
28. ?>
34
Meningkatkan Security Contact Form
Jika anda mengimplementasikan contact form di website anda, yang harus diperhatikan adalah
masalah security. Seseorang bisa saja memasukkan kode HTML ke contact form, memasukkan
kode javascript, bahkan bisa sampai untuk mengambil cookies. Selain itu juga terkait dengan
spam yang bisa menggunakan contact form dan mengirimi pengelola ribuan email.
Untuk menghindari spam, anda bisa mengimplementasikan tutorial Membuat Captcha dengan
PHP pada contact form. Sedangkan untuk menghindari pengguna memasukkan kode HTML dan
javascript bisa menggunakan dua cara. Yang pertama adalah menggunakan fungsi strip_tags()
yang akan mengilangkan semua tag html, contoh:
1. <?php
2. $input = "<strong>Bold Text</strong><p>Paragraph text</p>";
3. $output = strip_tags($input);
4. echo $output;
5. //hasilnya adalah "Bold TextParagraph text"
6. ?>
Cara kedua adalah menggunakan fungsi htmlentities() yang akan meng-convert kode html
menjadi html entity, contoh:
1. <?php
2. $input = "<strong>Bold Text</strong><p>Paragraph text</p>";
3. $output = htmlentities($input);
4. echo $output;
5. //hasilnya adalah "<strong>Bold Text</strong><p>Paragraph text<p
>"
6. ?>
35
Tutorial PHP : Mengirim Email Dengan PHP
Mar 28, 2010 oleh MyPHPtutorials | 1247 kali dibaca sejak Dec 26, 2010 |
Level: Menengah
Di tutorial Mengirim Email Dengan PHP ini dijelaskan cara mengirim email menggunakan
function mail() PHP. Mulai dari penjelasan parameter inputan fungsi mail sampai contoh contoh
script php untuk mengirim email.
1. <?php
2. $message = "Baris pertama\nBaris kedua\nBaris ketiga";
3. $message .= "\nEmail dikirim menggunakan PHP";
4. //jika baris baris pesan melebihi 70 karakter, maka harus digunakan function wordwrap();
5. $message = wordwrap($message, 70);
6. mail("andi@example.com", "subjek email", $message);
7. ?>
36
Mengirim Email Dengan Header Ekstra
view plaincopy to clipboardprint TryIt?
1. <?php
2. $to = "john@example.com";
3. $subject = "Example Subject";
4. $message = "This mail sent by php ". phpversion();
5. $header = "From: myphptutorial@example.com\r\n";
6. $header .= "Reply-To: myphptutorial@example.com\r\n";
7. $header .= "X-Mailer: PHP";
8. mail($to, $subject, $message, $header);
9. ?>
1. <?php
2. mail('email@example.com', 'Subjek Email', 'Pesan', null, '-fmyphptutorial@example.com');
3. ?>
37
Mengirim HTML Email
view plaincopy to clipboardprint TryIt?
1. <?php
2. $to = 'html@example.com';
3. $subject = 'New Tutorial Post on MyPHPTutorials.com';
4. $message = '
5. <html>
6. <head>
7. <title>New Tutorial</title>
8. </head>
9. <body>
10. <p>New Tutorial has been post in MyPHPtutorials.com</pa>
11. <ul>
12. <li>
13. <a href="http://myphptutorials.com/tutorials/22">
14. Mengirim Email dengan PHP
15. </a>
16. </li>
17. <li>
18. <a href="http://myphptutorials.com/tutorials/21">
19. Membuat Captcha dengan PHP
20. </a>
21. </li>
22. </ul>
23. </body>
24. </html>';
25. //untuk mengirim html email, header Content-type harus diset
26. $headers = 'MIME-Version: 1.0' . "\r\n";
27. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
28.
29. // Additional header
30. $headers .= 'From: My PHP Tutorials <noreply@myphptutorials.com>' . "\r\n";
31. $headers .= 'Cc: john@example.com' . "\r\n";
32. $headers .= 'Bcc: andi@example.com' . "\r\n";
33.
34. mail($to, $subject, $message, $headers);
35. ?>
Untuk mengirim HTML email juga bisa menggunakan class Rmail yang disediakan oleh
phpguru.org. Dengan RMail anda bisa mengirim email dalam bentuk plain text, html dan
menambahkan lampiran file.
38
Upload Gambar Dengan PHP
Feb 21, 2010 oleh MyPHPtutorials | 3880 kali dibaca sejak Dec 25, 2010 |
Level: Menengah
Di tutorial PHP " Upload Gambar Dengan PHP" ini akan dipaparkan cara mengupload file
menggunakan PHP. Tutorial ini mencakup cara penggunaan element input file, mengatur atribut
html form agar file bisa ter-upload, membuat script php untuk menangani file yang diupload.
Picture :
view plaincopy to clipboardprint TryIt?
1. <!--file picture.html-->
2. <form name="form_upload" method="post" action="upload.php" enctype="multipart/for
m-data">
3. Picture: <input type="file" name="picture" />
4. <input type="submit" name="upload" value="Upload" />
5. </form>
Simpan dengan nama picture.html dan letakkan di directory yang sama (sejajar) dengan folder
/photo.
39
Kemudian buat file baru dan ketik script php di bawah:
1. <?php
2. //file upload.php
3. $fileName = $_FILES['picture']['name'];
4. $fileSize = $_FILES['picture']['size'];
5. $fileError = $_FILES['picture']['error'];
6. if($fileSize > 0 || $fileError == 0){
7. $move = move_uploaded_file($_FILES['picture']['tmp_name'], 'photo/'.$fileName);
8. if($move){
9. echo "File sudah diupload";
10. }else{
11. echo "Gagal mengupload file";
12. }
13. }else{
14. echo "Gagal mengupload file: ".$fileError;
15. }
16. ?>
simpan dengan nama upload.php directory yang sama (sejajar) dengan folder /photo. Anda akan
memiliki struktur folder dan file seperti berikut:
Anda dapat mengetahui informasi file yang diupload dari global variable $_FILES yang berupa
associated array. Jika anda memiliki sebuah input file dengan atribut name="picture" (script
picture.html baris ke 3) maka anda dapat mengakses informasi file yang diupload di variabel
$_FILES['picture']. $_FILES['picture'] adalah associated array dengan struktur sebagai berikut:
$_FILES['picture'] ['name']
berisi nama file yang sedang diupload
$_FILES['picture']['type']
mime type dari file yang sedang diupload, jika browser memberikan informasi ini.
Contoh: image/gif, image/jpg
$_FILES['picture']['size']
ukuran/size file yang diupload dalam byte
$_FILES['picture']['tmp_name']
nama file temporer dari file yang sedang diupload yang disimpan di temporari folder
server
$_FILES['picture']['error']
error code yang berhubungan dengan file yang sedang diupload
Catatan:
HTML form anda harus memiliki atribut enctype="multipart/form-data" agar file mau ter-
upload.
40
Membuat Searching (Skrip Pencarian Data)
Searching atau pencarian data merupakan hal penting dalam sebuah aplikasi, apalagi aplikasi
yang menangani data yang banyak. Ada dua tipe searching yaitu: Quick Search dan Advanced
Search. Quick search adalah pencarian sederhana seperti google search, pengguna hanya
memasukkan sebuah kata kunci dari apa yang dicarinya. Sedangkan Advanced search adalah
pencarian lanjut yang lebih kompleks dengan beberapa kriteria pencarian, yang memungkinkan
hasil pencarian yang lebih akurat.
Sebelum membuat script seaching ada baiknya untuk mempelajari dasar untuk menampilkan
data. Pada tutorial ini akan digunakan sebuah tabel siswa seperti berikut:
Fieldname Tipe Data Keterangan
id int(11) primary key
nama varchar(50)
ayah varchar(50)
ibu varchar(50)
alamat text
hasilnya adalah semua data yang berisikan kata cari seperti "mencari", "pencarian".
41
20. <td>Ibu</td>
21. <td>Alamat</td>
22. </tr>
23. <?php
24. while($siswa = mysql_fetch_array($result)){?>
25. <tr>
26. <td><?php echo $siswa['nama'];?></td>
27. <td><?php echo $siswa['ayah'];?></td>
28. <td><?php echo $siswa['ibu'];?></td>
29. <td><?php echo $siswa['alamat'];?></td>
30. </tr>
31. <?php }?>
32. </table>
33. <?php
34. }else{
35. echo 'Data not found!';
36. }
37. }
38. ?>
42
29. </tr>
30. <?php
31. while($siswa = mysql_fetch_array($result)){?>
32. <tr>
33. <td><?php echo $siswa['nama'];?></td>
34. <td><?php echo $siswa['ayah'];?></td>
35. <td><?php echo $siswa['ibu'];?></td>
36. <td><?php echo $siswa['alamat'];?></td>
37. </tr>
38. <?php }?>
39. </table>
40. <?php
41. }else{
42. echo 'Data not found!';
43. }
44. }
45. ?>
Perbedaan advanced search dengan quick search adalah: Quick search menggunakan operator
"or" pada sql query, sedangkan Advanced search menggunakan operator "and" dengan beberapa
kriteria pencarian, seperti nama, ayah, ibu, alamat.
Rangkuman
Ada dua tipe searching/pencarian data: Quick search dan Advanced Search. Quick search
adalah pencarian sederhana hanya menggunakan satu kriteria pencaria. Advanced Search,
pencarian lanjut yang lebih kompleks dengan beberapa kriteria pencarian. Advanced search
memberikan hasil yang lebih akurat dibanding quick search.
43
Membuat Galeri Foto
Sebelum membuat galeri foto, anda harus bisa mengupload file dengan php. Secara singkat
galeri foto yang akan dibuat adalah sebagai berikut. Pertama pengguna memilih gambar yang
akan diupload dan memasukkan deskripsi gambar. Kemudian dengan php, gambar akan diupload
ke sebuah folder. Nama file dan deskripsi gambar akan disimpan ke database.
Buatlah sebuah database dengan nama "galeri", dan buat sebuah tabel "foto" dengan struktur
seperti:
Nama Field Tipe Data Keterangan
id int(11) Primary Key, auto increment
nama_file varchar(255)
deskripsi varchar(255)
Pertama buatlah sebuah folder dengan nama "galeri" di document root web server. Biasanya
folder "htdocs" atau "public_html". Di dalam folder galeri buat folder "upload" dan tiga file
kosong seperti gambar.
Buka file form.html dan buatlah html form dengan kode berikut.
view plaincopy to clipboardprint TryIt?
1. <html>
2. <head>
3. <title>New Picture</title>
4. </head>
5. <body>
6. <form name="form1" action="save-
gallery.php" method="post" enctype="multipart/form-data">
7. File: <input type="file" name="file" id="file"/><br/>
44
8. Deskripsi: <textarea name="deskripsi" id="deskripsi"></textarea><br/>
9. <input type="submit" name="save" value="Upload"/>
10. </form>
11. </body>
12. </html>
Langkah selanjutnya adalah mengupload gambar ke folder "upload" dan menyimpan deskripsi
dan nama file ke tabel "foto". Buka file save-gallery.php dan gunakan kode php di bawah untuk
menyimpan gambar.
view plaincopy to clipboardprint TryIt?
1. <?php
2. //koneksi ke database
3. $conn = mysql_connect('localhost', 'userdb', 'password');
4. mysql_select_db('galeri');
5. //upload file
6. if(!empty($_FILES) && $_FILES['file']['size'] > 0 && $_FILES['file']['error'] == 0){
7. $fileName = $_FILES['file']['name'];
8. $move = move_uploaded_file($_FILES['file']['tmp_name'], 'upload/'.$fileName);
9. if($move){
10. //simpan deskripsi dan nama file ke database
11. $sql = "insert into foto (nama_file, deskripsi) values
12. ('$fileName', '".$_POST['deskripsi']."')";
13. mysql_query($sql);
14. header("Location: gallery.php");
15. exit;
16. }
17. }
Pertama tama di baris ke 3-4 membuka koneksi ke database. Di baris ke-6 dilakukan pengecekan
apakah file sudah terupload dan ukurannya lebih besar dari nol dan tidak terjadi error. Baris ke-8
memindahkan file yang telah terupload, dari temporary folder ke folder "upload" yang telah
dibuat sebelumnya. Baris selanjutnya mengecek jika proses pemindahan file berhasil. Jika
berhasil deskripsi dan nama file disimpan ke tabel 'foto'.
Menampilkan Gambar
Selanjunya, menampilkan gambar yang telah disimpan. Buka file gallery.php dan isi dengan
kode php di bawah.
view plaincopy to clipboardprint TryIt?
1. <html>
2. <head>
3. <title>Gallery</title>
4. </head>
5. <body>
6. <?php
45
7. //koneksi ke database
8. $conn = mysql_connect('localhost', 'userdb', 'password');
9. mysql_select_db('galeri');
10. //membaca data dari database
11. $result = mysql_query("select * from foto");
12. //menampilkan foto
13. ?>
14. <table>
15. <tr>
16. <?php
17. $i = 1;
18. while($row = mysql_fetch_array($result)){
19. ?>
20. <td>
21. <a href="upload/<?php echo $row['nama_file'];?>">
22. <img src="upload/<?php echo $row['nama_file'];?>" alt="" width="200" borde
r="0"/>
23. </a>
24. <br/><?php echo $row['deskripsi'];?>
25. </td>
26. <?php
27. if($i % 3 == 0){
28. echo '</tr><tr>';
29. }
30. $i++;
31. }
32. ?>
33. </tr>
34. </table>
35. </body>
36. </html>
Yang perlu di perhatikan adalah di baris ke-22. Untuk menampilkan gambar digunakan tag
<img/>. Nama nama gambar yang ditampilkan diambil dari database - echo $row['nama_file'].
Karena gambar diupload ke folder "upload" maka attribute src diisi dengan nilai seperti ini
"upload/<?php echo $row['nama_file'];?>".
Membuat Zoom
Sebuah galeri foto perlu sebuah fasilitas zoom. Untuk itu diperlukan jQuery dan Fancybox.
Silahkan download Fancybox di websitenya (versi 1.3.4 saat tutorial ini dibuat). Setelah selesai,
ekstrak file zip yang didownload dari website fancybox. Kemudian copy file jquery-1.4.3.min.js
dan folder fancybox dari hasil ekstrakan dan paste di folder 'galeri' yang telah dibuat
sebelumnya.
Selanjutnya buka kembali file gallery.php dan ubah menjadi seperti berikut.
view plaincopy to clipboardprint TryIt?
1. <html>
2. <head>
3. <title>Gallery</title>
4. <!--menambahkan jquery-->
5. <script type="text/javascript" src="jquery-1.4.3.min.js"></script>
6. <!--menambahkan fancybox-->
46
7. <script type="text/javascript" src="fancybox/jquery.fancybox-
1.3.4.pack.js"></script>
8. <!--menambahkan css fancybox-->
9. <link href="fancybox/jquery.fancybox-1.3.4.css" type="text/css" rel="stylesheet"/>
10. <script type="text/javascript">
11. $(document).ready(function(){
12. $(".fancy").fancybox();
13. });
14. </script>
15. </head>
16. <body>
17. <?php
18. //koneksi ke database
19. $conn = mysql_connect('localhost', 'userdb', 'password');
20. mysql_select_db('galeri');
21. //membaca data dari database
22. $result = mysql_query("select * from foto");
23. //menampilkan foto
24. ?>
25. <table>
26. <tr>
27. <?php
28. $i = 1;
29. while($row = mysql_fetch_array($result)){
30. ?>
31. <td>
32. <a href="upload/<?php echo $row['nama_file'];?>" class="fancy">
33. <img src="upload/<?php echo $row['nama_file'];?>" alt="" width="200" borde
r="0"/>
34. </a>
35. <br/><?php echo $row['deskripsi'];?>
36. </td>
37. <?php
38. if($i % 3 == 0){
39. echo '</tr><tr>';
40. }
41. $i++;
42. }
43. ?>
44. </tr>
45. </table>
46. </body>
47. </html>
Sekarang buka browser dan buka halaman http://localhost/galeri/form.html. Upload beberapa file
dan lihat hasilnya.
Selamat Mencoba.
47