Tentu Anda tidak lupa dengan konsep MVC -ny CI bukan??
Ya, Anda harus membuat ketiga file terserbuat yakni Conctroller, Model dan View.
[related_posts]
Berikut contoh membuat Guestbook sederhana
Database
Nama tabel yang digunakan ‘guestbook’, jalankan scriptnya berikut pada database mysql Anda
CREATE TABLE `guestbook` ( `guestid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 65 ) NOT NULL , `facebook` VARCHAR( 65 ) NULL , `twitter` VARCHAR( 65 ) NULL , `message` VARCHAR( 255 ) NOT NULL );
Model
Umumnya penamaanya menggunakan prefix m_, tapi sebenarnya terserah Anda menamakannya
nama file : m_guestbook, digunakan untuk akses database
<?php class M_guestbook extends Model{ //constructor function M_guestbook() { parent::Model(); } function simpan($name, $email, $facebook, $twitter, $message){ $data = array( "name"=>$name, "email"=>$email, "facebook"=>$facebook, "twitter"=>$twitter, "message"=>$message ); $this->db->insert('guestbook', $data); if($this->db->affected_rows()) return '1'; else return '0'; } } ?>
digunakan affected rows, untuk mengecek apakah data berhasil disimpan ke dalam database atau tidak
Controller
Umumnya penamaanya menggunakan prefix c_, tapi sebenarnya terserah Anda menamakannya
nama file : c_guestbook, digunakan untuk event control terhadap page
<?php class C_guestbook extends Controller { //constructor function C_guestbook(){ parent::Controller(); session_start(); $this->load->model('m_guestbook', '', TRUE); } //set index function index(){ $this->load->view('v_guestbook.php'); } function simpan(){ //POST varible here //auto increment, don't accept anything from form values $name=trim(@$_POST["name"]); $name=str_replace("/(<\/?)(p)([^>]*>)", "",$name); $name=htmlspecialchars($name,ENT_QUOTES); $email=trim(@$_POST["email"]); $email=str_replace("/(<\/?)(p)([^>]*>)", "",$email); $email=htmlspecialchars($email,ENT_QUOTES); $facebook=trim(@$_POST["facebook"]); $facebook=str_replace("/(<\/?)(p)([^>]*>)", "",$facebook); $facebook=htmlspecialchars($facebook,ENT_QUOTES); $twitter=trim(@$_POST["twitter"]); $twitter=str_replace("/(<\/?)(p)([^>]*>)", "",$twitter); $twitter=htmlspecialchars($twitter,ENT_QUOTES); $message=trim(@$_POST["message"]); $message=str_replace("/(<\/?)(p)([^>]*>)", "",$message); $message=htmlspecialchars($message,ENT_QUOTES); $result=$this->m_guestbook->simpan($name, $email, $facebook, $twitter, $message); if($result=='0'){ $data["msg"]="Data tidak bisa disimpan"; }else{ $data["msg"]="Data sukses disimpan"; } $this->load->vars($data); $this->index(); } } ?>
- Penerimaan variable post dilakukan di dalam fungsi simpan
- Fungsi str_replace di atas untuk menghilangkan inputan yang berupa code php/html agar tidak menjadi spam code
- Fungsi htmlspecialchars, ENT_QUOTES digunakan agar bisa mengubah single quote ato double quote ke dalam bentuk code html (ASCII) sehingga tidak jadi masalah ketika disimpan ke dalam database
View
Umumnya penamaanya menggunakan prefix v_, tapi sebenarnya terserah Anda menamakannya
nama file : v_guestbook, digunakan untuk layout view page
<html> <body> <?php if(@$msg<>"") echo @$msg; ?> <form action="<?php echo base_url();?>index.php?c=c_guestbook&m=simpan" method="post"> <table> <tr> <td colspan="2" align="center"><h1>GUESTBOOK</h1></td> </tr> <tr> <td>Name</td> <td><input id="name" name="name" type="text" size="30" maxlength="50" /></td> </tr> <tr> <td>Email</td> <td><input id="email" name="email" type="text" size="30" maxlength="65" /></td> </tr> <tr> <td>Facebook</td> <td><input id="facebook" name="facebook" type="text" size="30" maxlength="65" /></td> </tr> <tr> <td>Twitter</td><td><input id="twitter" name="twitter" type="text" size="30" maxlength="65" /></td> </tr> <tr> <td>Message</td> <td><textarea id="message" name="message" cols="30" rows="3"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="Simpan" name="simpan"> </td> </tr> </table> </form> </body> </html>
Perhatikan form actionnya :
<form action="<?php echo base_url();?>index.php?c=c_guestbook&m=simpan" method="post">
arahkan m (fuction) ke function ‘simpan’ sesuai yang ada pada controller
Dan inilah nampak hasil screen shootnya
Dan ini setelah proses input
Ok, contoh singkat di atas semoga bisa membantu
Semoga berhasil, semangat selalu. Ignite your code !!!