Form Handling pada PHP


12/10/2016 03:27:39 417

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.

Requirement

  1. Web Server dan PHP
  2. Text editor, seperti sublime text, notepad++, atom, dll
  3. Web browser, seperti google chrome, mozilla Firefox, dll

Contoh 1 (tanpa file)

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

Penangan Form 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>";

?>

Uji Coba

Untuk melakukan uji coba

  1. Ketikan URL http://localhost/latihan/form.html pada web Browser
  2. Isikan semua inputan, dan klik tombol kirim
  3. Maka akan mengarahkan pada http://localhost/latihan/proses.php, akan meng-outputkan sesuai dengan inputan pada langkah 2

Contoh 2 (dengan file)

form.html

Untuk melakukan unggah file (upload), maka ada beberapa yang harus dimodifikasi dari skrip form.htmlpada 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>

proses.php

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