Code Igniter : Membuat halaman input sederhana (GuestBook)

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
Baca Juga:  Memperbaiki menejemen file di PyroCMS

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 !!!

Komentar

comments

zenzaqi

PHP Programmer, Code Igniter, Ext-Js, dotA Pro-Gamer, Alpharian, B2W, Backpacker

grain storage instagram türk takipçi satın al