Cara menampilkan hasil inputan form html dengan html

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