BAB 7
APLIKASI
KOMENTAR
DAN
VALIDASINYA
Anda memiliki sebuah usaha yang juga memiliki website sebagai sarana berkomunikasi dengan konsumen. Di dalam website tersebut seorang pengunjung website atau konsumen Anda dapat memberikan testimoni atau komentarnya.
Namun Anda juga tidak ingin komentar yang dimasukkan ke dalam website begitu saja tampil padahal isinya merugikan perusahaan. Ini artinya setiap komentar yang masuk ke dalam website akan disaring terlebih dahulu oleh web administrator untuk disetujui dan diubah sebelum akhirnya ditampilkan di website atau bahkan dihapus jika isinya menggunakan kata-kata kasar yang tidak layak untuk ditampilkan.
Form untuk memasukkan komentar juga akan menggunakan filter sehingga orang-orang yang berniat jahat hanya benar-benar bisa memasukkan teks dan bukan link atau gambar misalnya. Kita akan menggunakan fungsi
htlmspecialcharacters untuk memblok HTML Injection yang mungkin
dilakukan melalui form.
Tutorial ini akan menggunakan dua buah tabel data, yaitu:
Tabel basic5_admin, untuk menyimpan data web administrator yang nantinya bertugas untuk menyetujui, tidak menyetujui atau bahkan menghapus komentar. Halaman management komentar akan dilindungi oleh username dan password. Berikut ini adalah data admin tersebut:
CREATE TABLE IF NOT EXISTS `basic5_admin` ( `id` int(5) NOT NULL AUTO_INCREMENT, `nama` varchar(64) NOT NULL,
`username` varchar(64) NOT NULL, `password` varchar(64) NOT NULL, PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `basic5_admin` (`id`, `nama`, `username`, `password`) VALUES
(1, 'Andoyo', 'andoyo', 'andoyo');
Tabel basic5_komentar, untuk menyimpan semua data komentar yang dimasukkan oleh konsumen atau pengunjung website
CREATE TABLE IF NOT EXISTS `basic5_komentar` ( `id_komentar` int(5) NOT NULL AUTO_INCREMENT, `nama_komentar` varchar(50) NOT NULL,
`email_komentar` varchar(50) NOT NULL, `isi_komentar` mediumtext NOT NULL, `status_komentar` tinyint(1) NOT NULL, `validator_komentar` int(5) NOT NULL, PRIMARY KEY (`id_komentar`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Tutorial ini menggunakan tujuh (7) file PHP, ketujuh file PHP tersebut adalah:
komentar.php, adalah halaman untuk menampilkan komentar dan sekaligus terdapat form untuk memasukkan komentar
terimakasih.php, adalah halaman pengalihan sebagai pemberitahuan jika proses memasukkan komentar telah berhasil dilakukan
login.php, digunakan sebagai halaman login agar dapat masuk ke halaman admin.php untuk mengelola komentar
logout.php, adalah halaman pengalihan jika proses log out berhasil dilakukan
admin.php, adalah halaman Management Komentar yang telah dimasukkan oleh pengunjung website
edit_komentar.php, adalah halaman yang digunakan untuk mengubah dan menentukan status komentar apakah mau dipublikasikan atau tidak
delete_komentar.php, berisi script untuk menghapus data komentar yang tidak diinginkan
1.1 Halaman komentar komentar.php
Halaman ini adalah halaman untuk menampilkan semua komentar yang telah disetujui oleh web administrator dan sekaligus juga halaman yang berisi form untuk memasukkan komentar oleh pengunjung website.
Komentar yang dikirim oleh pengunjung website tidak akan tampil di halaman website ini sebelum disetujui dan divalidasi oleh administrator website.
1.1.1 Membuat form komentar dengan menggunakan
fungsi Spry
Dalam membuat form komentar ini, Anda akan menggunakan fungsi Spry
yang disediakan oleh Dreamweaver CS5 sebagai salah satu fitur penambah keamanan. Terutama pada fungsi input nama, email dan komentar yang akan dimasukkan. Anda juga akan belajar menggunakan fungsi hidden field di dalam form.
1. Buka file komentar.php
2. Melalui Design View, seleksi tulisan “Form komentar di sini”, lalu hapus
Di sana Anda akan menempatkan form komentar
3. Klik Insert > Form > Fieldset
Jendela Fieldset akan keluar, pada menu Legend: Form Komentar lalu klik OK
4. Klik Insert > Form > Form
Melalui Design View Anda dapat melihat muncul kotak dengan garis merah putus-putus. Pastikan kursor Anda masih berada di dalam form tersebut
5. Klik Insert > Spry > Spry Validation Text Field
Jendela Input Tag Accessibility Attributes akan keluar, masukkan beberapa parameter ini:
ID: nama_komentar
Label: Nama Anda:
6. Melalui Code View, cari kode di bawah ini:
<label for="nama_komentar">Nama Anda:</label>
Lalu tambahkan kode <br/> di belakangnya, sehingga menjadi:
<label for="nama_komentar">Nama Anda:</label><br/>
7. Melalui Design View, letakkan kursor Anda setelah isian text field, lalu tekan Enter
8. Klik Insert > Spry > Spry Validation Text Field
Jendela Input Tag Accessibility Attributes akan keluar, masukkan beberapa parameter ini:
ID: email_komentar
Label: Email Anda:
9. Melalui panel Properties, atur setingannya menjadi:
Min chars: 8
Type: Email address, klik pada pop up menu
10. Melalui Code View, cari kode di bawah ini:
<label for="email_komentar">Email Anda:</label>
Lalu tambahkan kode <br/> di belakangnya, sehingga menjadi:
<label for="email_komentar">Email Anda:</label><br/>
11. Melalui Design View, letakkan kursor Anda setelah isian text field, lalu tekan Enter
12. Klik Insert > Spry > Spry Validation Text Area
Jendela Input Tag Accessibility Attributes akan keluar, masukkan beberapa parameter ini:
Label: Komentar Anda:
Klik OK
13. Melalui Code View, cari kode di bawah ini:
<label for="isi_komentar">Komentar Anda:</label>
Lalu tambahkan kode <br/> di belakangnya, sehingga menjadi:
<label for="isi_komentar">Komentar Anda:</label><br/>
14. Melalui Design View, letakkan kursor Anda setelah isian text area, lalu tekan Enter
15. Klik Insert > Button
Jendela Input Tag Accessibility Attributes akan keluar, masukkan beberapa parameter ini:
ID: submit
Klik OK
16. Melalui Design View klik tombol Submit > klik kanan > Copy > klik kanan > Paste di samping tombol Submit.
17. Klik tombol Submit kedua tersebut lalu melalui panel Properties
ubahlah jenis tombol menjadi Reset Form
18. Letakkan kursor Anda di samping tombol Reset
19. Klik Insert > Form > Hidden Field
Di Design View Anda akan melihat simbol ( )
20. Klik simbol Hidden Field tersebut lalu melalui panel Properties,
ubahlah menjadi:
Value: 0
Value bernilai nol (0) ini maksudnya adalah sebagai filter yang menyatakan bahwa setiap komentar yang dimasukkan oleh pengunjung website akan bernilai nol, sedangkan komentar yang telah disetujui oleh Administrator website akan bernilai satu (1)
21. Simpan kembali file komentar.php
Jika muncul permintaan untuk menyimpan data Spry, klik OK.
1.1.2 Aktivasi form komentar
Form komentar telah selesai dibuat, langkah selanjutnya adalah mengaktifkannya. Berikut adalah langkah-langkahnya:
1. Klik Insert > Data Objects > Insert Record > Insert Record
Anda juga dapat melakukannya dengan mengklik panel Server Behaviors > tanda plus (+) > Insert Record.
Jendela Insert Record akan keluar 2. Sesuaikan parameternya seperti berikut ini:
Submit values from: form1
Connection: mybooks_conn,
Sesuaikan dengan koneksi Anda
Insert table: basic5_komentar
Columns:
Pastikan semua field mendapatkan value, kecuali untuk
After inserting, go to: terimakasih.php
Klik Browse untuk mencari file terimakasih.php atau dengan mengetikkannya secara manual
Klik OK
3. Melalui Code View, cari kode berikut ini:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO basic5_komentar (nama_komentar, email_komentar, isi_komentar, status_komentar) VALUES (%s, %s, %s, %s)", GetSQLValueString($_POST['nama_komentar'], "text"), GetSQLValueString($_POST['email_komentar'], "text"), GetSQLValueString($_POST['isi_komentar'], "text"), GetSQLValueString($_POST['status_komentar'], "int"));
4. Lalu pada variabel $_POST[‘isi_komentar’] tambahkan fungsi htmlspecialchars untuk menghindari HTML Injection. Sehingga
kode akan berubah menjadi:
GetSQLValueString(htmlspecialchars($_POST['isi_komentar'] ), "text"),
NOTE: Mengenai fungsi htmlspecialchars Anda dapat mempelajarinya melalui Manual PHP atau mencari referensinya di internet.
5. Simpan kembali file komentar.php
Form Anda telah selesai dan siap untuk digunakan. Lakukan uji coba dengan memasukkan beberapa komentar
1.1.3 Menampilkan data komentar yang telah
disetujui oleh Administrator Website
Pada saat Anda ingin menampilkan data komentar, sering terjadi kasus dimana teks yang seharusnya muncul panjang dengan paragraf baru tapi ternyata teks hanya muncul satu baris dan terkumpul jadi satu sehingga susah untuk dibaca. Pada tutorial ini, Anda akan mengatasi masalah tersebut.
1. Buka file komentar.php
2. Klik panel BINDINGS > tanda plus (+) > Recordset (Query)
Jendela Recordset akan keluar, masukkan beberapa parameter berikut ini: Name: rsKomentar Connection: mybooks_conn Table: basic5_komentar Columns: All Filter: status_komentar
Ubahlah URL Parameter menjadi Entered Value,
Hapus tulisan status_komentar, lalu ketik angka 1. Untuk simbol sama dengan (=) biarkan sesuai default.
Angka 1 (satu) di sini sebenarnya adalah angka yang menyatakan bahwa komentar telah disetujui untuk dipublikasikan. Jika Anda perhatikan pada form komentar yang telah Anda buat sebelumnya, nilai
status_komentar yang dimasukkan oleh pengunjung telah kita set menjadi angka 0 (nol).
Sort: id_komentar, ubah nilai Ascending menjadi
Descending
3. Klik panel BINDINGS dan lakukan expand terhadap Recordset (rsKomentar) dengan mengklik tanda plus yang ada di sampingnya
Perhatikan tabel komentar yang terletak pada baris kedua
4. Melalui Design View, seleksi tulisan “Nama” lalu dari panel
Bindings, klik dan tahan field nama_komentar lalu drag/tarik menuju tulisan “Nama” tersebut
5. Ulangi langkah ke-4 untuk mengubah Email dari field
email_komentar dan Komentar dari field isi_komentar sehingga menghasilkan seperti ini
Atau jika dilihat melalui Code View akan menghasilkan seperti ini: <tr> <td width="20%"><?php echo $row_rsKomentar['nama_komentar']; ?></td> <td width="20%"><?php echo $row_rsKomentar['nama_komentar']; ?></td> <td width="60%"><?php echo $row_rsKomentar['isi_komentar']; ?></td> </tr>
6. Pada kode variabel $row_rsKomentar[‘isi_komentar’]
tambahkan fungsi nl2br (new line to break) untuk memberi ruang
bagi spasi.Sehingga kode akan menjadi:
<td width="20%">
</td>
Untuk melihat perbedaan antara yang menggunakan fungsi nl2br
dan tidak adalah sebagai berikut:
7. Seleksi kembali kode satu baris tabel ini:
<tr> <td width="20%"><?php echo $row_rsKomentar['nama_komentar']; ?></td> <td width="20%"><?php echo $row_rsKomentar['nama_komentar']; ?></td> <td width="60%"><?php echo nl2br($row_rsKomentar['isi_komentar']); ?></td> </tr>
8. Klik Insert > Data Objects > Repeat Region
Anda juga dapat melakukannya melalui panel Server Behaviors > tanda plus (+) > Repeat Region. Jendela Repeat Region akan keluar. Sesuaikan dengan tutorial ini:
Recordset: (rsKomentar)
Klik OK
9. Melalui Design View, seleksi tulisan “Recordset navigation bar”. Lalu hapus tulisan tersebut
10. Klik Insert > Data Objects > Recordset Paging > Recordset Navigation Bar
Jendela Recordset Navigation Bar akan keluar. Sesuaikan dengan parameter berikut ini:
Recordset: rsKomentar
Display using: Text
Klik OK
11. Simpan kembali file komentar.php
1.2 Halaman terimakasih.php
Halaman ini adalah pengalihan sebagai pemberitahuan bahwa komentar beserta data yang baru saja dimasukkan telah tersimpan dalam database website. Untuk mengaktifkannya, ikuti langkah-langkah berikut ini:
1. Buka file terimakasih.php
Seperti Anda lihat melalui Design View, terdapat dua variabel yang akan kita cetak untuk memberitahu kepada pengunjung bahwa komentar, nama dan data email yang mereka masukkan telah disimpan di dalam website. Kedua variabel tersebut adalah
Nama_komentator dan Email_komentator.
Kedua variabel tersebut akan kita munculkan sesuai dengan nama dan email yang pengunjung website masukkan pada saat mengisi form komentar.
2. Klik BINDINGS > tanda plus (+) > Recordset (Query)
Jendela Recordset akan keluar. Masukkan beberapa parameter berikut ini: Name: rsKonfirmasi Connection: mybooks_conn Table: basic5_komentar Columns: All Filter: None
3. Klik Advanced pada jendela Recordset
Di bagian SQL Anda akan melihat kode di bawah ini:
SELECT *
FROM basic5_komentar ORDER BY id_komentar DESC
4. Tambahkan kode LIMIT 1 setelah kode ORDER BY id_komentar DESC, sehingga kode akan berubah menjadi:
SELECT *
FROM basic5_komentar
5. Klik OK untuk menutup jendela Recordset
6. Melalui panel BINDINGS, lakukan expand Recordset (rsKonfirmasi) dengan mengklik tanda plus (+)
7. Melalui Design View, seleksi tulisan “Nama_Komentator”
8. Melalui panel BINDINGS > klik dan field nama_komentar yang terdapat pada Recordset (rsKonfirmasi), lalu drag menuju tulisan
“Nama_Komentator” tersebut
9. Lakukan hal yang sama untuk tulisan “Email_Komentator”, gantilah dengan field email_komentar
10. Simpan kembali file terimakasih.php
11. Lakukan uji coba dengan memasukkan komentar melalui halaman komentar, maka Anda akan dialihkan ke halaman terimakasih.php
1.3 Halaman login.php
Anda telah mempelajari bagaimana membuat form login dan mengaktifkannya pada Bab sebelumnya. Pada tutorial ini, Anda hanya akan mengaktifkan form login yang sebelumnya telah dibuat.
1. Buka file login.php
2. Klik Insert > Data Objects > User Authentication > Log In User
Anda juga dapat melakukannya melalui panel Server Behaviors > tanda plus (+) > User Authentication > Log In User. Jendela
3. Masukkan beberapa parameter berikut ini:
Get input from form: form1
Username field: username
Password field: password
Validate using connection: mybooks_conn
Table: basic5_admin
Username column: username
If login succeds, go to: admin.php, klik Browse untuk mencari file admin.php atau Anda bisa mengetiknya
Go to previous URL (if exists), klik tanda centang (check)
If login fails, go to: login.php, klik Browse untuk mencari file login.php atau Anda bisa mengetiknya
Restrict access based on: Username and password
Klik OK untuk menutup dialog Log In User
4. Simpan kembali file login.php
Anda telah menyelesaikan pembuatan halaman login.php
1.4 Halaman admin.php
Di halaman admin.php ini Anda akan sedikit bekerja dengan kode secara manual untuk menampilkan data status komentar yang diinput oleh pengunjung website Anda. Di halaman ini Anda juga akan menambahkan link dinamis seperti yang pernah kita bahas pada bab sebelumnya.
1.4.1 Menampilkan data komentar yang telah diinput
oleh pengunjung website
Untuk dapat menampilkan data komentar, berikut adalah langkah-langkahnya:
1. Buka file admin.php
2. Klik BINDINGS > tanda plus (+) > Recordset (Query)
Jendela Recordset akan keluar, ubahlah menjadi Simple Recordset. Masukkan beberapa parameter berikut ini:
Name: rsComments
Connection: mybooks_conn
Table: basic5_komentar
Columns: All
Filter: None
Sort: id_komentar, Descending
Klik OK
3. Melalui panel BINDINGS, lakukan expand Recordset (rsComments) dengan mengklik tanda plus (+)
5. Melalui panel BINDINGS > klik dan field nama_komentar yang terdapat pada Recordset (rsComments), lalu drag menuju tulisan
“nama” tersebut
6. Lakukan hal yang sama untuk mengubah teks “email”, lalu ubah menjadi teks dinamis dari field email_komentar. Lakukan juga
untuk teks “isi” diubah dengan teks dinamis dari field
isi_komentar
7. Pada bagian “isi” komentar, tambahkan fungsi nl2br untuk memecah teks menjadi paragraf, sehingga kode yang semula adalah:
<?php echo $row_rsComments['isi_komentar']; ?>
Menjadi:
<?php echo nl2br($row_rsComments['isi_komentar']); ?>
8. Lalu pada teks “status” yang menyatakan status komentar, Anda akan mengubahnya menjadi teks dinamis juga. Hanya saja, Anda harus mengerjakannya dengan manual coding
9. Melalui Code View, seleksi kode di bawah ini:
<td width="10%" align="left" valign="top">status</td>
Lalu hapus tulisan “status” lalu tekan Enter sebanyak 2 (dua) kali untuk menyisipkan kode baru yang ingin Anda tampilkan,
sehingga kode berubah menjadi:
<td width="10%" align="left" valign="top"> </td>
10. Sisipkan kode di bawah ini:
<?php if($row_rsComments['status_komentar']==0){ ?> <span class="admin">Baru</span>
<?php }else{ ?> Terpublikasi <?php } ?>
Kode di atas menyatakan bahwa jika variabel status_komentar bernilai 0 (nol) atau pesan belum diperiksa dan diubah statusnya oleh administrator website, maka status komentar akan dicetak dengan teks berwarna merah tebal sebagai komentar Baru, jika
selain itu maka komentar dianggap sudah Terpublikasi (atau sudah dipublikasikan)
11. Simpan file admin.php
Pada langkah selanjutnya Anda harus menambahkan link dinamis.
1.4.2 Menambah link dinamis Setujui dan Hapus
Link dinamis yang Anda tambahkan pada halaman ini adalah link untuk menyetujui atau mengedit komentar (Setujui) dan link untuk menghapus komentar yang tidak diinginkan (Hapus).
Berikut adalah langkah-langkahnya:
1. Buka file admin.php
Di halaman tersebut Anda akan melihat teks “Setujui | Hapus”
dengan link Setujui menuju halaman edit_komentar.php dan
Hapus menuju halaman delete_komentar.php
2. Melalui Design Viewi, klik teks “Setujui”, lihatlah di panel
Properties pada menu Link Anda akan melihat link menuju halaman edit_komentar.php
3. Klik tanda folder pada menu link tersebut, sehingga jendela Select File akan muncul
4. Klik menu Parameters yang terletak di sebalah kanan bawah, maka jendela Parameters akan muncul
5. Klik pada area putih di bawah menu Name, lalu ketik
id_komentar
6. Klik area putih di bawah menu Value, lalu klik tanda petir di samping kanannya, maka jendela Dynamic Data akan keluar 7. Klik field id_komentar pada Recordset (rsComments), lalu klik
OK untuk menutup dialog Dynamic Data
9. Lakukan hal yang sama untuk membuat link dinamis Hapus, sehingga kode kedua link tersebut yang semula adalah sebagai berikut:
<td width="15%" align="left" valign="top"><a href="edit_komentar.php">Setujui</a> | <a href="delete_komentar.php">Hapus</a></td>
Akan berubah menjadi:
<td width="15%" align="left" valign="top"><a href="edit_komentar.php?id_komentar=<?php echo $row_rsComments['id_komentar']; ?>">Setujui</a> | <a href="delete_komentar.php?id_komentar=<?php echo $row_rsComments['id_komentar']; ?>">Hapus</a></td>
Kedua link di atas ketika diklik melalui browser akan menghasilkan link sebagai berikut:
Setujui: http://localhost/MyBooks/basic5/edit_komentar.php?id_k omentar=6 Hapus: http://localhost/MyBooks/basic5/delete_komentar.php?id _komentar=6
10. Simpan kembali file admin.php
1.4.3 Membuat Recordset Paging dan Recordset
Navigation Bar
Link dinamis telah Anda selesaikan. Langkah selanjutnya adalah mengatur berapa banyak baris data yang akan ditampilkan di halaman admin.php
ini, maka Anda akan bekerja kembali menggunakan fungsi Repeat Region
dan Recordset Navigation Bar.
Berikut adalah langkah-langkahnya:
1. Buka file admin.php
2. Melalui Code View, lalu seleksi kode <tr></tr> yang berarti
table row (baris tabel) kedua di bawah ini:
<tr>
<td width="25%" align="left" valign="top"><?php echo $row_rsComments['nama_komentar']; ?> & <?php echo $row_rsComments['email_komentar']; ?></td>
<td width="50%" align="left" valign="top"><?php echo nl2br($row_rsComments['isi_komentar']); ?></td> <td width="10%" align="left" valign="top"> <?php if($row_rsComments['status_komentar']==0){ ?> <span class="admin">Baru</span> <?php }else{ ?> Terpublikasi <?php } ?> </td>
<td width="15%" align="left" valign="top"><a href="edit_komentar.php?id_komentar=<?php echo $row_rsComments['id_komentar']; ?>">Setujui</a> | <a href="delete_komentar.php?id_komentar=<?php echo $row_rsComments['id_komentar']; ?>">Hapus</a></td> </tr>
3. Klik Insert > Data Objects > Repeat Region
Jendela Repeat Region akan keluar. Masukkan beberapa parameter ini:
Recordset: rsComments
Klik OK untuk menutup dialog Repeat Region
4. Melalui Design View, seleksi tulisan “Recordset Navigation Bar”, hapus tulisan tersebut
5. Klik Insert > Data Objects > Recordset Paging > Recordset Navigation Bar
Jendela Recordset Navigation Bar akan keluar, masukkan parameter ini:
Recordset: rsComments
Display using: Text
Klik OK untuk menutupnya
Hasil pembuatan Repeat Region dan Recordset Navigation Bar
diatas akan menghasilkan seperti gambar di bawah ini:
6. Simpan kembali file admin.php
Anda telah menyelesaikan halaman untuk menampilkan komentar dengan baik, langkah selanjutnya adalah menambahkan fasilitas keamanan sehingga halaman admin.php ini hanya bisa diakses oleh orang yang melakukan login.
Halaman ini juga akan dilengkapi dengan link untuk melakukan log out.
1.4.4 Proteksi halaman admin.php dan penambahan
fasilitas log out
Anda telah berhasil menampilkan data komentar ke dalam halaman
admin.php, Anda tentunya tidak ingin semua orang bisa mengakses halaman ini tanpa otorisasi terlebih dahulu. Maka pada langkah ini, Anda
akan memastikan bahwa orang yang bisa masuk ke halaman ini hanyalah orang-orang yang telah diberi password dan username.
Berikut langkah-langkahnya:
1. Buka file admin.php
2. Klik Insert > Data Objects > User Authentication > Restrict Access To Page
Jendela Restrict Access To Page akan keluar, isi beberapa parameter berikut ini:
Restrict based on: Username and password
If access denied, go to: login.php, klik Browse untuk memilih file atau dengan mengetik nama file
Klik OK untuk menutup jendela dialog
Ini artinya halaman ini hanya bisa diakses setelah Anda melakukan login dengan memasukkan username dan password yang benar. Jika Anda belum melakukan login dan memaksakan diri untuk membuka halaman admin.php melalui browser, maka Anda akan dialihkan ke halaman login.php dan menghasilkan link seperti ini:
http://localhost/MyBooks/basic5/login.php?accesscheck=%2F MyBooks%2Fbasic5%2Fadmin.php
3. Melalui Design View, cari tulisan “Log Out” yang berada di bagian bawah (footer) dari halaman admin.php. Seleksi tulisan tersebut
4. Klik Insert > Data Objects > User Authentication > Log Out User
Jendela Log Out User akan keluar, masukkan beberapa parameter ini:
Log out when: Link clicked: Selection: “Log Out”
When done, go to: logout.php, klik Browse untuk mencari file tersebut atau ketik secara manual
Klik OK untuk menyelesaikannya 5. Simpan kembali file admin.php
Anda telah menyelesaikan pembuatan halaman admin.php secara lengkap.
1.5 Halaman edit_komentar.php
Anda ingin menampilkan komentar? Atau Anda ingin mengedit beberapa kata-kata kasar yang mungkin dikirim oleh pengunjung baru kemudian menampilkannya? Jika ya, maka halaman edit_komentar.php ini akan mengakomodasi kepentingan tersebut.
1.5.1 Proteksi halaman dan link log out
Halaman ini tentunya hanya bisa diakses oleh administrator website, maka langkah pertama, lindungi halaman ini dengan username dan password.
Untuk mengaktifkan halaman ini, berikut adalah langkah-langkahnya:
1. Buka file edit_komentar.php
2. Klik Insert > Data Objects > User Authentication > Restrict Access To Page
Jendela Restrict Access To Page akan keluar, isi beberapa parameter berikut ini:
Restrict based on: Username and password
If access denied, go to: login.php, klik Browse untuk memilih file atau dengan mengetik nama file
Ini artinya halaman ini hanya bisa diakses setelah Anda melakukan login dengan memasukkan username dan password yang benar. Jika Anda belum melakukan login dan memaksakan diri untuk membuka halaman admin.php melalui browser, maka Anda akan dialihkan ke halaman login.php dan menghasilkan link seperti ini:
http://localhost/MyBooks/basic5/login.php?accesscheck=%2F MyBooks%2Fbasic5%2Fedit_komentar.php
3. Melalui Design View, cari tulisan “Log Out” yang berada di bagian bawah (footer) dari halaman admin.php. Seleksi tulisan tersebut
4. Klik Insert > Data Objects > User Authentication > Log Out User
Jendela Log Out User akan keluar, masukkan beberapa parameter ini:
Log out when: Link clicked: Selection: “Log Out”
When done, go to: logout.php, klik Browse untuk mencari file tersebut atau ketik secara manual
Klik OK untuk menyelesaikannya 5. Simpan kembali file edit_komentar.php
Anda telah menyelesaikan pembuatan halaman admin.php secara lengkap.
1.5.2 Membuat recordset untuk edit komentar dan
bekerja dengan session
Anda akan belajar lebih mendalam tentang fungsi session yang dimiliki PHP pada bab selanjutnya. Pada tutorial kali ini, Anda hanya akan membuat sebuah recordset yang menyimpan informasi siapa yang melakukan login untuk kemudian kita jadikan sebagai variabel hidden field
pada form edit komentar ini. Dengan hidden variable ini pula nantinya kita akan mengetahui siapa yang memvalidasi komentar berdasarkan ID dari administrator website.
Berikut adalah langkah-langkahnya:
1. Buka file edit_komentar.php
2. Klik Insert > Data Objects > Recordset
Jendela Recordset akan keluar. Masukkan beberapa parameter berikut ini:
Name: rsEditKomentar
Connection: mybooks_conn
Table: basic5_komentar
Columns: All
Filter: id_komentar, URL Parameter, =, id_komentar
Sort: None
3. Klik Insert > Data Objects > Recordset
Jendela Recordset akan keluar. Masukkan beberapa parameter berikut ini:
Name: rsSession
Connection: mybooks_conn
Table: basic5_admin
Columns: All
Filter: username, Session Variabel, =, MM_Username
NOTE: Hati-hati pada bagian ini (lihat gambar ). Variabel username yang disimpan dalam tabel
dan kita set nilainya sama dengan MM_Username (besar kecil huruf akan berpengaruh, pastikan sama dengan yang ditulis di atas)
Sort: None
Klik OK
4. Melalui Design View, seleksi tulisan ini “Form edit komentar di sini”. Hapus tulisan tersebut
5. Klik Insert > Form > Fieldset
Jendela Fieldset akan keluar, untuk Legend: Form edit komentar
lalu klik OK.
6. Klik Insert > Data Objects > Update Record > Update Record Form Wizard
Jendela Record Update Form akan keluar. Masukkan parameter-parameter ini:
Connection: mybooks_conn
Select Record from: rsEditKomentar
Unique key column: id_komentar
After updating, go to: admin.php
Klik Browse untuk mencari filenya atau dengan mengetiknya secara manual
Pada menu Form fields, ubah beberapa settingan menjadi dengan mengikuti langkah selanjutnya
7. Klik kolom (column) id_komentar, lalu hapus kolom ini dengan mengklik tanda minus (-) yang ada di samping kanan tanda plus (+). Kolom id_komentar akan hilang setelah Anda menghapusnya
8. Klik kolom nama_komentar, lalu ubah settingannya menjadi:
Label: Nama komentator,
Sebelumnya: Nama_komentar
9. Klik kolom email_komentar, lalu ubah settingannya menjadi:
Label: Email komentator,
Sebelumnya: Email_komentar
10. Klik kolom isi_komentar, lalu ubah settingannya menjadi:
Label: Isi Komentar,
Sebelumnya: isi_komentar
Display as: Text area
Sebelumnya: Text field
Klik tanda arah ke atas (Move item up list), letakkan menjadi yang pertama sebelum kolom nama_komentar
Ini akan dijadikan sebagai pilihan pertama apakah komentar akan dipublikasikan atau tidak
Label: Status komentar,
Sebelumnya: Status_komentar
Display as: Menu
Sebelumnya: Text field
Klik Menu Properties
Jendela Menu Properties akan keluar, lalu masukkan beberapa parameter berikut ini:
Label: Ya, publikasikan
Value: 1
Value atau nilai 1 (satu) di sini sebagai filter bahwa komentar akan dipublikasikan.
Klik tanda plus (+) untuk menambah pilihan, lalu isi label dan valuenya kembali
Label: Tidak, jangan dipublikasikan
Anda ingat, value= 0 (nol) adalah yang diinput oleh pengunjung, artinya komentar ini jangan dipublikasikan
Klik OK
12. Klik kolom validator_komentar, lalu ubah settingannya menjadi:
Display as: Hidden Field
Sebelumnya: Text field
Default value:
Klik tanda petir pada menu Default Value:. Jendela
Dynamic Data akan keluar. Lakukan expand Recordset (rsSession) kemudian klik field id.
Hal ini akan menghasilkan kode:
<?php echo htmlentities($row_rsSession['id']); ?> Klik OK
14. Melalui Code View, cari kode di bawah ini:
<select name="status_komentar">
Lalu tambahkan pengaturan tampilan dengan class=”admin”,
sehingga kode akan menjadi:
<select name="status_komentar" class="admin">
Kode berfungsi untuk mempertegas pertanyaan apakah komentar akan dipublikasikan atau tidak.
15. Simpan kembali file edit_komentar.php
Anda telah menyelesaikan pembuatan form edit komentar, proteksi halaman dan link log out.
1.6 Script untuk menghapus komentar
delete_komentar.php
Anda tentu tidak ingin semua orang bisa menghapus komentar yang telah dengan susah payah disampaikan oleh pengunjung website Anda tiba-tiba dihapus orang yang tidak bertanggung jawab hanya karena script untuk menghapus data Anda tidak dilindungi oleh username dan password.
Untuk mengaktifkan halaman ini, berikut adalah langkah-langkahnya:
1. Buka file delete_komentar.php
2. Klik Insert > Data Objects > User Authentication > Restrict Access To Page
Jendela Restrict Access To Page akan keluar, isi beberapa parameter berikut ini:
Restrict based on: Username and password
If access denied, go to: login.php, klik Browse untuk memilih file atau dengan mengetik nama file
Klik OK untuk menutup jendela dialog 3. Klik Insert > Data Objects > Delete Record
Jendela Delete Record akan keluar. Masukkan beberapa parameter ini:
First check if variable is defined: Primary key value
Connection: mybooks_conn
Table: basic5_komentar
Primary key column: id_komentar, Numeric (tanda check/centang)
Primary key value: URL Parameter, id_komentar
After deleting, go to: admin.php
Klik Browse untuk mencari filenya atau dengan mengetiknya secara manual
4. Simpan kembali file delete_komentar.php
5. Lakukan uji coba untuk menghapus salah satu data komentar