Mengambil Data Form HTML dengan PHP (Metode POST)
Dalam pengembangan web, formulir (form) adalah cara utama pengguna memasukkan data. Misalnya, formulir pendaftaran, formulir login, atau formulir tambah data siswa.
Konsep Kunci: name dan $_POST
Agar PHP bisa mengambil data dari formulir, ada dua hal yang wajib kamu pahami:
Atribut
method="POST": Ini memberi tahu browser cara mengirim data. POST adalah metode yang aman dan cocok untuk data sensitif (seperti password) atau data yang banyak (seperti data pendaftaran), karena data dikirim di belakang layar (tidak terlihat di URL).Atribut
name: Setiap input (kotak teks, tombol radio, checkbox) di HTML harus punya atributname. Nama inilah yang akan dipakai PHP untuk mengambil nilainya.Variabel Global
$_POST: Ini adalah "keranjang" khusus di PHP yang otomatis diisi dengan semua data yang dikirim dari formulir melalui metode POST.
1. Membuat Form HTML (form_siswa.html)
Kita buat dulu formulir sederhana untuk data siswa.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Input Data Siswa</title>
</head>
<body>
<h1>Formulir Tambah Siswa</h1>
<form action="proses_tambah.php" method="POST">
<label for="nama">Nama Lengkap:</label><br>
<input type="text" id="nama" name="nama_lengkap" required><br><br>
<label for="kelas">Kelas:</label><br>
<input type="text" id="kelas" name="kelas_siswa" required><br><br>
<label for="alamat">Alamat:</label><br>
<textarea id="alamat" name="alamat_siswa"></textarea><br><br>
<button type="submit" name="submit_data">Simpan Data</button>
</form>
</body>
</html>
2. Memproses Data di PHP (proses_tambah.php)
File ini bertugas menerima data dari form_siswa.html menggunakan keranjang ajaib $_POST dan kemudian memasukkannya ke database.
A. Mengambil Data dari $_POST
Di dalam file PHP, data dari input HTML akan diakses menggunakan name mereka sebagai kunci array:
Input dengan
name="nama_lengkap"akan diakses di PHP sebagai:$_POST['nama_lengkap']Input dengan
name="kelas_siswa"akan diakses di PHP sebagai:$_POST['kelas_siswa']Input dengan
name="alamat_siswa"akan diakses di PHP sebagai:$_POST['alamat_siswa']
B. Kode Lengkap Proses (Gabungan Form + CREATE)
Kita gabungkan konsep mengambil data form dengan materi CREATE sebelumnya (menggunakan gaya prosedural sederhana).
<?php
// ===========================================
// BAGIAN 1: Mengambil Data dari Form ($_POST)
// ===========================================
// Cek dulu, apakah tombol submit sudah ditekan?
// (Ini penting agar kode tidak error saat pertama kali diakses)
if (isset($_POST['submit_data'])) {
// Ambil nilai dari keranjang $_POST dan simpan ke variabel biasa
$nama = $_POST['nama_lengkap'];
$kelas = $_POST['kelas_siswa'];
$alamat = $_POST['alamat_siswa'];
// Cek apakah data sudah terambil
echo "<h1>Data Berhasil Diterima PHP!</h1>";
echo "Nama: " . $nama . "<br>";
echo "Kelas: " . $kelas . "<br>";
echo "Alamat: " . $alamat . "<br>";
echo "<hr>";
// ===================================
// BAGIAN 2: Proses Koneksi dan INSERT ke Database
// ===================================
// 1. Detail Koneksi (Sesuaikan dengan XAMPP kamu)
$host = "localhost";
$user = "root";
$pass = "";
$db = "db_rpl";
$koneksi = mysqli_connect($host, $user, $pass, $db);
if (mysqli_connect_errno()) {
die("Koneksi Gagal: " . mysqli_connect_error());
}
// 2. Siapkan dan Bersihkan Perintah SQL (Gaya Prosedural Sederhana)
$nama_bersih = mysqli_real_escape_string($koneksi, $nama);
$kelas_bersih = mysqli_real_escape_string($koneksi, $kelas);
$alamat_bersih = mysqli_real_escape_string($koneksi, $alamat);
$sql = "INSERT INTO siswa (nama, kelas, alamat)
VALUES ('$nama_bersih', '$kelas_bersih', '$alamat_bersih')";
// 3. Eksekusi
if (mysqli_query($koneksi, $sql)) {
echo "🎉 Data **BERHASIL** disimpan ke database!";
} else {
echo "❌ Gagal menyimpan data ke database. Error: " . mysqli_error($koneksi);
}
mysqli_close($koneksi);
} else {
// Kalau user langsung mengakses file ini tanpa melalui form
echo "Akses ditolak! Silakan isi data melalui <a href='form_siswa.html'>Formulir</a>.";
}
?>
Tips Penting untuk Anak RPL
Konsisten dengan name: Pastikan nama di $_POST['nama_lengkap'] sama persis dengan name="nama_lengkap" di HTML (case-sensitive!).
Validasi Dulu: Sebelum memasukkan data ke database, selalu cek dan pastikan data tidak kosong. Di contoh di atas, kita menggunakan if (isset($_POST['submit_data'])).
Metode POST vs GET: Gunakan POST untuk operasi INSERT (menambah) atau UPDATE (mengubah) data, karena lebih aman. Gunakan GET untuk operasi SELECT (menampilkan/mencari data), karena datanya boleh terlihat di URL.
Tidak ada komentar
Posting Komentar