Formulir Pendaftaran PHP menggunakan Metode GET, POST beserta Contohnya

⚡ Ringkasan Cerdas

Penanganan Formulir di PHP menangkap input pengguna dari formulir HTML dan memprosesnya di server melalui superglobal $_POST dan $_GET. Panduan ini membangun formulir pendaftaran, menjelaskan metode POST dan GET, membandingkannya, dan menunjukkan cara memproses kolom, kotak centang, dan input pencarian.

  • 📝 Fungsi Formulir: Formulir HTML mengumpulkan input pengguna melalui kolom-kolom seperti kotak teks, kotak centang, dan tombol, kemudian mengirimkannya ke skrip server.
  • 📬 Metode POSTING: $_POST mengirimkan nilai dalam body HTTP, keeping mereka keluar dari URLyang sesuai untuk login dan data sensitif.
  • 🔗 DAPATKAN Metode: $_GET menambahkan nilai ke URL, sehingga hasilnya dapat ditandai (bookmark), yang ideal untuk formulir pencarian.
  • POST vs GET: POST tidak memiliki batasan panjang praktis dan mendukung banyak tipe data; GET lebih pendek, hanya berupa string, dan terlihat.
  • Memproses Masukan: Fungsi isset() memeriksa apakah suatu field telah dikirimkan sebelum skrip membaca dan menggunakan nilainya.
  • ☑️ Kotak centang: Kotak centang hanya mengirimkan nilai ketika dicentang, jadi isset() memastikan apakah pengguna menyetujui atau memilih opsi tersebut.
  • 🤖 Bantuan AI: Alat AI dapat menghasilkan formulir yang tervalidasi dan aman, serta membantu mendiagnosis mengapa formulir tidak terkirim dengan benar.

Penanganan Formulir PHP

Apa itu Formulir?

Saat Anda masuk ke situs web atau kotak surat Anda, Anda berinteraksi dengan sebuah formulir.

Formulir digunakan untuk mendapatkan masukan dari pengguna dan mengirimkannya ke server web untuk diproses.

Diagram di bawah mengilustrasikan proses penanganan formulir.

Formulir PHP

Formulir adalah tag HTML yang berisi elemen antarmuka pengguna grafis seperti kotak input, kotak centang, tombol radio, dan lainnya.

Bentuk tersebut didefinisikan menggunakan … Tag dan item GUI didefinisikan menggunakan elemen formulir seperti input.

Kapan dan mengapa kita menggunakan formulir?

  • Formulir sangat berguna saat mengembangkanping Aplikasi yang fleksibel dan dinamis yang menerima input dari pengguna.
  • Formulir dapat digunakan untuk mengedit data yang sudah ada di dalam basis data.

Buat formulir

Kami akan menggunakan tag HTML untuk membuat formulir. Di bawah ini adalah daftar minimal hal-hal yang Anda perlukan untuk membuat formulir.

  • Tag formulir pembuka dan penutup …
  • Jenis pengiriman formulir POST atau GET
  • Sampel URL yang akan memproses data yang dikirimkan
  • Kolom input seperti kotak input, area teks, tombol, kotak centang, dan sejenisnya.

Kode di bawah ini membuat formulir pendaftaran sederhana.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST"> First name:

<input type="text" name="firstname"> <br> Last name:

<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
</body>
</html>

Melihat kode di atas dalam peramban web akan menampilkan formulir berikut.

Buat formulir

SINI,

  • … adalah tag formulir pembuka dan penutup
  • action=”registration_form.php” method=”POST” menentukan tujuan URL dan jenis pengajuan.
  • Nama Depan/Belakang: adalah label untuk kotak input
  • adalah tag kotak input
  • adalah tag baris baru
  • adalah nilai tersembunyi yang digunakan untuk memeriksa apakah formulir telah dikirimkan atau belum
  • adalah tombol yang, ketika diklik, mengirimkan formulir ke server untuk diproses.

Mengirimkan data formulir ke server

Atribut action pada formulir menentukan pengiriman URL yang memproses data. Atribut metode menentukan jenis pengiriman.

Metode PHP POST

  • Ini adalah variabel array superglobal bawaan PHP yang digunakan untuk mendapatkan nilai yang dikirimkan melalui metode HTTP POST.
  • Variabel array dapat diakses dari skrip apa pun dalam program; ini memiliki cakupan global.
  • Metode ini ideal jika Anda tidak ingin menampilkan nilai-nilai form post di URL.
  • Contoh yang baik dari penggunaan metode POST adalah saat mengirimkan detail login ke server.

