47
qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwertyuiopas dfghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghj klzxcvbnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwertyuiop asdfghjklzxcvbnmqwertyuiopasdfghjkl zxcvbnmqwertyuiopasdfghjklzxcvbnm

Full Tutorial PHP

Embed Size (px)

Citation preview

Page 1: Full Tutorial PHP

qwertyuiopasdfghjklzxcvbnmqwertyui

opasdfghjklzxcvbnmqwertyuiopasdfgh

jklzxcvbnmqwertyuiopasdfghjklzxcvb

nmqwertyuiopasdfghjklzxcvbnmqwer

tyuiopasdfghjklzxcvbnmqwertyuiopas

dfghjklzxcvbnmqwertyuiopasdfghjklzx

cvbnmqwertyuiopasdfghjklzxcvbnmq

wertyuiopasdfghjklzxcvbnmqwertyuio

pasdfghjklzxcvbnmqwertyuiopasdfghj

klzxcvbnmqwertyuiopasdfghjklzxcvbn

mqwertyuiopasdfghjklzxcvbnmqwerty

uiopasdfghjklzxcvbnmqwertyuiopasdf

ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmrty

uiopasdfghjklzxcvbnmqwertyuiopasdf

ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmqw

ertyuiopasdfghjklzxcvbnmqwertyuiop

asdfghjklzxcvbnmqwertyuiopasdfghjkl

zxcvbnmqwertyuiopasdfghjklzxcvbnm

Page 2: Full Tutorial PHP

2

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).

HTML Form: Metode Pengiriman Data

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?

1. <form method="get" action="http://google.com">

2. <input type="text" name="q"/>

3. </form>

4.

5. <form method="post" action="http://sandbox.paypal.com/cgi-bin/webscr">

6. <input type="hidden" name="amount" value="10"/>

7. <input type="submit" value="Pay Now"/>

8. </form>

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.

Cara Memproses Form di PHP

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:

Page 3: Full Tutorial PHP

3

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

Page 4: Full Tutorial PHP

4

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).

Page 5: Full Tutorial PHP

5

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.

Page 6: Full Tutorial PHP

6

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:

Cara membuat function atau deklarasi function; Menggunakan function disemua halaman web; Argumen function, Membuat function dengan argumen tak terhingga; Anonymous function.

Membuat Function

Untuk membuat function digunakan kata tercadang function, seperti:

view plaincopy to clipboardprint TryIt?

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>

Page 7: Full Tutorial PHP

7

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

view plaincopy to clipboardprint TryIt?

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>

Page 8: Full Tutorial PHP

8

Argumen Function

Informasi bisa diberikan kepada function melalui argumen argumen atau paremeter paremeter yang

dipisahkan tanda koma ",".

Format:

view plaincopy to clipboardprint TryIt?

1. function namaFunction($argumen1, $argument2){ 2. 3. }

Contoh:

view plaincopy to clipboardprint TryIt?

1. function tambah($a, $b){ 2. $hasil = $a+$b; 3. echo $hasil; 4. }

Argumen dengan Nilai Default

Argumen function bisa memiliki nilai default seperti halnya di C++, contoh:

view plaincopy to clipboardprint TryIt?

1. function jenisKelamin($kelamin = "L"){ 2. if($kelamin == "L"){ 3. echo "Laki laki"; 4. }elseif($kelamin == 'P'){ 5. echo "Perempuan"; 6. }else{ 7. echo "Unknown"; 8. } 9. } 10. //cara penggunaan 11. jenisKelamin(); //hasil akan 'Laki Laki'; 12. jenisKelamin("L");// hasil juga 'Laki Laki'; 13. jenisKelamin("P");// hasil 'Perempuan';

Page 9: Full Tutorial PHP

9

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:

view plaincopy to clipboardprint TryIt?

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

Me-return Hasil Function

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:

view plaincopy to clipboardprint TryIt?

