Untuk mengkoleksi data dari klien, kita dapat memanfaatkan form pada HTML dan melakukan penangan form (Form handling) dengan menggunakan PHP. Kita dapat katakan bahwa data yang dikirim dari sisi klien dapat terdiri dari: (1) data text dan (2) data file. Berikut ialah contoh dalam form handling.
form.html
<html>
<head>
<title>Form Handling pada PHP</title>
</head>
<body>
<h1>Biodata</h1>
<form action="proses.php" method="POST">
Nama: <input type="text" name="nama"> <br>
Jenis Kelamin:
<input type="radio" name="kelamin" value="pria"> Pria
<input type="radio" name="kelamin" value="wanita"> Wanita
Pekerjaan:
<select name="pekerjaan">
<option value="dosen">Dosen</option>
<option value="direktur">Direktur</option>
<option value="manager">Manager</option>
<option value="pelajar">Pelajar</option>
</select> <br>
<input type="submit" value="Proses">
</form>
</body>
</html>
proses.php
<?php
// Ambil data
$nama = $_POST['nama'];
$kelamin = $_POST['kelamin'];
$pekerjaan = $_POST['pekerjaan'];
// Tampilkan data
echo "Nama : $nama <br>";
echo "Kelamin : $kelamin <br>";
echo "Pekerjaan : $pekerjaan <br>";
?>
Untuk melakukan uji coba
Untuk melakukan unggah file (upload), maka ada beberapa yang harus dimodifikasi dari skrip form.html
pada contoh 1. Agar dapat melakukan upload, suatu form harus memiliki atribut method
dengan nilai POST
dan atribut enctype
dengan nilai multipart/form-data
. Sehingga kita update form.html
dengan mengikut sertakan atribut diatas sebagai berikut:
<form action="proses.php" method="POST" enctype="multipart/form-data">
Inputan-Inputan
</form>
Selain itu, kita tambah suatu inputan untuk file, misalkan kita menginginkan foto, sehingga kita perlukan inputan sebagai berikut:
Foto: <input type="file" name="foto"> <br>
Sehingga file form.html
menjadi sebagai berikut:
<form action="proses.php" method="POST" enctype="multipart/form-data">
Nama: <input type="text" name="nama"> <br>
Foto: <input type="file" name="foto"> <br>
Jenis Kelamin:
<input type="radio" name="kelamin" value="pria"> Pria
<input type="radio" name="kelamin" value="wanita"> Wanita
Pekerjaan:
<select name="pekerjaan">
<option value="dosen">Dosen</option>
<option value="direktur">Direktur</option>
<option value="manager">Manager</option>
<option value="pelajar">Pelajar</option>
</select> <br>
<input type="submit" value="Proses">
</form>
Sedangkan pada sisi server yakni proses.php
kita akan menambahkan suatu kode untuk mengambil nilai file dan mengupload file kedalam server dengan menambahkan kode berikut:
<?php
// Perintah sebelumnya
// Mengambil file upload
$file_foto = $_FILES['foto']['tmp_name'];
$nama_foto = $_FILES['foto']['name'];
// Upload File
move_uploaded_file($file_foto, $nama_foto);
// Menampilkan Foto
echo "<img src='$nama_foto'>";
Seperti contoh kode diatas, untuk mengambil data file dengan menggunakan global variabel $_FILES
. Variabel global ini ialah array dua dimensi, dimana untuk mengambil file foto dengan $_FILES['NAMA_INPUTAN']['tmp_name']
. Sedangkan, untuk mengambil nama dari file yang diupload dengan $_FILES['NAMA_INPUTAN']['name']
.
Untuk meletakan atau memindahkan file upload keserver kita menggunakan fungsi move_uploaded_file(FILE, NAMA_FILE)
. Sedangkan untuk menampilkan data dapat menggunakan tag-tag HTML, seperti jika filenya gambar dapat menggunakan tag <img src="NAMA_FILE">
atau menggunakan <a href="NAMA_FILE">
.