Handbook Codeigniter

of 22 /22
Catatan CodeIgniter by Garry Bernardy, employer #2 Computesta Corp Pendahuluan (Read Me First) Catatan ini merupakan suatu rangkuman atau handbook sederhana mengenai CodeIgniter. Coding-coding yang disajikan ini tidak bisa kamu langsung copy paste mentah-mentah. Soalnya hasilnya bakal gak bagus (tampilan di browser pasti jelek~). Soalnya coding-coding ini lebih ditekankan supaya pembaca paham cara pakai CodeIgniter. Disini hanya memaparkan fungsi yang umum digunakan. Untuk kumpulan fungsi- fungsi yang lengkap dapat melihat documentation resmi CodeIgniter(ada dalam paket frameworknya). Perubahan Struktur Sesuai saran pengguna CodeIgniter, kebanyakan menyarankan untuk mengubah struktur file. Oleh karenanya, saya juga ikut2an ubah struktur. Ok, struktur awal CodeIgniter seperti ini FolderProject -System Application config controllers errors helpers hooks viewers models dll cache codeigniter database fonts helpers dll -index.php Akan saya ubah sedikit dengan perubahan FolderProject -System cache codeigniter database

description

Tutorial belajar codeigniter untuk pemula, handbook sederhana dalam belajar codeigniter, menjabarkan fungsi gungsi yang umum digunakan. Handbook sederhana ini cocok digunakan bagi pemula yang akan mendalami framework ci

Transcript of Handbook Codeigniter

Catatan CodeIgniterby Garry Bernardy, employer #2 Computesta Corp

Pendahuluan (Read Me First)Catatan ini merupakan suatu rangkuman atau handbook sederhana mengenai CodeIgniter. Coding-coding yang disajikan ini tidak bisa kamu langsung copy paste mentah-mentah. Soalnya hasilnya bakal gak bagus (tampilan di browser pasti jelek~). Soalnya coding-coding ini lebih ditekankan supaya pembaca paham cara pakai CodeIgniter.Disini hanya memaparkan fungsi yang umum digunakan. Untuk kumpulan fungsi-fungsi yang lengkap dapat melihat documentation resmi CodeIgniter(ada dalam paket frameworknya).

Perubahan StrukturSesuai saran pengguna CodeIgniter, kebanyakan menyarankan untuk mengubah struktur file. Oleh karenanya, saya juga ikut2an ubah struktur. Ok, struktur awal CodeIgniter seperti ini

FolderProject-System

Applicationconfigcontrollerserrorshelpershooksviewersmodelsdll

cachecodeigniterdatabasefontshelpersdll

-index.php

Akan saya ubah sedikit dengan perubahan

FolderProject-System

cachecodeigniterdatabase

fontshelpersdll

-Applicationconfigcontrollerserrorshelpershooksviewersmodelsdll

-Assetimgcssscript

-index.php

Kita akan lebih banyak berhubungan dengan folder Application.

Beberapa TIPS Sebelum MulaiSupaya kita dapat menulis <? ?> saja atau <?= ?> maka sangat disarankan untuk mengubah$config['rewrite_short_tags'] = TRUE;

di file /application/config/config.php

Nantinya kita mungkin akan ketemu fungsi anchor() yang sama dengan <a href=””> ataupun img() yang sama dengan <img src=””>. Supaya hasilnya sama dengan yang diinginkan, maka kita akan tetap menggunakan yang versi CodeIgniter, karena dengan demikian, link-nya lebih gampang ditulis, sebab nantinya kalau pakai <a href=””> maka kita akan kewalahan dengan link yang akan tidak biasa.

MVC Bagian I (Controller)Dibuat di dalam folder /application/controllersStruktur dasar:<?php