Ia memiliki sintaksis sebagai berikut.

<?php
$_POST['variable_name'];
?>

SINI,

  • “$_POST[…]” adalah susunan PHP
  • “'variable_name'” adalah nama kolom formulir.

Metode PHP GET

  • Ini adalah variabel array superglobal bawaan PHP yang digunakan untuk mendapatkan nilai yang dikirimkan melalui metode HTTP GET.
  • Variabel array dapat diakses dari skrip apa pun dalam program; ini memiliki cakupan global.
  • Metode ini menampilkan nilai-nilai formulir di dalam URL.
  • Ini sangat ideal untuk formulir mesin pencari karena memungkinkan pengguna untuk menandai hasil pencarian.

Ia memiliki sintaksis sebagai berikut.

<?php
$_GET['variable_name'];
?>

SINI,

  • “$_GET[…]” adalah larik PHP
  • “'variable_name'” adalah URL nama variabel.

Metode DAPATKAN vs POST

POST DAPATKAN
Nilai tidak terlihat di URL Nilai yang terlihat di URL
Tidak ada batasan panjang nilai karena nilai tersebut dikirim melalui isi permintaan HTTP. Terdapat batasan panjang nilai, biasanya 255 karakter. Hal ini karena nilai-nilai tersebut ditampilkan di URLPerhatikan bahwa batas atas jumlah karakter bergantung pada peramban yang digunakan.
Memiliki kinerja yang lebih rendah dibandingkan dengan metode GET karena waktu yang dihabiskan untuk membungkus nilai POST dalam badan HTTP. Memiliki kinerja yang lebih tinggi dibandingkan dengan metode POST karena sifatnya yang sederhana, yaitu menambahkan nilai-nilai di dalamnya. URL.
Mendukung berbagai tipe data seperti string, numerik, biner, dan banyak lagi. Hanya mendukung tipe data string karena nilainya ditampilkan dalam URL
Hasil tidak dapat ditandai (bookmark) Hasil dapat ditandai karena nilai-nilai tersebut terlihat jelas. URL

Diagram di bawah ini menunjukkan perbedaan antara GET dan POST.

Metode DAPATKAN vs POST

Metode DAPATKAN vs POST

Mengolah data formulir pendaftaran

Formulir pendaftaran mengirimkan data ke dirinya sendiri sebagaimana ditentukan dalam atribut tindakan formulir.

Saat formulir telah dikirimkan, nilai-nilai tersebut akan diisi ke dalam array superglobal $_POST.

Kami akan menggunakan fungsi isset PHP untuk memeriksa apakah nilai formulir telah diisi dalam array $_POST dan memproses datanya.

Kami akan memodifikasi formulir pendaftaran untuk menyertakan kode PHP yang memproses data. Berikut adalah kode yang telah dimodifikasi.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>
<body>

<?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted

<h2>Thank You <?php echo $_POST['firstname']; ?> </h2>

<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>

<p>Go <a href="/registration_form.php">back</a> to the form</p>

<?php else: ?>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST">

First name:
<input type="text" name="firstname">

<br> Last name:
<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>

<?php endif; ?>
</body>
</html>

SINI,

  • Memeriksa apakah field tersembunyi form_submitted telah diisi dalam array $_POST[] dan menampilkan pesan terima kasih dan nama depan. Jika field form_submitted belum diisi dalam array $_POST[], formulir akan ditampilkan.

Lebih contoh

Mesin pencari sederhana

Kita akan merancang mesin pencari sederhana yang menggunakan metode PHP GET sebagai tipe pengiriman formulir.

Untuk mempermudah, kita akan menggunakan a Pernyataan if PHP untuk menentukan keluarannya.

Kami akan menggunakan kode HTML yang sama untuk formulir pendaftaran di atas dan melakukan sedikit modifikasi.

<html>
<head>
<title>Simple Search Engine</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<?php if (isset($_GET['form_submitted'])): ?>

<h2>Search Results For <?php echo $_GET['search_term']; ?> </h2>
<?php if ($_GET['search_term'] == "GET"): ?>

<p>The GET method displays its values in the URL</p>

