Cara Mengirimkan&nbsp;Nilai&nbsp;Form&nbsp;HTML&nbsp;ke&nbsp;dalam&nbsp;PHP Untuk&nbsp;memahami&nbsp;Cara&nbsp;Mengirimkan&nbsp;Nilai&nbsp;Form&nbsp;HTML&nbsp;ke&nbsp;dalam&nbsp;PHP,&nbsp;kita&nbsp;akan&nbsp;langsung&nbsp;praktek dengan&nbsp;membuat&nbsp;2&nbsp;buah&nbsp;file,&nbsp;yakni&nbsp;halaman&nbsp;HTML&nbsp;yang&nbsp;berisi&nbsp;form&nbsp;dengan&nbsp;nama&nbsp;file&nbsp;form.html,&nbsp;dan halaman&nbsp;PHP&nbsp;yang&nbsp;akan&nbsp;berisi&nbsp;kode&nbsp;untuk&nbsp;menampilkan&nbsp;hasil&nbsp;form&nbsp;dengan&nbsp;nama&nbsp;file:proses.php. Karena&nbsp;kita&nbsp;akan&nbsp;mengeksekusi&nbsp;kode&nbsp;PHP,&nbsp;kedua&nbsp;file&nbsp;ini&nbsp;harus&nbsp;dijalankan&nbsp;dengan&nbsp;XAMPP&nbsp;dan berada&nbsp;di&nbsp;dalam&nbsp;folder&nbsp;htdoc.&nbsp;Untuk&nbsp;contoh&nbsp;kali&nbsp;ini&nbsp;saya&nbsp;akan&nbsp;membuat&nbsp;folder&nbsp;belajar_form&nbsp;di&nbsp;dalam folder&nbsp;htdoc&nbsp;XAMPP,&nbsp;sehingga&nbsp;untuk&nbsp;mengakses&nbsp;kedua&nbsp;halaman&nbsp;adalah&nbsp;dari&nbsp;alamat :&nbsp;http://localhost/belajar_form/form.html&nbsp;danhttp://localhost/belajar_form/proses.php&nbsp;(mengenai&nbsp;cara install&nbsp;dan&nbsp;menggunakan&nbsp;XAMPP&nbsp;telah&nbsp;saya&nbsp;bahas&nbsp;pada&nbsp;tutorial&nbsp;Cara&nbsp;Menjalankan&nbsp;File&nbsp;PHP&nbsp;dengan XAMPP) Sebagai&nbsp;langkah&nbsp;pertama,&nbsp;kita&nbsp;akan&nbsp;membuat&nbsp;fileform.html&nbsp;yang&nbsp;berisi&nbsp;kode&nbsp;HTML&nbsp;sebagai&nbsp;berikut:<br> <br> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17<br> <br> <head> &nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http‐equiv="Content‐Type"&nbsp; content="text/html;&nbsp;charset=UTF‐8"&nbsp;/&gt; &nbsp;&nbsp;&nbsp;<title>Belajar Form PHP</title> </head> &nbsp; <body> &nbsp;&nbsp;&nbsp;<h2>Tutorial&nbsp;Belajar&nbsp;Form&nbsp;HTML&nbsp;‐&nbsp;PHP&nbsp; </h2> &nbsp;&nbsp;&nbsp;<form action="proses.php" method="get"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nama:&nbsp;<input type="text" name="nama" > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E‐Mail:&nbsp;<input type="text" name="email" =""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="proses data" =""> &nbsp;&nbsp;&nbsp; </input type="submit" value="proses ></br ></input type="text" ></br ></input type="text" name="nama" ></form action="proses.php" method="get"></body> </div></div></div></div></div></div></div></div></body></html><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><input type=”text” name=”nama” >,&nbsp;maka&nbsp;untuk&nbsp;mengakses&nbsp;nilainya&nbsp;adalah dengan&nbsp;$_GET[‘nama’],&nbsp;dan&nbsp;untuk&nbsp;tag<input type=”text” name=”email” >&nbsp;diakses&nbsp;dengan nilai$_GET[‘email’]. Sebagai&nbsp;latihan,&nbsp;silahkan&nbsp;anda&nbsp;mengganti&nbsp;atribut&nbsp;methoddalam&nbsp;file&nbsp;form.html&nbsp;menjadi:<br> <br> <form action="proses.php" method="post"> Lalu&nbsp;ubah&nbsp;juga&nbsp;file&nbsp;proses.php&nbsp;menjadi:<br> <br> 1 2 3 4 5<br> <br> "; &nbsp;&nbsp;&nbsp;echo&nbsp;$_POST['email']; ?&gt;<br> <br> Dan&nbsp;PHP&nbsp;akan&nbsp;menampilkan&nbsp;hasil&nbsp;yang&nbsp;sama,&nbsp;namun&nbsp;kali&nbsp;ini&nbsp;form&nbsp;dikirim menggunakan&nbsp;method=post.<br> <br> Di&nbsp;dalam&nbsp;tutorial&nbsp;kali&nbsp;ini&nbsp;kita&nbsp;telah&nbsp;membahas&nbsp;dasar&nbsp;Cara&nbsp;Menampilkan&nbsp;Hasil&nbsp;Form&nbsp;HTML&nbsp;dengan PHP,&nbsp;namun&nbsp;apa&nbsp;yang&nbsp;kita&nbsp;bahas&nbsp;disini&nbsp;hanya&nbsp;cara&nbsp;paling&nbsp;dasar&nbsp;untuk&nbsp;menampilkan&nbsp;nilai&nbsp;form dengan&nbsp;PHP.&nbsp;Dalam&nbsp;tutorial&nbsp;Form&nbsp;PHP&nbsp;selanjutnya&nbsp;kita&nbsp;akan&nbsp;membahas&nbsp;lebih&nbsp;dalam&nbsp;tentang perbedaan&nbsp;pengiriman&nbsp;form&nbsp;dengan&nbsp;method&nbsp;GET&nbsp;dan&nbsp;POST.<br> <br> 4<br> <br> Keunggulan&nbsp;dan&nbsp;Kelemahan&nbsp;Method&nbsp;Form&nbsp;‘GET’ Kelemahan&nbsp;yang&nbsp;paling&nbsp;jelas&nbsp;jika&nbsp;kita&nbsp;menggunakanmethod=get&nbsp;adalah&nbsp;nilai&nbsp;dari&nbsp;form&nbsp;dapat&nbsp;dilihat langsung&nbsp;di&nbsp;dalam&nbsp;URL&nbsp;yang&nbsp;dikirimkan.&nbsp;Jika&nbsp;anda&nbsp;membuat&nbsp;formuntuk&nbsp;datadata&nbsp;yang&nbsp;sensitif seperti&nbsp;password,&nbsp;maka&nbsp;form&nbsp;dengan&nbsp;method=get&nbsp;bukanlah&nbsp;pilihan&nbsp;yang&nbsp;tepat. Form&nbsp;dengan&nbsp;method=get&nbsp;disarankan&nbsp;untuk&nbsp;form&nbsp;yang&nbsp;berfungsi&nbsp;menampilkan&nbsp;data,&nbsp;yaitu&nbsp;dimana hasil&nbsp;isian&nbsp;form&nbsp;hanya&nbsp;digunakan&nbsp;untuk&nbsp;menampilkan&nbsp;data,&nbsp;sesuai&nbsp;dengan&nbsp;arti&nbsp;kata&nbsp;get&nbsp;yang&nbsp;bisa berarti:&nbsp;‘ambil’.&nbsp;Sehinggamethod=get&nbsp;sebaiknya&nbsp;digunakan&nbsp;untuk&nbsp;form&nbsp;yang&nbsp;‘mengambil’&nbsp;data&nbsp;dari database. Salah&nbsp;satu&nbsp;penggunaan&nbsp;method=get&nbsp;yang&nbsp;umum&nbsp;digunakan&nbsp;adalah&nbsp;pada&nbsp;form&nbsp;pencarian&nbsp;(form search).&nbsp;Dengan&nbsp;membuat&nbsp;hasil&nbsp;inputan&nbsp;form&nbsp;terlihat&nbsp;jelas&nbsp;dalamURL,&nbsp;pengunjung&nbsp;web&nbsp;bisa&nbsp;dengan mudah&nbsp;menebak&nbsp;‘alur&nbsp;kerja’&nbsp;dari&nbsp;situs&nbsp;kita.&nbsp;Bahkan&nbsp;pengunjung&nbsp;bisa&nbsp;membuat&nbsp;aplikasi&nbsp;pencarian sendiri&nbsp;dengan&nbsp;memanfaatkan&nbsp;fasilitas&nbsp;ini. Sebagai&nbsp;contoh,&nbsp;di&nbsp;dalam&nbsp;situs&nbsp;duniailkom,&nbsp;kotak&nbsp;inputsearch&nbsp;di&nbsp;kanan&nbsp;atas&nbsp;halaman&nbsp;ini&nbsp;dibuat denganmethod=get.&nbsp;Misalkan&nbsp;kita&nbsp;ingin&nbsp;mencari&nbsp;seluruh&nbsp;postingan&nbsp;yang&nbsp;berkaitan&nbsp;dengan&nbsp;‘Form PHP’,&nbsp;maka&nbsp;kita&nbsp;bisa&nbsp;mengetikkan&nbsp;kata&nbsp;‘Form&nbsp;PHP’,&nbsp;kemudian&nbsp;menklik&nbsp;tombolenter&nbsp;di&nbsp;keyboard. Beberapa&nbsp;saat&nbsp;kemudian,&nbsp;hasil&nbsp;pencarian&nbsp;akan&nbsp;ditampilkan.&nbsp;Jika&nbsp;diperhatikan&nbsp;alamat&nbsp;URL&nbsp;pada&nbsp;web browser,&nbsp;akan&nbsp;berubah&nbsp;menjadi: http://www.duniailkom.com/?s=form+php&amp;submit=Search Hasil&nbsp;URL&nbsp;ini&nbsp;merupakan&nbsp;query&nbsp;pencarian&nbsp;default&nbsp;yang&nbsp;digunakan&nbsp;oleh&nbsp;wordpress&nbsp;(CMS&nbsp;yag digunakan&nbsp;diduniailkom). Setelah&nbsp;nama&nbsp;domain&nbsp;www.duniailkom.com,&nbsp;selanjutnya&nbsp;kita&nbsp;melihat&nbsp;karakter&nbsp;? s=form+php&amp;submit=Search.&nbsp;Karakterkarakter&nbsp;ini&nbsp;adalah&nbsp;hasil&nbsp;format&nbsp;form&nbsp;dengan&nbsp;metode=get. Tanda&nbsp;?&nbsp;menandakan&nbsp;awal&nbsp;nilai&nbsp;form,&nbsp;tanda&nbsp;+&nbsp;untuk&nbsp;menandakan&nbsp;spasi,&nbsp;dan&nbsp;tanda&nbsp;&amp;&nbsp;untuk memisahkan&nbsp;objek&nbsp;form.&nbsp;Dengan&nbsp;memanfaatkan&nbsp;keterangan&nbsp;ini,&nbsp;kita&nbsp;bisa&nbsp;melakukan&nbsp;pencarian hanya&nbsp;melalui&nbsp;URL&nbsp;secara&nbsp;lansung,&nbsp;tanpa&nbsp;harus&nbsp;melalui&nbsp;form. Sebagai&nbsp;contoh,&nbsp;jika&nbsp;anda&nbsp;ingin&nbsp;mencari&nbsp;semua&nbsp;postingan&nbsp;dengan&nbsp;kata&nbsp;kunci&nbsp;‘Integer&nbsp;dalam&nbsp;PHP’, maka&nbsp;anda&nbsp;bisa&nbsp;menggunakan&nbsp;link&nbsp;berikut: http://www.duniailkom.com/?s=integer+dalam+php&amp;submit=Search Untuk&nbsp;mengujinya,&nbsp;silahkan&nbsp;copypaste&nbsp;text&nbsp;tersebut&nbsp;keaddress&nbsp;bar&nbsp;web&nbsp;browser,&nbsp;dan situs&nbsp;duniailkom&nbsp;akan&nbsp;langsung&nbsp;menampilkan&nbsp;hasil&nbsp;pencarian&nbsp;dengan&nbsp;kata&nbsp;kunci&nbsp;‘Integer&nbsp;dalam PHP’.&nbsp;Hal&nbsp;ini&nbsp;membuat&nbsp;halaman&nbsp;web&nbsp;menjadi&nbsp;lebih&nbsp;fleksibel. Untuk&nbsp;contoh&nbsp;lainnya,&nbsp;jika&nbsp;anda&nbsp;mengikuti&nbsp;tutorial&nbsp;Form&nbsp;HTML&nbsp;ini&nbsp;dari&nbsp;Part&nbsp;1,&nbsp;maka&nbsp;kita&nbsp;memiliki file&nbsp;proses.phpyang&nbsp;berfungsi&nbsp;untuk&nbsp;memproses&nbsp;hasil&nbsp;form.&nbsp;Fleksibilitas&nbsp;yang&nbsp;diberikan&nbsp;oleh variabel&nbsp;$_GET&nbsp;membuat&nbsp;kita&nbsp;bisa&nbsp;menampilkan&nbsp;nilai&nbsp;dalam&nbsp;proses.php&nbsp;tanpa&nbsp;menggunakan&nbsp;form 5<br> <br> sama&nbsp;sekali. Jika&nbsp;isi&nbsp;dari&nbsp;file&nbsp;proses.php&nbsp;adalah: 1 2 3 4 5<br> <br> "; echo&nbsp;$_GET['email']; ?&gt;<br> <br> Kita&nbsp;bisa&nbsp;membuat&nbsp;langkah&nbsp;yang&nbsp;sama&nbsp;seperti&nbsp;contoh&nbsp;di&nbsp;dalam&nbsp;pencarian&nbsp;‘Integer&nbsp;dalam PHP’&nbsp;sebelumnya.&nbsp;Sekarang&nbsp;copy&nbsp;paste&nbsp;URL&nbsp;berikut&nbsp;ini&nbsp;kedalam&nbsp;address&nbsp;bar&nbsp;web browser&nbsp;(pastikan&nbsp;aplikasi&nbsp;XAMPP&nbsp;sudah&nbsp;berjalan&nbsp;dan&nbsp;fileproses.php&nbsp;berada&nbsp;di&nbsp;dalam folder&nbsp;belajar_form): http://localhost/belajar_form/proses.php?nama=fajar&amp;email=fajar%40gmail.com<br> <br> Dan&nbsp;hasil&nbsp;tampilan&nbsp;halaman&nbsp;proses.php&nbsp;akan&nbsp;menampilkan&nbsp;nama&nbsp;fajar&nbsp;dan&nbsp;alamat email&nbsp;<a target="_blank" href="https://adoc.pub/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="73151219120133141e121a1f5d101c1e5d">[email&nbsp;protected]</a>&nbsp;Hasil&nbsp;ini&nbsp;didapat&nbsp;hanya&nbsp;dengan&nbsp;menginput&nbsp;nama&nbsp;tersebut&nbsp;dengan&nbsp;URL&nbsp;(tanpa form). Dari&nbsp;contoh&nbsp;ini&nbsp;kita&nbsp;bisa&nbsp;melihat&nbsp;bahwa&nbsp;PHP&nbsp;mendeteksi&nbsp;nilai&nbsp;dari&nbsp;method=get,&nbsp;hanya&nbsp;berdasarkan URL&nbsp;yang&nbsp;diberikan.&nbsp;Cara&nbsp;‘mengakali’&nbsp;variabel&nbsp;$_GET&nbsp;tanpa&nbsp;form&nbsp;ini&nbsp;sering&nbsp;digunakan&nbsp;sebagai sarana&nbsp;untuk&nbsp;mengirim&nbsp;sebuah&nbsp;nilai&nbsp;dari&nbsp;satu&nbsp;halaman&nbsp;PHP&nbsp;ke&nbsp;halaman&nbsp;lainnya&nbsp;(sering&nbsp;digunakan untuk&nbsp;menampilkan&nbsp;pesan&nbsp;error&nbsp;kepada&nbsp;user). Karena&nbsp;sifat&nbsp;method=get&nbsp;yang&nbsp;harus&nbsp;menggunakan&nbsp;URLuntuk&nbsp;mengirim&nbsp;data&nbsp;form,&nbsp;PHP&nbsp;membatasi hanya&nbsp;bisa&nbsp;memproses&nbsp;1024&nbsp;karakter&nbsp;saja.&nbsp;Sehingga&nbsp;jika&nbsp;anda&nbsp;memiliki&nbsp;form&nbsp;yang&nbsp;isinya kemungkinan&nbsp;akan&nbsp;melebihi&nbsp;1024&nbsp;karakter,&nbsp;sebaiknya&nbsp;menggunakan&nbsp;method=post.<br> <br> Keunggulan&nbsp;dan&nbsp;Kelemahan&nbsp;Method&nbsp;Form&nbsp;‘POST’ Keuntungan&nbsp;mengunakan&nbsp;method=post&nbsp;dalam&nbsp;pembuatan&nbsp;form&nbsp;PHP&nbsp;adalah&nbsp;bahwa&nbsp;isi&nbsp;dari&nbsp;form tidak&nbsp;ditampilkan&nbsp;diURL,&nbsp;sehingga&nbsp;method&nbsp;ini&nbsp;sesuai&nbsp;untuk&nbsp;datadata&nbsp;yang&nbsp;bersifat&nbsp;sensitif seperti&nbsp;username&nbsp;dan&nbsp;password. Sesuai&nbsp;dengan&nbsp;namanya,&nbsp;method=post&nbsp;disarankan&nbsp;digunakan&nbsp;untuk&nbsp;form&nbsp;yang&nbsp;digunakan&nbsp;untuk 6<br> <br> menambah&nbsp;data&nbsp;(posting&nbsp;data)&nbsp;atau&nbsp;sebuah&nbsp;proses&nbsp;yang&nbsp;akan&nbsp;mengubah&nbsp;isi&nbsp;database,&nbsp;seperti query&nbsp;Insert,&nbsp;Delete.&nbsp;Contoh&nbsp;penggunaan&nbsp;method=post&nbsp;ini&nbsp;sering&nbsp;digunakan&nbsp;untuk&nbsp;form register&nbsp;dan&nbsp;form&nbsp;login&nbsp;yang&nbsp;diaggap&nbsp;bersifat&nbsp;rahasia. Jika&nbsp;kita&nbsp;membuat&nbsp;form&nbsp;untuk&nbsp;keperluan&nbsp;upload&nbsp;file&nbsp;(menggunakan&nbsp;tag&nbsp;<input type=file>),&nbsp;maka&nbsp;kita harus&nbsp;membuat&nbsp;form&nbsp;dengan&nbsp;method=post.<br> <br> Sebagai&nbsp;kesimpulan&nbsp;terakhir,&nbsp;pilihan&nbsp;antara&nbsp;method=getdengan&nbsp;method=post&nbsp;bergantung&nbsp;kepada tingkatsensitifitas&nbsp;data.&nbsp;Untuk&nbsp;data&nbsp;yang&nbsp;sensitif&nbsp;seperti&nbsp;passwordatau&nbsp;yang&nbsp;melakukan&nbsp;suatu perubahan&nbsp;ke&nbsp;database,&nbsp;sebaiknya&nbsp;menggunakan&nbsp;method=post.&nbsp;Namun&nbsp;untuk&nbsp;data&nbsp;yang&nbsp;ditujukan untuk&nbsp;menampilkan,&nbsp;atau&nbsp;mengambil&nbsp;sesuatu&nbsp;dari&nbsp;database,&nbsp;sebaiknya&nbsp;menggunaanmethod=get.<br> <br> 7<br> <br> Pengertian&nbsp;Variabel&nbsp;SuperGlobal&nbsp;dalam&nbsp;PHP Variabel&nbsp;$_GET&nbsp;dan&nbsp;$_POST&nbsp;(dan&nbsp;juga&nbsp;$_REQUEST)&nbsp;di&nbsp;dalam&nbsp;PHP&nbsp;termasuk&nbsp;ke&nbsp;dalam&nbsp;kelompok variabel&nbsp;yang&nbsp;dikenal&nbsp;dengan&nbsp;‘Variabel&nbsp;SuperGlobal’. Variabel&nbsp;SuperGlobals&nbsp;adalah&nbsp;variabel&nbsp;khusus&nbsp;di&nbsp;dalam&nbsp;PHP&nbsp;yang&nbsp;bisa&nbsp;diakses&nbsp;dari&nbsp;halaman&nbsp;PHP manapun&nbsp;tanpa&nbsp;perlu&nbsp;mendefinisikannya&nbsp;terlebih&nbsp;dahulu,&nbsp;dan&nbsp;untuk&nbsp;mengakses&nbsp;variabel&nbsp;ini&nbsp;kita&nbsp;juga tidak&nbsp;perlu&nbsp;menggunakan&nbsp;keyword&nbsp;global&nbsp;(sebagaimana&nbsp;variabel&nbsp;global&nbsp;pada&nbsp;umumnya) Selain&nbsp;variabel&nbsp;$_GET,&nbsp;$_POST&nbsp;dan&nbsp;$_REQUEST,&nbsp;PHP&nbsp;masih&nbsp;memiliki&nbsp;beberapa variabel&nbsp;superglobal&nbsp;lainnya&nbsp;seperti$_COOKIE,&nbsp;$_SESSION,&nbsp;dan&nbsp;$_SERVER.&nbsp;Ciri&nbsp;khusus&nbsp;untuk variabel&nbsp;global&nbsp;di&nbsp;dalam&nbsp;PHP,&nbsp;diawali&nbsp;dengan&nbsp;tanda&nbsp;$_.Namun&nbsp;pada&nbsp;tutorial&nbsp;ini&nbsp;kita&nbsp;hanya&nbsp;fokus kepada&nbsp;variabel$_GET,&nbsp;$_POST&nbsp;dan&nbsp;$_REQUEST. Variabel&nbsp;$_GET,&nbsp;$_POST&nbsp;dan&nbsp;$_REQUEST&nbsp;merupakan&nbsp;tipe&nbsp;data&nbsp;array,&nbsp;sehingga&nbsp;untuk mengakses&nbsp;nilainya,&nbsp;kita&nbsp;menggunakan&nbsp;cara&nbsp;akses&nbsp;array&nbsp;yakni&nbsp;dengan&nbsp;menggunakan&nbsp;kurung&nbsp;siku seperti:&nbsp;$_GET[‘nama’]&nbsp;dimana&nbsp;nama&nbsp;adalah&nbsp;nilai&nbsp;dari&nbsp;atribut&nbsp;name&nbsp;pada&nbsp;objek&nbsp;form&nbsp;yang&nbsp;akan diakses.<br> <br> Perbedaan&nbsp;variabel&nbsp;global&nbsp;$_GET,&nbsp;$_POST&nbsp;dan $_REQUEST Seperti&nbsp;yang&nbsp;telah&nbsp;kita&nbsp;praktekkan&nbsp;dalam&nbsp;tutorial&nbsp;Cara&nbsp;Menampilkan&nbsp;Hasil&nbsp;Form&nbsp;HTML&nbsp;dengan&nbsp;PHP, kita&nbsp;telah&nbsp;mengetahui&nbsp;bahwa&nbsp;jika&nbsp;form&nbsp;dikirim&nbsp;menggunaanmethod=get&nbsp;maka&nbsp;di&nbsp;dalam&nbsp;PHP&nbsp;kita mengaksesnya&nbsp;dengan&nbsp;variabel&nbsp;$_GET,&nbsp;namun&nbsp;jika&nbsp;form&nbsp;dibuat&nbsp;menggunakan&nbsp;method=post,&nbsp;kita mengaksesnya&nbsp;dengan&nbsp;variabel&nbsp;$_POST. Bagaimana&nbsp;jika&nbsp;pada&nbsp;saat&nbsp;memproses&nbsp;form&nbsp;kita&nbsp;tidak&nbsp;mengetahui&nbsp;dengan&nbsp;pasti&nbsp;apakah&nbsp;form&nbsp;dikirim dengan&nbsp;GETatau&nbsp;POST?&nbsp;PHP&nbsp;menyediakan&nbsp;variabel&nbsp;$_REQUEST&nbsp;sebagai&nbsp;salah&nbsp;satu&nbsp;solusinya. Variabel&nbsp;$_REQUEST&nbsp;menampung&nbsp;nilai&nbsp;form&nbsp;yang&nbsp;dikirim&nbsp;dengan&nbsp;method=get, maupunmethod=post&nbsp;secara&nbsp;bersamaan. Untuk&nbsp;mencobanya,&nbsp;silahkan&nbsp;jalankan&nbsp;file&nbsp;form.htmldengan&nbsp;isi&nbsp;kode&nbsp;HTML&nbsp;sebagai&nbsp;berikut:<br> <br> 1 2 3 4 5 6 7 8 9 10 11 12 13<br> <br> <head> &nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http‐equiv="Content‐Type"&nbsp; content="text/html;&nbsp;charset=UTF‐8"&nbsp;/&gt; &nbsp;&nbsp;&nbsp;<title>Belajar Form PHP</title> </head> <body> &nbsp;&nbsp;&nbsp;<h2>Tutorial&nbsp;Belajar&nbsp;Form&nbsp;HTML&nbsp;‐&nbsp;PHP&nbsp; </h2> &nbsp;&nbsp;&nbsp;<form action="proses.php" method="get"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nama:&nbsp;<input type="text" name="nama" > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br > 8<br> <br> 14 15 16<br> <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E‐Mail:&nbsp;<input type="text" name="email" =""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="proses data" =""> &nbsp;&nbsp;&nbsp; <script data-cfasync="false"></div></div></div></div></div></div></div></div></body> <br> <br> Halaman form.html diatas persis sama dengan yang kita gunakan pada tutorial sebelumnya, namun untuk halamanproses.php, kita akan modifikasi dengan menggunakan variabel $_REQUEST:<br> <br> 1 2 3 4 5<br> <br> "; echo $_REQUEST['email']; ?><br> <br> Jika anda menjalankan form.html dan menklik tombol ‘Proses Data’, maka hasil form akan ditampilkan sebagaimana mestinya. Anda juga bisa mengubah method form menjadi post, dan variabel $_REQUEST akan tetap menampilkan hasil form. Jadi, variabel apa yang sebaiknya digunakan? apakah $_GET, $_POST atau $_REQUEST? Jawabannya tergantung kepada desain kode program yang dirancang. Jika anda dapat memastikan bahwa form akan dikirim denganmethod=get, maka gunakan variabel $_GET, jika from anda menggunakan method=post, maka gunakan $_POST, namun jika metodanya tidak dapat dipastikan, variabel superglobal $_REQUEST bisa menjadi solusi. Selain menampung hasil form get dan post, variabel $_REQUEST juga menampung nilai daricookie, atau variabel superglobals $_COOKIE. Kita akan membahas tentang cookie dalam tutorial PHP lainnya.<br> <br> 9<br> <br> Pentingnya Melakukan Validasi Nilai Form Nilai yang telah diinput oleh user atau pengunjung web, tidak bisa begitu saja di simpan langsung ke dalam database. Karena kita tidak tahu apakah nilai tersebut telah sesuai dengan nilai yang kita kehendaki. Misalkan apakah nilai tersebut harus berupa angka, atau hanya bisa berupa huruf, atau apakah hanya bisa diinput dalam range tertentu saja. Dalam kasus yang ekstrim, seorang user bisa saja memasukkan kode scriptatau tag HTML yang bisa merusak situs kita, hal ini dikenal dengan Crosssite Scripting. Sebuah proses validasi nilai merupakan hal yang sangat penting dalam merancang form. Khusus untuk validasi mencegah Crosssite Scripting dan juga HTML injection ini akan saya bahas pada tutorial form PHP berikutnya. Dalam pembahasan tutorial validasi form ini, saya masih menggunakan contoh halaman form.html yang pernah kita buat pada tutorial sebelumnya, berikut adalah kode HTML untuk halaman form.html: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16<br> <br> <head> <meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8" /> <title>Belajar Form PHP</title> </head> <body> <h2>Tutorial Belajar Form HTML ‐ PHP </h2> <form action="proses.php" method="get"> Nama: <input type="text" name="nama" > <br > E‐Mail: <input type="text" name="email" > <br > <input type="submit" value="proses data" > </input type="submit" value="proses data" ></br ></input type="text" name="email" ></br ></input type="text" name="nama" ></form action="proses.php" method="get"></body> <br> <br> 10<br> <br> Memeriksa Ketersediaan Variabel Form dengan Fungsi isset() Validasi pertama yang paling sederhana dan ‘hampir’ selalu ada dalam tiap proses validasi form dalam PHP adalah memeriksa apakah objek form tersebut sudah tersedia atau tidak. Sebagai contoh sederhananya: apakah variabel $_GET[‘nama’] tersedia untuk diproses atau tidak. Proses memeriksa ‘ketersediaan’ variabel ini menjadi penting karena PHPakan mengeluarkan pesan peringatan jika kita mengakses nilai sebuah variabel yang belum didefenisikan terlebih dahulu. Sebagai contoh, jika kita mengakses langsung halaman proses.php (tanpa melalui halaman form.html) dan tanpa menambahkan URL (seperti pembahasan pada tutorial Perbedaan Metode Pengiriman Form GET dan POST) PHP akan menampilkan pesan peringatan seperti berikut ini:<br> <br> Notice: Undefined index adalah pesan error yang terjadi karena kita langsung menampilkan variabel $_GET[’nama’] dan $_GET[’email’] yang memang belum diset sebelumnya. Untuk memeriksa apakah sebuah objek form telah didefenisikan atau telah diset sebelumnya, kita bisa menggunakan fungsi bawaan PHP: isset(). Fungsi isset() akan menghasilkan nilai true jika sebuah variabel telah didefenisikan, dan false jika variabel tersebut belum dibuat. Sebagai langkah antisipasi, saya akan membuat proses validasi untuk menangani variabel $_GET yang belum diset, berikut adalah modifikasi fileproses.php:<br> <br> 1 2 3 4 5 6 7<br> <br> "; 11<br> <br> 8 9 10 11 12 13<br> <br> if (isset($_GET['email'])) { echo $_GET['email']; } ?><br> <br> Sekarang, file proses.php tidak akan menghasilkan error apabila diakses tanpa melalui form.html. Namun perubahan kode tersebut tidak terlalu berguna karena tidak memberikan pesan error yang jelas. Berikut adalah modifikasi file proses.php agar lebih informatif:<br> <br> 1 2 3 4 5 6 7 8 9 10 11<br> <br> <br> <br> Pada kode PHP diatas saya mengharuskan nilai $_GET[‘nama’] dan$_GET[‘email’] tersedia, baru nilai ditampilkan, namun jika tidak ada, akan ditampilkan pesan bahwa halaman ini hanya bisa diakses dari form.html.<br> <br> Memeriksa Apakah Variabel Form Telah Diisi Fungsi isset() yang kita bahas sebelumnya hanya memeriksa apakah sebuah objek form ada atau tidak. Fungsi isset() tetap bernilai true meskipun user tidak mengisi form sama sekali (variabel form bernilai kosong, namun variabel tersebut dianggap telah diset). Untuk memeriksa apakah sebuah objek form telah diisi atau tidak, kita bisa menggunakan fungsi: empty(). Fungsi empty() akan menghasilkan nilai false jika sebuah variabel telah diisi, dan bernilai true jika variabel tersebut belum diisi. Dengan menggunakan stuktur IF dan fungsi empty(), kita bisa 12<br> <br> membuat logika validasi objek form mana saja yang dianggap perlu (harus diisi) dan mana yang boleh dikosongkan. Dan kemudian menampilkan pesan error yang sesuai. Sebagai contoh, saya akan memodifikasi file proses.php agar menampilkan pesan error jika kotak input nama tidak diisi. Berikut adalah kode PHP pada halaman proses.php: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20<br> <br> Email: $email"; } else { die("Maaf, anda harus mengisi nama"); } ?><br> <br> Dalam kode PHP diatas, saya memodifikasi beberapa bagian kode program. Pada logika IF pertama, saya melakukan pengecekan apakah variabel$_GET[‘nama’] dan $_GET[‘email’] tersedia atau tidak. Jika tersedia maka pindahkan nilainya ke variabel $nama dan $email agar lebih mudah untuk diproses. Namun jika tidak, fungsi die() akan menghentikan proses dan menampilkan pesan kesalahan. Pada logika IF kedua, saya memeriksa apakah variabel $nama kosong atau tidak dengan fungsi !empty(). Fungsi !empty($nama) akan menghasilkan nilai true hanya jika variabel $nama tidak kosong (perhatikan tanda !sebagai pembalik logika empty()). Namun jika $nama ternyata kosong (tidak diisi), maka tampilkan pesan kesalahan.<br> <br> 13<br> <br> Menyeleksi Tipe Data Objek Form Setelah objek form dipastikan tersedia, tidak kosong, validasi berikutnya yang biasanya dilakukan adalah memastikan tipe data dan range data yang diinput oleh user. Untuk mengecek tipe data sebuah variabel, PHP menyediakan beberapa fungsi tergantung tipe datanya, yakni fungsi is_string(), is_int(),is_float(),is_numeric(),is_bool(), is_array(), dan is_object(). Sesuai dengan namanya, masingmasing fungsi tersebut akan mengecek tipe data dari variabel yang ditest. Diantara fungsifungsi diatas, fungsi is_numeric() mungkin butuh sedikit penjelasan. Fungsi is_numeric() akan mengecek apakah sebuah tipe data merupakan angka baik itu float atau integer. Khusus objek form variabel angka seperti umur, biasanya selain menyeleksi apakah nilainya berupa angka integer, kita mungkin juga menambahkan aturan bahwa nilai umur harus diatas 17 tahun. Untuk menambahkan fungsi ini, fungsi is_int() dapat dikombinasikan dengan struktur IF. Sebagai contoh saya akan menambahkan validasi untuk tag input namabahwa nama tidak boleh diisi dengan angka. Untuk keperluan ini saya akan menggunakan fungsi is_numeric(). Berikut adalah modifikasi file proses.php:<br> <br> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27<br> <br> Email: $email"; } } ?><br> <br> Dalam kode diatas, saya menambahkan 1 lagi logika IF untuk menyeleksi apakah variabel $nama berisi angka numerik (integer atau float). Jika $namabertipe numerik, maka 14<br> <br> tampilkan pesan error.<br> <br> Di dalam tutorial form PHP kali ini kita telah mempelajari cara menvalidasi nilai inputan form. Namun apa yang telah kita pelajari disini hanya sebagian kecil dari proses validasi yang sebenarnya harus dilakukan. Misalnya, untuk menfilter variabel $nama diatas, akan lebih cocok menggunakan regular expression daripada fungsi is_numeric(), namun yang penting kita telah bisa’menangkap’ cara pembuatan validasi form. Di dalam tutorial berikutnya, masih berkaitan dengan proses validasi form, kita akan mempelajari tentang Cara Mencegah Crosssite Scripting dan HTML injection.<br> <br> 15<br> <br> Pengertian Crosssite Scripting dan HTML injection Crosssite Scripting atau sering disingkat dengan XSSadalah jenis serangan ke sebuah situs dengan cara’menyisipkan’ kode script (biasanya JavaScript) ke dalam sebuah situs. Hal ini hanya akan berhasil jika situs tersebut memiliki fitur untuk menampilkan kembali isian form ke web browser, seperti form komentar. Sedangkan HTML injection adalah istilah yang lebih spesifik kepada cara’menyisipkan’ kode HTML kedalam sebuah situs. Sebagai programmer web, penanganan untuk Crosssite Scripting maupun HTML injection merupakan hal yang sangat penting, terutama dalam pembuatan kode form dengan PHP. Karena form pada dasarnya dapat diinput oleh siapa saja, maka kita perlu memproteksi situs dari kodekode berbahaya yang bisa diinput oleh user melalui form.<br> <br> Contoh Crosssite Scripting dan HTML injection Agar lebih memahami maksud dari Crosssite Scriptingdan HTML injection, kita akan coba menginputnya melalui contoh halaman form.html dan proses.php dari tutorial sebelumnya. Silahkan buka halaman form kita (form.html), lalu input kode dibawah ini kedalam dalam salah satu kotak inputan form:<br> <br> <script>alert('Selamat datang di duniailkom') Dan anda akan mendapati tampilan berikut:<br> <br> Tampilan tersebut adalah hasil dari kode JavaScript yang baru saja kita input melalui form. Kode tersebut dapat berjalan karena pada halaman proses.php kita langsung menampilkan data yang 16<br> <br> diinput oleh user tanpa melakukan proses filter. Hal ini sangat berbahaya karena dengan kode JavaScriptseseorang bisa melakukan ’hampir segalanya’ dengan situs kita. Tidak hanya sekedar menampilkan ucapan selamat seperti kode diatas, tetapi seseorang juga bisa merubahbackground, mengubah tampilan seluruh web, bahkan mengarahkan pengunjung ke situs lain (redirect). Hasil diatas saya peroleh menggunakan web browser mozilla firefox. Ketika saya menggunakan google chrome, tampilan javascript tersebut tidak muncul karena google chrome memiliki mekanisme ‘pencegahan‘ kode javascript internal ketika diinput melalui form. Sebagai contoh lainnya, seseorang bisa menginput kode berikut ke dalam kotak input nama: Dunia <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> Ilkom<br> <br> Walaupun kode diatas tidak mengandung script, namun kode HTML tersebut akan membuat tampilan hasil form menjadi berantakan (bayangkan jika kita memiliki halaman yang berisi tabel berisi nama nama seluruh user, dan kode diatas akan menghancurkan desain web yang telah dirancang).<br> <br> Cara Mencegah Crosssite Scripting dan HTML injection Salah satu cara sederhana untuk menghindari Crosssite Scripting dan HTML injection adalah dengan membuat karakterkarakter yang memiliki ’makna’ di dalam HTML dan JavaScript untuk 17<br> <br> diubah menjadi named entity, yaitu menkonversi karakter khusus seperti < menjadi <;, dan karakter > menjadi >;. Atau cara lainnya adalah dengan menghilangkan sama sekali seluruh tag HTML atau scriptdari inputan user. Penjelasan lebih lanjut tentang named entity (dan juga numeric entity) karakter HTML pernah kita bahas pada tutorial Cara Memasukkan Karakter Khusus ke dalam HTML. Untuk kedua keperluan ini, PHP memiliki fungsihtmlspecialchars() dan fungsi strip_tags(). Fungsi htmlspecialchars() akan mengkonversi seluruh karakter ’khusus’ HTML menjadi named entity sehingga tidak akan di ’proses’ oleh web browser. Sedangkan fungsistrip_tags() akan menghapus seluruh tag HTML dari inputan user. Sebagai contoh, kita akan mengupdate halamanproses.php agar bisa mencegah seseorang menyisipkanCrosssite Scripting dan HTML injection. Berikut adalah perintah PHP pada file proses.php:<br> <br> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29<br> <br> Email: $email"; } } ?><br> <br> Di dalam kode diatas, saya hanya menambahkan fungsihtmlspecialchars() untuk variabel $nama, dan fungsistrip_tags () untuk variabel $email. 18<br> <br> Untuk mengujinya, silahkan anda coba memasukkan kode JavaScript kita sebelumnya ke dalam kotak input nama, yakni: <script> alert('Selamat datang di duniailkom') <br> <br> dan nilai berikut ke dalam kotak input email: Dunia <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> Ilkom<br> <br> Kemudian perhatikan hasil tampilan dari proses.php. Seperti yang dirancang, kali ini hasil inputan tersebut akan difilter agar lebih aman. Jika anda melihat kode yang dihasilkan, maka akan terlihat bahwa fungsi htmlspecialchars() akan mengubah<br> <br> <script> alert('Selamat datang di duniailkom') menjadi<br> <br> <script> alert('Selamat datang di duniailkom') Perhatikan bahwa karakter khusus seperti < dan > telah diubah menjadi named entity. Sedangkan untuk kotak inputan email, seluruh tag <br>telah di filter dan dihapus secara otomatis.<br> <br> 19<br> <br> Validasi dengan htmlspecialchars atau strip_tags? Pilihan apakan menggunakan fungsi htmlspecialchars()atau strip_tags() tergantung kepada alur logika form yang kita buat. Untuk isian form seperti user_name, email, danalamat akan lebih aman jika kita tidak membolehkan tag HTML sama sekali (menggunakan fungsi strip_tags()), namun untuk kotak form komentar, mungkin kita akan membolehkan beberapa tag untuk diproses seperti tag <b>, tag <i>, atau mungkin juga tag <a>. Fungsi strip_tags() memiliki argumen kedua yang bisa diisi dengan tagtag HTML apa saja yang ’dibolehkan’. Jika kita membolehkan tag <a>, <b> dan tag <i> untuk variabel$komentar, maka penulisannya bisa dibuat menjadi:<br> <br> $komentar=strip_tags($komentar, '<a><b><i>'). Sedangkan untuk fungsi htmlspecialchars(), jika anda ingin karakter tanda kutip ( ’ ) juga diubah menjadi named entity, kita bisa menambahkan 1 parameter optional untuk fungsi htmlspecialchars(), dengan pilihan ENT_QUOTES. Sehingga dalam contoh variabel $nama, kita bisa menulisnya menjadi:<br> <br> $nama=htmlspecialchars($nama, ENT_QUOTES); Dengan demikian, jika diinput:<br> <br> <script>alert('Selamat datang di duniailkom') Akan diproses menjadi:<br> <br> <script> alert('Selamat datang di duniailkom') 20<br> <br> Perhatikan bahwa karakter kutip ( ‘ ) diganti menjadi kode'.<br> <br> Dalam tutorial kali ini, kita telah membahas penggunaan fungsi htmlspecialchars(), dan fungsi strip_tags() untukmembuat form kita lebih aman. Dalam tutorial berikutnya, kita akan membahas trik dalam menampilkan pesan kesalahan di halaman form.html, bukan di halamanproses.php seperti yang kita tampilkan pada tutorial ini dan tutorial form PHP sebelumnya.<br> <br> 21<br> <br> Cara Mengirim Variabel Antar Halaman PHP Dalam PHP terdapat beberapa cara untuk mengirimvariabel antar halaman. Salah satunya adalah dengan memanfaatkan cara pengiriman form denganmethod=GET. Jika kita mengirim form dengan metode GET, maka hasil dari form akan ditambahkan di dalam menggunakan variabel superglobal $_GET. Sebagai contoh, jika di dalam form terdapat kotak input dengan atribut name=user_name yang diisi dengan’duniailkom’, maka ketika dikirim untuk diproses ke halaman proses.php, di dalam URL akan menjadi:<br> <br> proses.php?user_name=duniailkom dan didalam halaman proses.php, variabel$_GET[’user_name’] akan berisi ’duniailkom’. Dengan cara ini kita bisa mengirim variabel dari sebuah halaman ke halaman lain. Misalkan kita membuat sebuah kondisi logika dengan PHP, dan jika logikanya salah maka tampilkan sebuah link yang menyatakan bahwa alamat tidak lengkap. Pengiriman pesan ini bisa ditulis sebagai berikut:<br> <br> proses.php?pesan=alamat+tidak+lengkap. Ketika user menklik link tersebut, pada halamanproses.php akan memiliki sebuah variabel $_GET[’pesan’]yang berisi: ’alamat tidak lengkap’. Kita bisa memanfaatkan ini untuk berbagai hal, dan dalam tutorial kali ini kita akan menggunakan cara ini untuk menampilkan pesan kesalahan dari form.<br> <br> Untuk dapat mengirimkan variabel melalui URL, terdapat beberapa aturan penggunaan karakter. Berikut adalah contoh hasil pengiriman dari sebuah halaman:<br> <br> proses.php? <span class="__cf_email__" data-cfemail="127c737f732f76677c7b734d7b7e797d7f34777f737b7e2f76677c7b737b7e797d7f52757f737b7e3c717d7f">[email protected]</span>&pesan=welcome perhatikan bahwa tanda ’?’ digunakan untuk mengawali pengiriman variabel, tanda ’=’digunakan sebagai pengisi nilai variabel, tanda’&’ untuk memisah’kan antara variabel yang satu dengan yang lain, dan tanda ’+’ sebagai pengganti karakter ’spasi’.<br> <br> Redirect halaman dengan fungsi header(Location:) Fungsi header() di dalam PHP digunakan untuk memprosesHTTP header. Fungsi header() memiliki banyak fitur, namun yang akan kita manfaatkan adalah fitur untuk mengirim user ke halaman lain atau dikenal dengan istilah:redirect. Untuk ’mengirim’ user ke sebuah halaman, kita menggunakan Location:halaman.html sebagai 22<br> <br> argumen fungsi header(). Misalkan kita ingin mengirim user ke halaman pendaftaran.html pada situs duniailkom.com, maka penulisan fungsi header() adalah sebagai berikut: header("Location: http://www.duniailkom.com/pendaftaran.html") Halaman yang dituju tidak harus berupa halaman HTML, tetapi juga halaman PHP, atau bahkan file multimedia seperti gambar. Fitur ini akan kita manfaatkan untuk menampilkan pesan kesalahan form dalam PHP.<br> <br> Cara Menampilkan Pesan Kesalahan Form Dalam tutorial sebelumnya tentang Validasi Form untuk Mencegah Crosssite Scripting dan HTML injection, kita telah membuat proses validasi form dan menampilkan pesan kesalahan form berdasarkan kondisi yang terjadi. Namun pesan kesalahan tersebut hanya ditampilkan pada halaman proses.php. Jika user ingin mengubah isian form, ia terpaksa kembali kehalaman form.html untuk memperbaiki kesalahan form tersebut dengan cara mengetik manual di web browser. Salah satu fitur pengisian form yang umum digunakan adalah ketika isian form ditemukan kesalahan, maka user akan dikembalikan ke halaman awal form, beserta pesan kesalahan. Untuk menghasilkan fitur seperti ini, kita akan memanfaatkan fungsi PHP: header(). Kembali menggunakan halaman form.html danproses.php yang kita gunakan dalam tutorialtutorial sebelumnya, kali ini saya akan memodifikasi halamanproses.php agar bisa memanfaatkan fungsi header().Berikut adalah modifikasi file proses.php: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25<br> <br> <br> 26 27 28 29<br> <br> error=nama_harus_huruf"); } else { echo "Nama: $nama <br > Email: $email"; } } ?><br> <br> Dari kode proses.php kita sebelumnya, saya hanya mengubah bagian error menggunakan fungsi header(). Namun perhatikan bahwa saya mengirimkan variabel error kepada halaman form.php, pesan inilah yang akan diproses pada halaman form.php. Untuk halaman form.html, saya akan mengubah nama file menjadi form.php. Perubahan ini diperlukan karena pada halaman form.html memerlukan proses PHP untuk menangani variabel error yang dikirim dari halamanproses.php. Berikut adalah kode dari halaman form.php:<br> <br> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38<br> <br> Maaf, anda harus mengakses halaman ini dari form.php"; } if ($error=="nama_kosong") { $pesan="<h3>Maaf, anda harus mengisi nama</h3>"; } if ($error=="nama_harus_huruf") { $pesan="<h3>Maaf, nama harus berupa huruf</h3>"; } ?> <head> <meta http‐equiv="Content‐Type" content="text/html; charset=UTF‐8" /> <title>Belajar Form PHP</title> </head> <body> <h2>Tutorial Belajar Form HTML ‐ PHP 24<br> <br> 39 40 41 42 43 44 45 46<br> <br> </h2> <form action="proses.php" method="get"> Nama: <input type="text" name="nama" > <br > E‐Mail: <input type="text" name="email" =""> <br > <input type="submit" value="proses data" =""> <script data-cfasync="false"> |