class Mycontroller extends Controller{function Mycontroller() //constructor{

parent::Controller(); //memanggil fungsi construction parent}

function index(){

//isi halaman kalau langsung mengakses http://url/index.php/laohe/}

function foo(){

//isi halaman kalau panggil di http://url/index.php/laohe/foo}

function bar($id){

//misalnya $id itu diisi “xxx” maka url diakses http://url/index.php/laohe/bar/xxx

}

function _tersembunyi(){

//fungsi yang tidak dapat diakses di url. Untuk dipakai bukan untuk diakses

}}//NB:nama class harus kapital yang depan. Nama file disave sebagai mycontroller.php di dalam folder controllers

MVC Bagian II (View)Dibuat dalam folder /application/viewsDalam file ini tidak ada class. Isi filenya kebanyakan berupa tag html atau css dengan sedikit php untuk tampil isi. View perlu controller untuk menampilkannya. Tidak mungkin ada view yang berdiri sendiri. (Kalo ada view yang berdiri sendiri pasti kamu utak atik aneh2.)

Cara pakaiini Controller nya, dengan namafile : /system/application/controllers/mycontroller.php<?phpclass Mycontroller extends Controller{

function Mycontroller()

{parent::Controller();

}function index(){

$this->load->view('myview1');/*nama view bebas sesuka kamu, yang penting nama file sama*/

}function contoh2(){

$data['var1'] = 'Ini ini nilai variable 1';$data['xxx'] = 24;$this->load->view('myview2', $data); //ini tampil view yang lain

dengan kirim nilai. }

}

Ini view-nya, dengan nama file /application/views/myview1.php<html><body><h1>Welcome</h1>Cuman tampil index doang</body></html>

Yang ini view kedua dengan nama file /application/view/myview2.php<html><body><?php

echo $var1;echo $xxx;

?></body></html>

MVC Bagian III (Model)Model itu class yang bertugas select, insert, update db dan operasi lainnya. CodeIgniter tidak wajib menggunakan Model.Struktur dasar : <?php

class Mymodel extend Model{

function Mymodel(){

parent::Model();}

function dapathasil(){

//taruh fungsi supaya kalau mau akses db lewat model.}

}?>

Contoh MVC KeseluruhanKasus: Tampilkan produk dengan menggunakan Model, View serta Controller. Nama tabel yang akan diakses bernama msproduk. Sedangkan atribut-atribut pada tabel tersebut berupa idkategori, nama, parent, isleaf, gambarfolder, gambarbanner.

Jawab:

Pertama buat dahulu Model dengan nama productmodel.phpCodingnya:<?phpclass Productmodel extends Model{ function Productmodel() { parent::Model(); }

function tampilproduk($idkategori='*') { $query = $this->db->query("SELECT idproduk, namaproduk, ukuran, jumlah, idkategori, gambar1, gambar2, carapakai FROM msproduk WHERE idkategori='$idkategori'"); return $query; }

function tampilkategori($parent='*') { $query = $this->db->query("SELECT idkategori,nama, parent, isleaf, gambarfolder, gambarbanner FROM mskategori WHERE parent='$parent'"); return $query; } }

?>

Lalu kita buat Controller di folder controllers dengan nama product.php (/application/controllers/product.php)Codingnya:<?php class Product extends Controller { function Product() { parent::Controller(); } function index() { $this->load->model('Productmodel'); //buka model $data['produk'] = $this->Productmodel->tampilproduk(); //panggil fungsi model trus smpn var $this->load->view('productview',$data); //memanggil view } }?>

Lalu kita buat View di folder views dengan nama productview.php(Sebetulnya pembuatan view biasanya berbarengan dengan pembuatan controller bukan sesudah controller. Disini hanya contoh)Buat file di /application/views/productview.phpCodingnya:<html>

<title>Product</title><body>

<?phpforeach ($produk->result() as $row){

echo $row->idproduk."</td>"; echo $row->namaproduk; echo $row->ukuran; echo "<img src='".$row->gambar1."' alt='".$row->namaproduk."'/>"; echo "<br/>"; }

?></body>

</html>

Menangani Database

Sebelum mulai apa-apa kamu harus tulis ini dulu :$this->load->database();

Kalau misalnya malas tiap kali mau utak-atik database harus tulis coding gitu kamu bisa taruh di autoload (ada di /application/config/autoload.php) tambahkan dibagian libraries jadi gini$autoload['libraries'] = array('database');

Melakukan queryUntuk query ada 2 cara, secara objek atau array.Versi objek:$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result() as $row)

{

echo $row->title;

echo $row->name;

echo $row->email;

}

Disini diperhatikan bahwa dia menggunakan foreach. Jadi kita tidak pakai while seperti pada mysql_query().

Versi array:$query = $this->db->query('SELECT name, title, email FROM my_table');

foreach ($query->result_array() as $row)

{

echo $row['title'];

echo $row['name'];

echo $row['email'];

}

Yang membedakannya hanya pada yang satu $query->result() yang satu lagi $query->result_array(). Jadi kalau array aksesnya dengan menggunakan cara array.

Mengetes hasil query kosong atau tidakSebagai pengganti mysql_num_rows(). Kita menggunakan num_rows(). Contoh:$query = $this->db->query("YOUR QUERY");

if ($query->num_rows() > 0) //Di sini cek query kosong atau tidak{

foreach ($query->result() as $row)

{

echo $row->title;

echo $row->name;

echo $row->body;

}

} else{ echo “Tidak ada hasil”;}

Melakukan Insert, Update atau DeleteSebenarnya juga menggunakan fungsi query(). Jadi menggunakan sintaks SQL. Contohnya:$sql = "INSERT INTO mytable (title, name)

VALUES ('$title', '$name') )";

$this->db->query($sql);

Active Record, fungsi tanpa mengandalkan SQLUntuk melakukan fungsi select, update, insert, delete juga bisa menggunakan ActiveRecord yang sudah disediakan CodeIgniter. Dengan fungsi ini, kita tidak usah mengetik sintaks SQL, tetapi cukup panggil fungsi.

Contoh Active Record Query (Untuk query pakai fungsi get() ) :$query = $this->db->get('table_name');

foreach ($query->result() as $row)

{

echo $row->title;

}

Contoh Active Record Insert (pakai fungsi insert() ):$data = array(

'title' => $title,

'name' => $name,

'date' => $date

);

$this->db->insert('mytable', $data);

Makna dari fungsi diatas adalah “INSERT INTO mstable(title, name, date) VALUES ('$title', '$name', '$date') ”.

Contoh Active Record Update (pakai fungsi update() dipadukan where() ):$data = array(

'title' => $title,

'name' => $name,

'date' => $date

);

$this->db->where('id', $id);

$this->db->update('mytable', $data);

Arti dari coding diatas adalah “UPDATE mytable SET title='$title', name='$name', date='$date' WHERE id='$id' “.

Contoh Active Record Delete (pakai fungsi delete() ,mungkin perlu dipadukan where() ):$this->db->delete('mytable', array('id'=>$id));

Atau dengan cara yang satu lagi (dipadukan dengan where())$this->db->where('id', $id);

$this->db->delete('mytable');

Makna dari sintaks di atas yakni hapus record yang id-nya bernilai $id.

Contoh Active Record Empty Table (dengan menggunakan empty_table() ):$this->db->empty_table('mytable');

Sebetulnya sintaks ini sama saja dengan sintaks DELETE di SQL atau fungsi delete() di AR(Active Record) tanpa where().

Contoh Active Record Truncate (dengan menggunakan truncate() ):$this->db->truncate('mytable');

Mirip dengan empty table. Kecuali field yang auto-increment. Jika kita empty table maka angka auto-increment tetap lanjut perhitungan sebelumnya. Jika truncate maka variabel akan mulai dari awal lagi.

Membuat FormMengapa menggunakan helper dan tidak langsung coding HTML saja langsung? Alasannya kalau kita pakai yang sudah disediakan dia nantinya akan dengan mudah dapat menambah atribut dan hidden field. Selain itu tingkat portabiliti code lebih tinggi, misalnya ketika URL berubah. Alasan lainnya, elemen-elemen ini sudah divalidasi html nya. Jadi kalau misalnya value text adalah “</table>” maka tidak akan merusak susunan form, karena akan diganti dengan karakter aman.

Untuk menggunakan Form Helper kita harus load terlebih dahulu$this->load->helper('form');

Langkah awal adalah membuat kepala Formecho form_open('email/send');

Makna dari sintaks itu adalah nantinya akan muncul tag HTML demikian<form method="post" action="http:/example.com/index.php/email/send" />

Bisa juga kita membuat akhir dari Form dengan menggunakan echoecho form_close();

tetapi sebetulnya juga bisa langsung mengetik tag html </form>

Keduanya adalah sama

Menambah attribut pada kepala form$tambahan = array('id'=>'formlogin','name'=>'formlogin');echo form_open('dologin', $tambahan);

Makna dari sintaks ini adalah<form method='post' id='formlogin' name='formlogin' action='dologin' />

Membuat hidden fieldUntuk membuat hidden field, kita bisa menentukan apa saja isinya kemudian taruh di parameter ketiga dari form_open().$tersembunyi = ('hdnnama'=>'joe', 'hdnnumber'=>'123');echo form_open('email/send', '', $tersembunyi);

Artinya:<form method=”post” action=”http://example.com/index.php/email/send”/><input type=”hidden” name=”hdnnama” value=”joe”/><input type=”hidden” name=”hdnnumber” value=”123” />

List persamaan Form dengan form helper CodeIgniter

echo form_input('txtnama','john'); <input type='text' name='txtnama' value='john' />

echo form_password('txtpass', 's3cr3t'); <input type='password' name='txtpass' value='s3cr3t'/>

echo form_upload('filimage'); <input type=”file” name=”filimage” />echo form_textarea('txtalamat','jln raya');

<textarea name='txtalamat'>jln raya</textarea>

$isi = array('b'=>'Big','m'=>'Medium','s=>'Smile');echo form_dropdown('cmbsize', $isi, 'm');

<option name='cmbsize'> <select value='b'>Big</select> <select value='m'>Medium</select> <select value='s'>Small</select></option>

echo form_checkbox(“newsletter”, “accept”, TRUE);

<input type=”checkbox” name=”newsletter” value=”accepted” checked=”checked”/>

echo form_radio('radsex', 'p', true); <input type=”radio” name=”radsex”

value=”p” checked=”checked” />echo form_submit('mysubmit','Kirim'); <input type='submit' name='mysubmit'

value='Kirim' />

Satu hal yang diingat, kalau menggunakan form_upload() berarti kita menggunakan input type='file', yang artinya form harus di set nilai enctype="multipart/form-data". Tinggal pakai form_open_multipart() dengan cara :echo form_open_multipart('/send/email');

Untuk redirect halamanAda 2 cara untuk redirect di dalam CodeIgniter

Cara pertama kita menggunakan Output Class$this->output->set_header(“Location:login.php”);

Output Class sudah diinisialisasi secara otomatis, jadi tidak usah di load() lagi

Cara kedua kita menggunakan URL Helper$this->load->helper('url');redirect('/login');

Satu hal yang perlu diingat adalah kita men-direct URI, jadi JANGAN tulis link lengkap. Kalau ingin mendapat kontrol lebih, lebih baik menggunakan yang versi Output Class

Validasi FormBiar lebih gampang harus kasih contoh keseluruhan. Jadi disini ada kasus dimana kita akan validasi form registrasi. User akan memasukkan data ke form, jika semua syarat terpenuhi maka akan keluar informasi yang diinput user, kalau salah maka akan tampilkan form dengan pesan kesalahan. Kita perlu controller dan view. Untuk controller codingnya demikian:

<?phpclass Register extends Controller

{function Register(){

parent::Controller();}

function index(){

$this->load->library('form_validation');$this->form_validation->set_rules('nama','Nama', 'trim|required');$this->form_validation->set_rules('umur','Umur', 'trim|required|

is_natural');$this->form_validation->set_rules('alamat', 'trim|Alamat|

required');$this->form_validation->set_rules('sex', 'Sex', 'required');$this->form_validation->set_rules('email','Email', 'trim|required|

valid_email');

if ($this->form_validation->run()==false){$this->load->view('feedbackview');

}else{echo "Sukses <br/>";$nama = $this->input->post('nama');$umur = $this->input->post('umur');$alamat = $this->input->post('alamat');$jeniskelamin = $this->input->post('sex');echo $nama."<br/>". $umur. "<br/>".$alamat. "<br/>" .

$jeniskelamin;}

}}

?>

Penjelasan:$this->load->library(‘form_validation’) untuk meload Class Form Validation supaya dapat mengggunakan fungsi-fungsi validasi.

$this->form_validation->run() untuk melakukan validasi. Jika misalnya kita tidak melakukan set_rules() maka hasilnya akan selalu false.

$this->form_validation->set_rules(‘param1’,’param2’, ‘param3’); untuk menentukan peraturan yang harus divalidasikan ketika run() dijalankan.

Keterangan set_rules() : Param1 berisi nama objek yang ingin divalidasi. Param2 berisi nama yang akan ditampilkan pesan error. Param3 berisi daftar-daftar aturan validasi.

Daftar-daftar aturan validasi yang sering dipakai:

required : Harus diisimatches[x] : Harus sesuai dengan x, x harus diisimin_length[x] : Panjang minimal, x harus diisi angkamax_length[x] : Panjang maksimum, x harus diisi angkaexact_length[x] : Panjang pasti, x harus diisi angkaalpha : Harus huruf alphabetalpha_numeric : Harus huruf alphabet atau angkaalpha_numeric : Harus alpha-numeric ditambah strip dan garis bawahnumeric : Harus berupa karakter angkainteger : Harus berupa angka integeris_natural : Harus berupa angka natural (0, 1, 2, 3, …)is_natural_no_zero : Harus berupa angka natural tanpa nol (1, 2, 3…)valid_email : Harus berbentuk emailvalid_emails : Harus berupa email-email yang dipisah komavalid_ip : Harus berbentuk IPvalid_base64 : Harus berupa a-z, A-Z,0-9, +, -

Kemudian membuat view yang berisi :<?php $this->load->helper('form');echo validation_errors();echo form_open_multipart('/feedback'); //pakai multipart karena ada upload file?><table> <tr><td>Nama</td><td><?php echo form_input('nama',set_value('nama'));?></td></tr> <tr><td>Umur</td><td><?php echo form_input('umur',set_value('umur'));?></td></tr> <tr><td>Alamat</td><td><?php echo form_textarea('alamat',set_value('alamat'));?></td></tr> <tr> <td>Jenis Kelamin</td> <td> <label><?php echo form_radio('sex','male',true); ?> Laki-laki</label> <label><?php echo form_radio('sex','female'); ?> Perempuan</label> </td> </tr> <tr> <td>Kota</td> <td> <?php $pilihan = array('Jakarta'=>'Jakarta', 'Medan'=>'Medan',

'Pontianak'=>'Pontianak', 'Batam'=>'Batam'); echo form_dropdown('kota',$pilihan, set_value('kota')); ?>

</td> </tr> <tr> <td>File Gambar</td> <td><?php echo form_upload('gambar',set_value('gambar'));?></td> </tr> <tr> <td>Email</td> <td><?php echo form_input('email',set_value('email')); ?> </tr> <tr> <td></td><td><?php echo form_submit('submit','Kirim');?></td> </tr></table><?php echo form_close(); ?>

Penjelasan:echo validation_errors(); akan menampilkan pesan error jika validasi salah. Karena saya taruh sintaksnya diatas form, maka nantinya pesan error akan muncul disitu. Jadi peletakan ini tergantung sesuai posisi yang diinginkan.

set_value('x') :Untuk mengisi objek itu lagi jika ternyata masih belum valid. Kalau dulunya kami menggunakan Cookie dan ketik panjang2, sekarang tidak usah. Biasanya set_value() ditaruh di parameter kedua, karena parameter tersebut memang untuk value/nilai

Mengubah pesan errorPesannya biasanya berupa bahasa Inggris. Untuk mengubah isi pesan error maka ganti-ganti isi file di system/language/english/form_validation_lang.php

TemplateKita dapat menggunakan template di CodeIgniter, hanya sayang saja tidak tersedia built-in. Tapi jangan sedih, karena saya sudah menemukan library buatan orang yang sangat sederhana untuk membuat template. Download di http://maestric.com/wiki/lib/exe/fetch.php?id=&cache=cache&media=php:ci_template_library3.zip Kemudian taruh file Template.php yang ada dalam zip itu kedalam /system/libraries/

Cara Penggunaan:Kalau biasanya untuk buka view kita menggunakan $this->load->view('about', $data);

Maka jika sudah menggunakan template kita tinggal :$this->template->load('templateview', 'about', $data);

Dimana templateview ini juga terletak di folder /application/views.

Hal yang harus diperhatikan adalah didalam template (dalam contoh ini berarti file templateview.php) harus ada $contents (gak boleh nama lain) misalnya<html><title>Halaman Utama</title><body><?=$contents ?></body></html>

Kalau misalnya ada lebih dari satu yang ingin dikirim kamu bisa buat variabel lain selain $contents. Yang jelas $contents harus ada. Misalnya dibawah ini adalah contoh file templateview.php<html><title> <?= $judul ?></title><body><?= contents ?></body></html>

Maka di controller kita tinggal mengetik begini (contoh yang sama dengan atas):$this->template->set('title', 'Halaman Utama');$this->template->load('templateview', 'about',$data);

Menggunakan SessionUntuk memanfaatkan session harus load dahulu$this->load->library('session');

Untuk set nilai$this->session->set_userdata(‘item’, ‘nilai’);

Kalau mau ambil nilai$this->session->userdata(‘item’);

Untuk hapus$this->session->unset_userdata(‘item’);

Hancurkan session$this->session->sess_destroy();

Menggunakan CookieUntuk memanfaatkan cookie harus load dahulu$this->load->helper(‘cookie’);

Untuk set cookieset_cookie($nama, $nilai, $kadaluarsa, $domain, $path, $prefix);Keterangan : - $nama merupakan nama cookie

$nilai merupakan nilai yang diingin simpan$kadaluarsa ditentukan detik lamanya hidup. Gak usah ditambahin time() lagi. Cukup tentukan berapa lama dia bertahan.$domain perlu kalo cookie nya mau simpan dalam jangkauan antar domain$path biasanya tidak perlu diisi karena fungsi set path root$prefix hanya dipakai kalau kamu takut terjadi tabrakan nama dengan cookie lain.

Untuk ambil nilai cookieget_cookie($nama);

Delete cookiedelete_cookie($nama);

PagingUntuk load menggunakan:$this->load->library('pagination');

Contoh bentuk dasar setting:

$config['base_url'] = 'http://example.com/index.php/test/page/';$config['total_rows'] = '200';$config['per_page'] = '20'; $this->pagination->initialize($config);echo $this->pagination->create_link();

Contoh nyata:Misalnya kita ingin menampilkan daftar produk. Sekedar diketahui jumlah produk itu adalah 23 buah. Kita ingin setiap halaman hanya bisa menampilkan 5 produk.

Maka di controller kita harus setting. Controller ini bernama Main dengan alamat /application/controllers/main.php<?php

class Main extends Controller {

function Main(){

parent::Controller();}

function produk($id=1) { $this->load->model('Productmodel'); $this->load->library('pagination'); //pagination $config['base_url']= 'index.php/main/produk/'; $config['total_rows'] = $this->Productmodel->maksproduk(); $config['per_page'] =5; $this->pagination->initialize($config); $data['paging']= $this->pagination->create_links();

//tampilproduk $data['produk'] = $this->Productmodel->tampilproduk("limit $id,5"); /*intinya select * from msproduk limit $id, 5(lebih jelas lihat di model nantinya)*/ //meload view $this->load->view('productview',$data); }

function index(){}

}

Di view kita tinggal menampilkan saja <?php foreach($produk->result() as $row){ echo $row->idproduk."</td>"; echo $row->namaproduk; echo $row->ukuran; echo "<br/>"; } echo $paging; ?>

Kalau ingin lebih mengerti model yang dipakai silahkan lihat ini:<?php

class Productmodel extends Model{ function Productmodel() { parent::Model(); }

function maksproduk() { $query = $this->db->query("SELECT idproduk FROM msproduk"); return $query->num_rows(); }

function tampilproduk($additional='',$idkategori='-1') { if ($idkategori==-1){ $query = $this->db->query("SELECT idproduk, namaproduk, ukuran,

jumlah, idkategori, gambar1, gambar2, carapakai FROM msproduk ".$additional);

}else{ $query = $this->db->query("SELECT idproduk, namaproduk, ukuran,

jumlah, idkategori, gambar1, gambar2, carapakai FROM msproduk WHERE idkategori like '$idkategori' ".$additional);

} return $query; }

}

?>

Upload file Untuk dapat menggunakannya harus load:$this->load->library('upload');

Dibawah ini adalah contoh untuk upload gambar sederhana

Di controller kita beri nama doupload.php di alamat /applications/controllers/doupload.php:<?phpclass Doupload extends Controller{function Doupload(){ parent::Controller();}

function index(){$config['upload_path'] = './upload/';$config['max_size'] = '100';$config['allowed_types'] = 'gif|jpeg|png';$config['max_width'] = '1024';$config['max_height'] = '768';$this->upload->initialize('upload');$this->upload->do_upload();}

}

Kemudian di bagian view kita buat form untuk upload gambar dengan alamat /applications/views/upload.phpecho form_open_multipart('/feedback'); //harus form_open_multipart() soalnya upload file?><table> <tr> <td>File Gambar</td>

<td><?php echo form_upload('userfile');?></td> </tr> <tr> <td></td><td><?php echo form_submit('submit','Kirim');?></td> </tr></table><?php echo form_close(); ?>

Satu hal yang harus diingat, karena di controller tadi hanya ditulis do_upload() tanpa isi parameter maka nama form_upload() harus "userfile". Kalau selain "userfile" maka ketika do_upload() harus diisi parameter nama form_upload() nya

PentutupanSekian diktat mengenai CodeIgniter. Jika ingin melihat lebih detail apa saja yang dapat dipakai di CodeIgniter silhakan lihat dibagian User Guide CodeIgniter karena Guide ini sudah sangat lengkap (bahkan dipuji sebagai salah satu framework PHP yang paling bagus dokumentasinya).