1. function tambah($a, $b){ 2. $hasil = $a+b; 3. return $hasil; 4. } 5. function cekAngka($input){ 6. if(preg_match('/^[9-0]+$/', $input)){ 7. return true; // eksekusi akan berhenti disini 8. } 9. return false; 10. }

Page 10: Full Tutorial PHP

10

Anonymous Function

Anonymous function atau closures adalah function tanpa nama function. Kegunaan utamanya sebagai

Callback parameter. Contoh:

view plaincopy to clipboardprint TryIt?

1. echo reg_replace_callback('/google/i', function($match){ 2. return '<a href="http://google.com">'.$match[0].'</a>'; 3. }, 'go to google'); 4. //hasil go to <a href="http://google.com">google</a>

Page 11: Full Tutorial PHP

11

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.

Membuat Database dan Tabel

Pertama yang dilakukan adalah mempersiapkan database dan table. Sebagai contoh anda akan

membuat sebuah database dengan nama "absensi_siswa" bisa gunakan sql

view plaincopy to clipboardprint TryIt?

1. create database absensi_siswa;

Selanjutnya membuat table "siswa", dengan struktur seperti

Nama Field Tipe Data Keterangan

nis varchar(20) Nomor Induk siswa,

Primary Key

nama varchar(50)

jenis_kelamin char(1)

tgl_lahir date

atau gunakan sql berikut:

view plaincopy to clipboardprint TryIt?

1. CREATE TABLE `absensi_siswa`.`siswa` (

2. `nis` varchar(20) NOT NULL,

3. `nama` varchar(50) NOT NULL,

4. `jenis_kelamin` char(1) NOT NULL,

5. `tgl_lahir` date NOT NULL,

6. PRIMARY KEY (`nis`)

7. )

8. ENGINE = MyISAM;

Membuat Form Input Siswa

Selanjutnya adalah membuat form input siswa tempat user memasukkan data siswa. bisa

gunakan html di bawah

view plaincopy to clipboardprint TryIt?

1. <!DOCTYPE html PUBLIC "-

//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

1-transitional.dtd">

2. <html xmlns="http://www.w3.org/1999/xhtml">

3. <head><title>Form Input Siswa</title></head>

4. <body>

5. <form name="formSiswa" id="formSiswa" method="post" action="save_siswa.php">

6. <dl>

7. <dt>NIS</dt>

8. <dd><input name="nis" id="nis" type="text"/></dd>

9. <dt>Nama</dt>

Page 12: Full Tutorial PHP

12

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>

kemudian simpan file dengan nama "form_siswa.php".

Menyimpan Data Siswa

Setelah selesai membuat form input siswa, yang perlu dibuat selanjutnya adalah kode php untuk

menyimpan data siswa. Buatlah sebuah file baru dengan nama "save_siswa.php" dan simpan di

tempat yang sama dengan file "form_siswa.php" yang telah dibuat sebelumnya. Mungkin ada

pertanyaan kenapa nama filenya "save_siswa.php" bukan "simpan_siswa.php". Karena

sebelumnya pada saat membuat form input siswa (baris 5 file form_siswa.php), attribute action

pada tag <form/> diisi dengan action="save_siswa.php". Ini artinya memberitahukan kepada

browser, bahwa yang akan menangani data dari form bersangkutan adalah file "save_siswa.php".

file save_siswa.php akan seperti:

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.

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

Page 13: Full Tutorial PHP

13

<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

Page 14: Full Tutorial PHP

14

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];?>"/>

24. <input type="text" name="tahun" id="tahun" size="5" value="<?= $tgl_lahir[0];?>"/

>

25. </dd>

26. <dt></dt>

27. <dd><input type="submit" name="save" value="save" /></dd>

28. </dl>

29. </form>

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.

Page 15: Full Tutorial PHP

15

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. ?>

Save Delete Edit Data Selesai

Pada tahap ini anda telah selesai membuat script php sederhana untuk menyimpan, menghapus,

meng-edit data. Tentunya masih perlu disempurnakan, seperti menambahkan Validasi Form. Jika

ada pertanyaan silahkan ditanyakan di AskMyPHPtutorials.

Page 16: Full Tutorial PHP

16

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:

1. Menyimpan gambar ke database dengan tipe data blob, 2. Menyimpan gambar ke dalam sebuah folder dan mencatat lokasi dan informasi gambar ke

database.

Yang akan dibahas di tutorial ini adalah langkah pertama, Menyimpan gambar ke database

dengan tipe data blob.

Menyimpan Gambar Ke Database Dengan Tipe Data Blob

Ada beberapa hal yang perlu dilakukan sebelum bisa menyimpan gambar ke dalam sebuah field

table database yang bertipe blob.

Mempersiapkan Database dan Table

Buatlah sebuah database dengan nama misalkan "gallery". Kemudian buat tabel di dalamnya

dengan nama "pictures" dengan struk seperti di bawah:

Nama Field Tipe Data Keterangan

id integer primary key, auto increment

file_name varchar(100)

mime_type

varchar(50)

file_data mediumblob

Atau gunakan SQL Query berikut:

view plaincopy to clipboardprint TryIt?

1. create database gallery; 2. use gallery; 3. CREATE TABLE `pictures` ( 4. `id` int NOT NULL AUTO_INCREMENT, 5. `file_name` varchar(100) NOT NULL, 6. `mime_type` varchar(50) NOT NULL, 7. `file_data` mediumblob DEFAULT NULL, 8. PRIMARY KEY (`id`) 9. );

Membuat Upload Form

Buat html form untuk mengupload gambar, gunakan script di bawah:

Page 17: Full Tutorial PHP

17

view plaincopy to clipboardprint TryIt?

1. <!-- file form.html--> 2. <form name="form1" id="form1" method="post" action="upload.php" enctype="multipart/for

m-data"> 3. Gambar: <input type="file" name="gambar" id="gambar" /> 4. <input type="submit" name="Submit" id="Submit" value="Upload" /> 5. </form>

Simpan dengan nama file form.html.

Menyimpan Gambar Ke Database

Langkah selanjutnya adalah menyimpan gambar ke database, gunakalah script php di bawah

untuk menyimpan gambar ke database.

view plaincopy to clipboardprint TryIt?

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.

Menampilkan Gambar Dari Database

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:

Page 18: Full Tutorial PHP

18

File gambar.php

view plaincopy to clipboardprint TryIt?

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

view plaincopy to clipboardprint TryIt?

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. ?>

Page 19: Full Tutorial PHP

19

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:

Page 20: Full Tutorial PHP

20

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. ?>

Di baris 2 ditentukan di folder mana gambar disimpan. Kemudian di baris 3 menggunakan

function opendir untuk membuka sebuah folder atau directory. Di baris 7 dilakukan perulangan

untuk membaca isi dari sebuah folder satu persatu menggunakan function readdir. Function

readdir akan me-return nama dari file yang ada di dalam folder atau me-return false jika semua

file sudah terbaca atau tidak ada file sama sekali di dalam folder. Di baris 8 dilakukan

pengecekan apakah nama file tidak sama dengan '.' dan '..'.

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:

Page 21: Full Tutorial PHP

21

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.

Page 22: Full Tutorial PHP

22

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.

Tipe Validasi Form

Ada dua tipe validasi form, validasi client side dan server side. Validasi client side bisa

dilakukan menggunakan javascript. Validasi client side sangatlah tidak dianjurkan. Seseorang

pengguna bisa saja mematikan javascript dan validasi client side tidak akan berjalan. Karena

javascript tidak akan dieksekusi jika javascript dimatikan. Disinilah validasi server side

diperlukan. Validasi server side akan tetap berkerja, tidak peduli apapun. Validasi server side

bisa dilakukan menggunakan PHP, Perl, ASP, JSP dan bahasa scripting lainnya.

Validasi Form dengan PHP

Di tutorial php ini akan dijelaskan cara melakukan validasi form dengan PHP. Ada dua hal

yang terkait dengan validasi form. Yang pertama adalah melakukan validasi data yang

diinputkan ke form, dan yang kedua adalah menampilkan error message jika data yang diinput

tidak valid. Di bawah adalah contoh validasi yang simpel, yang hanya mengecek apakah semua

data diinput dan tidak kosong.

view plaincopy to clipboardprint TryIt?

1. <!-- file simple-validasi.php --->

2. <?php

3. if($_POST){

4. $nama = $_POST['nama'];

5. $email = $_POST['email'];

6. $alamat = $_POST['alamat'];

7. $kota = $_POST['kota'];

8. $kodePos = $_POST['kode_pos'];

9. if(empty($nama) || empty($email) || empty($alamat) || empty($kota) || empty($kodePos))

{

10. echo '<strong>Data tidak komplit</strong>';

11. }else{

12. //prosess data

13. }

14. }

15. ?>

16. <form name="form-name" method="post" action="">

17. <dl>

18. <dt>Nama:</dt>

19. <dd>

20. <input name="nama" id="nama" type="text" />

21. </dd>

22. <dt>Email:</dt>

23. <dd>

24. <input name="email" id="email" type="text" />

25. </dd>

Page 23: Full Tutorial PHP

23

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:

Page 24: Full Tutorial PHP

24

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:

view plaincopy to clipboardprint TryIt?

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>

Page 25: Full Tutorial PHP

25

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:

Ubahlah script di atas menjadi:

view plaincopy to clipboardprint TryIt?

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>

Page 26: Full Tutorial PHP

26

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:

Page 27: Full Tutorial PHP

27

view plaincopy to clipboardprint TryIt?

1. <!-- file contact-form.php-->

2. <?php

3. session_start();

4. if(isset($_SESSION['error'])){

5. $error = $_SESSION['error'];

6. $_POST = $_SESSION['post'];

7. unset($_SESSION['error']);

8. unset($_SESSION['post']);

9. }

10. ?>

11. <form name="form-name" method="post" action="save-form.php">

12. <dl>

13. <dt>Nama:</dt>

14. <dd>

15. <input name="nama" id="nama" type="text" value="<?php echo isset($_POST['nama'

]) ? $_POST['nama'] : '';?>" />