<?php else: ?>
<p>Sorry, no matches found for your search term</p>

<?php endif; ?>

<p>Go <a href="/search_engine.php">back</a> to the form</p>

<?php else: ?>

<h2>Simple Search Engine - Type in GET </h2>

<form action="search_engine.php" method="GET">

Search Term:
<input type="text" name="search_term">
<br>

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
<?php endif; ?>
</body>
</html>

Lihat halaman di atas di peramban web.

Formulir berikut akan ditampilkan.

Mesin Pencari Sederhana

Ketik GET dengan huruf kapital, lalu klik tombol kirim.

Berikut ini akan ditampilkan.

Mesin Pencari Sederhana

Diagram di bawah ini menunjukkan URL untuk hasil di atas.

Mesin Pencari Sederhana

Perhatikan URL telah menampilkan nilai search_term dan form_submitted. Cobalah memasukkan sesuatu selain GET, lalu klik tombol kirim dan lihat hasil apa yang Anda dapatkan.

Bekerja dengan kotak centang, tombol radio

Jika pengguna tidak memilih kotak centang atau tombol radio, tidak ada nilai yang dikirimkan. Jika pengguna memilih kotak centang atau tombol radio, nilai satu (1) atau benar akan dikirimkan.

Kami akan mengubah kode formulir pendaftaran dan menyertakan tombol centang yang memungkinkan pengguna menyetujui persyaratan layanan.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php if (isset($_POST['form_submitted'])): ?>
<?php if (!isset($_POST['agree'])): ?>
<p>You have not accepted our terms of service</p>
<?php else: ?>
<h2>Thank You <?php echo $_POST['firstname']; ?></h2>
<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>
<p> Go <a href="/registration_form2.php">back</a> to the form</p>
<?php endif; ?>
<?php else: ?>
<h2>Registration Form</h2>
<form action="registration_form2.php" method="POST">
First name:
<input type="text" name="firstname">
<br> Last name:
<input type="text" name="lastname">
<br> Agree to Terms of Service:
<input type="checkbox" name="agree">
<br>
<input type="hidden" name="form_submitted" value="1" />
<input type="submit" value="Submit">
</form>
<?php endif; ?>
</body>
</html>

Lihat formulir di atas di browser.

Bekerja dengan Kotak Centang, Tombol Radio

Isilah nama depan dan nama belakang.

Perhatikan kotak centang Setuju dengan Persyaratan Layanan belum dipilih.

Klik pada tombol kirim.

Anda akan mendapatkan hasil berikut.

Bekerja dengan Kotak Centang, Tombol Radio

Klik tautan "kembali ke formulir", lalu pilih kotak centang.

Bekerja dengan Kotak Centang, Tombol Radio

Klik pada tombol kirim.

Anda akan mendapatkan hasil berikut.

Bekerja dengan Kotak Centang, Tombol Radio

Pertanyaan Umum Demo Slot

$_GET membaca nilai dari URL $_query string, $_POST membaca nilai dari body permintaan, dan $_REQUEST menggabungkan data GET, POST, dan cookie. Lebih baik menggunakan array spesifik agar Anda tahu persis dari mana suatu nilai berasal.

Jangan pernah mempercayai input mentah. Validasi dengan filter_var() atau aturan untuk setiap field, dan lakukan escape pada output dengan htmlspecialchars() untuk mencegah XSS. Gunakan prepared statement untuk penulisan ke database guna mencegah injeksi SQL.

Penyebab umum meliputi metode formulir GET alih-alih POST, atribut nama yang hilang pada input, dan tindakan yang salah. URLatau mungkin ada kesalahan pada enctype multipart untuk unggahan file. Periksa setiap hal tersebut pada formulir Anda.

Ya. AI dapat membuat formulir HTML ditambah validasi sisi server, perlindungan CSRF, dan output yang di-escape. RevTinjau aturan untuk setiap bidang dan pastikan pemeriksaan keamanan sesuai dengan aplikasi Anda sebelum melakukan deployment.

Ya. Bagikan formulir dan penangan (handler), dan AI dapat mendeteksi ketidaksesuaian metode, atribut nama yang hilang, jalur tindakan yang salah, atau cabang validasi yang menghalangi pengiriman, lalu menyarankan perbaikannya.

Ringkaslah postingan ini dengan: