PHP superglobals $ _GET dan $ _POST digunakan untuk mengumpulkan form-data.
PHP - Bentuk HTML Sederhana
Contoh di bawah ini menampilkan bentuk HTML sederhana dengan dua field input dan sebuah tombol submit:
Contoh
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Menjalankan contoh » Ketika pengguna mengisi formulir di atas dan mengklik tombol submit, form data dikirim untuk diproses ke file PHP bernama "welcome.php" . Bentuk data dikirim dengan metode HTTP POST.
Untuk menampilkan data yang diajukan Anda hanya bisa echo semua variabel. The "welcome.php" terlihat seperti ini:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Output bisa menjadi sesuatu seperti ini:
Welcome John
Your email address is [email protected]
Hasil yang sama juga bisa dicapai dengan menggunakan metode HTTP GET:
Contoh
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Menjalankan contoh » dan "welcome_get.php" terlihat seperti ini:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Kode di atas cukup sederhana. Namun, hal yang paling penting yang hilang. Anda perlu memvalidasi data formulir untuk melindungi naskah Anda dari kode berbahaya.
Pikirkan KEAMANAN saat memproses bentuk PHP!
Halaman ini tidak berisi validasi form, itu hanya menunjukkan bagaimana Anda dapat mengirim dan mengambil data formulir.
Namun, halaman berikutnya akan menunjukkan bagaimana proses bentuk PHP dengan keamanan dalam pikiran! validasi yang tepat dari bentuk data penting untuk melindungi formulir Anda dari hacker dan spammer!
GET vs POST
Kedua GET dan POST membuat sebuah array (misalnya array( key => value, key2 => value2, key3 => value3, ...) ). array ini memegang pasangan kunci / nilai, di mana kunci adalah nama-nama bentuk kontrol dan nilai-nilai data input dari user.
Kedua GET dan POST diperlakukan sebagai $ _GET dan $ _POST. Ini adalah superglobals, yang berarti bahwa mereka selalu dapat diakses, terlepas dari lingkup - dan Anda dapat mengaksesnya dari fungsi apapun, kelas atau file yang tanpa harus melakukan sesuatu yang istimewa.
$ _GET adalah array dari variabel dilewatkan ke script saat ini melalui parameter URL.
$ _POST adalah array dari variabel dilewatkan ke script saat ini melalui metode HTTP POST.
Kapan menggunakan GET?
Informasi yang dikirim dari formulir dengan metode GET terlihat untuk semua orang (semua nama dan nilai-nilai variabel yang ditampilkan dalam URL). GET juga memiliki batasan pada jumlah informasi untuk mengirim. pembatasan itu sekitar 2000 karakter. Namun, karena variabel ditampilkan di URL, adalah mungkin untuk penunjuk halaman. Hal ini dapat berguna dalam beberapa kasus.
GET dapat digunakan untuk mengirim data non-sensitif.
Note: GET harus PERNAH digunakan untuk mengirim password atau informasi sensitif lainnya!
Kapan menggunakan POST?
Informasi yang dikirim dari formulir dengan metode POST tidak terlihat oleh orang lain (all names/values are embedded within the body of the HTTP request) dan tidak memiliki batasan pada jumlah informasi untuk mengirim.
Selain itu POST mendukung fungsi canggih seperti dukungan untuk multi-bagian masukan biner ketika mengupload file ke server.
Namun, karena variabel tidak ditampilkan dalam URL, tidak mungkin untuk penunjuk halaman.
Pengembang lebih memilih POST untuk mengirim data formulir.
Berikutnya, mari kita lihat bagaimana kami dapat memproses bentuk PHP cara aman!