16. <div style="color:red"><?php echo isset($error['nama']) ? $error['nama'] : '';?></div>

17. </dd>

18. <dt>Email:</dt>

19. <dd>

20. <input name="email" id="email" type="text" value="<?php echo isset($_POST['email'

]) ? $_POST['email'] : '';?>" />

21. <div style="color:red"><?php echo isset($error['email']) ? $error['email'] : '';?></div>

22. </dd>

23. <dt>Alamat:</dt>

24. <dd>

25. <input name="alamat" id="alamat" type="text" value="<?php echo isset($_POST['ala

mat']) ? $_POST['alamat'] : '';?>" />

26. <div style="color:red"><?php echo isset($error['alamat']) ? $error['alamat'] : '';?></div

>

27. </dd>

28. <dt>Kota:</dt>

29. <dd>

30. <input name="kota" id="kota" type="text" value="<?php echo isset($_POST['kota']) ?

$_POST['kota'] : '';?>" />

31. <div style="color:red"><?php echo isset($error['kota']) ? $error['kota'] : '';?></div>

32. </dd>

33. <dt>Kode POS:</dt>

34. <dd>

35. <input name="kode_pos" id="kode_pos" type="text" value="<?php echo isset($_POS

T['kode_pos']) ? $_POST['kode_pos'] : '';?>" />

