Skip to content

Penanganan Form

  • Salah satu fungsi utama PHP adalah memungkinkan adanya interaksi antara aplikasi web dengan user.
  • Media untuk melakukan interaksi ini salah satunya adalah form.
  • Untuk memproses data yang dikirim oleh form ada beberapa variabel superglobal yang sering digunakan.

Variabel $_GET

  • Variabel $_GET menyimpan array data yang dikirim oleh form dengan method GET melalui URL, atau biasa disebut sebagai Query string.
  • Data yang dikirim akan terlihat pada URL.
  • Penggunaan method GET tidak cocok untuk mengirimkan data yang sensitif, semisal password dan sebagainya.

Contoh: form_get.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Get</title>
</head>
<body>
    <form action="" method="get">
        <input type="text" name="kata" id="kata">
        <input type="submit" value="Cari">
    </form>

    <?php
    if(isset($_GET['kata'])){
        echo "Anda sedang mencari kata <b>{$_GET['kata']}</b>";
    }
    ?>
</body>
</html>

Uji Coba

  • Akses skrip di atas dari browser.
  • Masukkan sebuah kata pada kotak pencarian, dan klik tombol Cari .
  • Akan muncul keterangan di bawah form.
  • Perhatikan juga URL pada address bar.

Variabel $_POST

  • Variabel $_POST menyimpan array data yang dikirim oleh form dengan method POST melalui HTTP POST.
  • Data yang dikirim tidak akan tampak pada URL, sehingga lebih aman daripada $_GET.

Contoh: form_post.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form POST</title>
    <style>
        body{
            font-family:arial;
            text-align:center;
        }
        input{
            margin:10px;
            padding:10px;
            filter:drop-shadow(5px 5px gray);
        }
    </style>
</head>
<body>
    <form action="" method="post">
        <h2>Login</h2>
        <input type="text" name="username" placeholder="Username">
        <br>
        <input type="password" name="password" placeholder="Password">
        <br>
        <input type="reset" value="Batal">
        <input type="submit" value="Login">
        <br>
    </form>
    <?php
        if($_SERVER["REQUEST_METHOD"]=="POST"){
            echo "Username : <b>$_POST[username]</b>";
            echo "<br>";
            echo "Password : <b>$_POST[password]</b>";
        }
    ?>
</body>
</html>

Uji Coba

  • Akses skrip di atas dari browser.
  • Masukkan username dan password pada form dan klik tombol Login .
  • Akan muncul keterangan di bawah form.
  • Tombol Batal digunakan untuk menghapus input user.

Variabel $_FILES

  • Variabel $_FILES hanya menyimpan data yang dikirim dari input dengan tipe file.
  • Biasa digunakan untuk proses upload file.
  • Agar file dapat terupload, pada tag <form> harus ditambah atribut enctype="multipart/form-data".

Contoh : form_files.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Upload</title>
    <style>
        body{
            font-family:arial;
            text-align:center;
        }
    </style>
</head>
<body>
    <h2>Upload File</h2>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="file" name="foto" id="foto">
        <input type="submit" value="Upload">
    </form>

    <?php
        if($_SERVER["REQUEST_METHOD"]=="POST"){
            $namafile = $_FILES['foto']['name'];
            $lokasifile = $_FILES['foto']['tmp_name'];

            if($namafile != ""){
                move_uploaded_file($lokasifile,"file/".$namafile);
                echo "<br>";
                echo "<img src='file/$namafile' width='50%'>";
            }
        }
    ?>
</body>
</html> 

Uji Coba

  • Sebelum dicoba, buat 1 folder sejajar dengan skrip di atas dengan nama file.
  • Akses skrip di atas dari browser.
  • Pilih 1 file dari komputer dengan klik tombol Chose file , lalu klik Upload .
  • Setelah terupload, maka file akan disimpan di dalam folder file yang baru saja kita buat.
  • Browser akan refresh dan gambar langsung ditampilkan di browser.
  • Respect 🫡