36. <div style="color:red"><?php echo isset($error['kode_pos']) ? $error['kode_pos'] : '';?>

</div>

37. </dd>

38. <dt></dt>

39. <dd>

40. <input name="submit" id="submit" type="Submit" value="Submit" />

41. </dd>

42. </dl>

43. </form>

Page 28: Full Tutorial PHP

28

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.

Validasi Email Address

Untuk memvalidasi email address bisa menggunakan regular expression, seperti script di bawah :

view plaincopy to clipboardprint TryIt?

1. <?php

2. $emailPattern = '/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/';

3. $email = '[email protected]';

4. var_dump(preg_match($emailPattern, $email)); //hasil true

5. $email = 'buka email';

6. var_dump(preg_match($emailPattern, $email)); // hasil false

7. ?>

Page 29: Full Tutorial PHP

29

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:

view plaincopy to clipboardprint TryIt?

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.

Page 30: Full Tutorial PHP

30

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.

Validasi Form dengan Javascript

Untuk mengikuti tutorial ini anda diharapkan memiliki pengetahuan tetang javascript dasar.

Untuk mem-validasi sebuah form, agar tidak ada data yang kosong maka bisa digunakan script di

bawah:

view plaincopy to clipboardprint TryIt?

1. <form name="form1" id="form1" action="" method="post" />

2. <dl>

3. <dt>First Name</dt>

4. <dd><input name="firstName" id="firstName" type="text" /></dd>

5. <dt>Last Name</dt>

6. <dd><input name="lastName" id="lastName" type="text" /></dd>

7. <dt>Email</dt>

8. <dd><input name="email" id="email" type="text" /></dd>

9. <dt>Phone</dt>

10. <dd><input name="phone" id="phone" type="text" /></dd>

11. <dt></dt>

12. <dd><input type="button" name="save" id="save" value="Save" onclick="saveForm();

return false;" /></dd>

13. </dl>

14. </form>

15. 16. <script type="text/javascript">

17. function saveForm(){

18. if(document.getElementById('firstName').value == ''){

19. alert('First Name tidak boleh kosong');

20. document.getElementById('firstName').focus();

21. return false;

22. }

23. if(document.getElementById('lastName').value == ''){

24. alert('Last Name tidak boleh kosong');

25. document.getElementById('lastName').focus();

26. return false;

27. }

28. if(document.getElementById('email').value == ''){

29. alert('Email tidak boleh kosong');

Page 31: Full Tutorial PHP

31

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.

Validasi Email dengan Javascript

view plaincopy to clipboardprint TryIt?

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 protected]')); //hasil true

9. alert(validasiEmail('bukanemail')); //hasil false

Page 32: Full Tutorial PHP

32

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

Validasi form dengan javascript yang lainya bisa ditanyankan langsung di

http://ask.myphptutorials.com

Page 33: Full Tutorial PHP

33

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.

Berikut adalah langkah langkah membuat contact form:

Membuat Contact Form/HTML form

Buatlah sebuah html form seperi berikut:

Name:

Email:

Message:

Code:

view plaincopy to clipboardprint TryIt?

1. <form method="post" name="form1" action="save-comment.php">

2. <p>

3. Name: <input name="name" type="text" />

4. </p>

5. <p>

6. Email: <input name="email" type="text" />

7. </p>

8. <p>

9. Message: <textarea name="message"></textarea>

10. </p>

11. <p>

12. <input name="submit" type="submit" value="Send" />

13. </p>

14. </form>

Menyimpan Contact ke Database

Contact yang dikirim oleh pengguna dapat disimpan ke database atau langsung dikirim lewat

email ke pengelola website. Untuk menyimpan contact ke database kunjungi tutorials ini :

Menyimpan Data ke Database & Menampilkan Data dengan PHP.

Page 34: Full Tutorial PHP

34

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:

view plaincopy to clipboardprint TryIt?

1. <?php

2. // file save-comment.php

3. $name = $_POST['name'];

4. $email = $_POST['email'];

5. $text = $_POST['message'];

6.

7. $email_pengelola = '[email protected]'; // 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:

view plaincopy to clipboardprint TryIt?

1. <?php

2. // file save-comment.php

3. $name = $_POST['name'];

4. $email = $_POST['email'];

5. $text = $_POST['message'];

6.

7. $email_pengelola = '[email protected]'; // 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 <[email protected]>' . "\r\n";

26. //send email

27. mail($email_pengelola, "New message from ".$name, $message, $headers);

28. ?>

Page 35: Full Tutorial PHP

35

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:

view plaincopy to clipboardprint TryIt?

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:

view plaincopy to clipboardprint TryIt?

1. <?php

2. $input = "<strong>Bold Text</strong><p>Paragraph text</p>";

3. $output = htmlentities($input);

4. echo $output;

5. //hasilnya adalah "&lt;strong&gt;Bold Text&lt;/strong&gt;&lt;p&gt;Paragraph text&lt;p

&gt;"

6. ?>

Page 36: Full Tutorial PHP

36

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.

Fungsi PHP mail() secara keseluruhan adalah sebagai berikut:

mail ( string $to , string $subject , string $message, string

$additional_headers, string $additional_parameters );

Parameter Fungsi Mail

to Alamat email penerima, harus memenuhi format RFC 2822 , misal: - [email protected] - [email protected], [email protected] - John<[email protected]>

subject Subjek Email, subjek harus sesuai dengan RFC 2047.

message pesan atau email yang dikirim. Setiap baris pesan dipisahkan dengan LF (\n) tidak boleh lebih dari 70 karakter. Catatan (hanya untuk window): Pada saat PHP berkumonikasi langsung dengan SMTF Server, jika terdapat tanda titik diawal baris, akan dihilangkan. Untuk menghindarinya gunakan dua tanda titik.

additional_headers String yang akan ditambahkan dibagian akhir header email. Biasanya digunakan untuk menambahkan header ekstra seperti "From, Cc, Bcc". Setiap header harus dipisahkan dengan CRLF (\r\n).

additional_parameters digunakan untuk melewatkan flag tambahan sebagai parameter command line dari program yang digunakan untuk mengirim email. Contoh, parameter ini bisa digunakan untuk mengatur pengirim amplop(server pengirim) ketika menggunakan program "sendmail" dengan flag -f.

Contoh Script PHP Untuk Mengirim Email

Mengirim Email Sederhana

view plaincopy to clipboardprint TryIt?

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("[email protected]", "subjek email", $message); 7. ?>

Page 37: Full Tutorial PHP

37

Mengirim Email Dengan Header Ekstra

view plaincopy to clipboardprint TryIt?

1. <?php 2. $to = "[email protected]"; 3. $subject = "Example Subject"; 4. $message = "This mail sent by php ". phpversion(); 5. $header = "From: [email protected]\r\n"; 6. $header .= "Reply-To: [email protected]\r\n"; 7. $header .= "X-Mailer: PHP"; 8. mail($to, $subject, $message, $header); 9. ?>

Mengirim Email Dengan Additional Parameter

view plaincopy to clipboardprint TryIt?

1. <?php 2. mail('[email protected]', 'Subjek Email', 'Pesan', null, '[email protected]'); 3. ?>

Page 38: Full Tutorial PHP

38

Mengirim HTML Email

view plaincopy to clipboardprint TryIt?

1. <?php 2. $to = '[email protected]'; 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 <[email protected]>' . "\r\n"; 31. $headers .= 'Cc: [email protected]' . "\r\n"; 32. $headers .= 'Bcc: [email protected]' . "\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.

Page 39: Full Tutorial PHP

39

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.

Setting HTML Form

Untuk meng-upload file digunakan element input file. Agar file bisa ter-upload maka pada form

HTML harus ditambahkan atribut enctype="multipart/form-data" dan menggunakan method

POST (method="post"). Form html untuk meng-upload file akan terlihat seperti di bawah:

view plaincopy to clipboardprint TryIt?

1. <!--form to upload file-->

2. <form name="formupload" method="post" enctype="multipart/form-

data" action="script/to/upload/file.php">

3. Picture : <input name="picture" type="file" />

4. <input type="submit" name="upload" value="Upload" />

5. </form>

Contoh Upload File dengan PHP

Di asumsikan anda akan mengupload file ke directory /photo, dimana directory /photo ini

berada pada root webserver anda.

Buatlah sebuah file baru menggunakan text editor dan buat sebuah html form seperti berikut:

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.

Page 40: Full Tutorial PHP

40

Kemudian buat file baru dan ketik script php di bawah:

view plaincopy to clipboardprint TryIt?

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.

Page 41: Full Tutorial PHP

41

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

Searching biasanya menggunakan query "like", seperti:

view plaincopy to clipboardprint TryIt?

1. select * from nama_table where nama_field like '%cari%'

hasilnya adalah semua data yang berisikan kata cari seperti "mencari", "pencarian".

Membuat Quick Search

Untuk membuat Quick Search gunakan skrip php di bawah:

view plaincopy to clipboardprint TryIt?

1. <!-- form quick search -->

2. <form name="form1" method="get" action="">

3. Search : <input type="text" name="q" id="q"/> <input type="submit" value="Search"/>

4. </form>

5. <!-- menampilkan hasil pencarian -->

6. <?php

7. if(isset($_GET['q']) && $_GET['q']){

8. $conn = mysql_connect("localhost", "root", "");

9. mysql_select_db("test");

10. $q = $_GET['q'];

11. $sql = "select * from siswa where nama like '%$q%' or

12. ayah like '%$q%' or ibu like '%$q%' or alamat like '%$q%'";

13. $result = mysql_query($sql);

14. if(mysql_num_rows($result) > 0){

15. ?>

16. <table>

17. <tr>

18. <td>Nama</td>

19. <td>Ayah</td>

Page 42: Full Tutorial PHP

42

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. ?>

Membuat Advanced Search

Gunakan skrip di bawah untuk membuat advanced search.

view plaincopy to clipboardprint TryIt?

1. <!-- form advanced search -->

2. <form name="form1" method="get" action="">

3. Nama : <input type="text" name="nama" id="nama"/> <br/>

4. Ayah : <input type="text" name="ayah" id="ayah"/> <br/>

5. Ibu : <input type="text" name="ibu" id="ibu"/> <br/>

6. Alamat : <input type="text" name="alamat" id="alamat"/>

7. <br/><input type="submit" value="Search" name="search"/>

8. </form>

9. <!-- menampilkan hasil pencarian -->

10. <?php

11. if(isset($_GET['search'])){

12. $conn = mysql_connect("localhost", "root", "");

13. mysql_select_db("test");

14. $nama = $_GET['nama'];

15. $ayah = $_GET['ayah'];

16. $ibu = $_GET['ibu'];

17. $alamat = $_GET['alamat'];

18. $sql = "select * from siswa where nama like '%$nama%' and

19. ayah like '%$ayah%' and ibu like '%$ibu%' and alamat like '%$alamat%'";

20. $result = mysql_query($sql);

21. if(mysql_num_rows($result) > 0){

22. ?>

23. <table>

24. <tr>

25. <td>Nama</td>

26. <td>Ayah</td>

27. <td>Ibu</td>

28. <td>Alamat</td>

Page 43: Full Tutorial PHP

43

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.

Page 44: Full Tutorial PHP

44

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.

Membuat Database Galeri Foto

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)

atau gunakan sql query di bawah

view plaincopy to clipboardprint TryIt?

1. CREATE TABLE `foto` (

2. `id` int(11) NOT NULL AUTO_INCREMENT,

3. `nama_file` varchar(255) NOT NULL,

4. `deskripsi` varchar(255) ,

5. PRIMARY KEY (`id`)

6. )

7. ENGINE = MyISAM;

Membuat Form dan Struktur Folder

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/>

Page 45: Full Tutorial PHP

45

8. Deskripsi: <textarea name="deskripsi" id="deskripsi"></textarea><br/>

9. <input type="submit" name="save" value="Upload"/>

10. </form>

11. </body>

12. </html>

kemudian simpan file tersebut.

Mengupload dan Menyimpan Gambar ke Database

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

Page 46: Full Tutorial PHP

46

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-->

Page 47: Full Tutorial PHP

47

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.