Modul CodeIgniter Update Lengkap
Modul CodeIgniter Update Lengkap
Pemrograman Framework
Office:
Jl. Olat Maras
Sumbawa Besar, NTB
Website: uts.ac.id
Email: [email protected]
Univeristas Teknologi Sumbawa
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan ke hadirat Allah Swt. Alhamdulillahi Rabbil
’Aalamin, atas limpahan rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan modul
ini. Shalawat dan salam dengan ucapan Allahumma sholli ’ala Muhammad wa ’ala ali Muhammad
penulis sampaikan untuk junjungan kita Nabi besar Muhammad Saw.
Seperti layaknya sebuah modul, maka pembahasan dimulai dengan menjelaskan tujuan
yang hendak dicapai. Dengan demikian pengguna modul ini secara mandiri dapat membuat
Aplikasi berbasis Website dengan menggunakan CodeIgniter.
Penulis menyadari sepenuhnya bahwa modul ini tentu punya banyak kekurangan. Untuk
itu penulis dengan berlapang dada menerima masukan dan kritikan konstruktif dari berbagai pihak
demi kesempurnaannya di masa yang akan datang. Akhirnya kepada Allah jualah penulis
bermohon semoga semua ini menjadi amal saleh bagi penulis dan bermanfaat bagi pembaca.
Kata Pengantar
Daftar Isi
1. HOME ................................................................................................................ 1
1.1. Apa Itu CodeIgniter? ................................................................................... 1
1.2. User / Pemakai ............................................................................................. 1
1.3. Kelebihan CodeIgniter ................................................................................. 1
2. OVERVIEW ..................................................................................................... 1
3. INSTILING APPLICATION .......................................................................... 2
4. APPLICATION ARCHITECTURE .............................................................. 3
4.1. Arsitektur Aplikasi....................................................................................... 3
4.2. Struktur Direktori......................................................................................... 4
4.3. Aplikasi ........................................................................................................ 5
4.4. Sistem .......................................................................................................... 5
4.5. Panduan Pengguna ....................................................................................... 6
5. MVC FRAMEWORK ...................................................................................... 6
6. BASIC CONCEPTS ......................................................................................... 7
6.1. Pengontrol .................................................................................................... 7
6.2. Membuat Pengendali ................................................................................... 7
6.3. Memanggil Pengendali ................................................................................ 8
6.4. Membuat & Memanggil Metode Konstruktor ............................................. 8
6.5. Poin untuk Diingat ....................................................................................... 9
6.6. Tampilan .................................................................................................... 10
6.7. Model ......................................................................................................... 11
6.8. Membuat Kelas Model .............................................................................. 11
6.9. Membuat Model......................................................................................... 12
6.10. Membuat Model Otomatis ....................................................................... 12
6.11. Pembantu ................................................................................................. 12
6.12. Pembantu yang sering digunakan ............................................................ 13
7. CONFIGURATION ....................................................................................... 15
7.1. Mengkonfigurasi URL ............................................................................... 15
7.2. Konfigurasi Basis Data .............................................................................. 15
7.3. Konfigurasi Pengisian Otomatis ................................................................ 17
8. WORKING WITH DATABASE .................................................................. 18
8.1. Menghubungkan ke Database .................................................................... 18
8.2. Memasukkan Catatan................................................................................. 19
8.3. Memperbarui Catatan ................................................................................ 19
8.4. Menghapus Rekaman................................................................................. 21
8.5. Memilih Catatan ........................................................................................ 21
8.6. Menutup Koneksi....................................................................................... 22
9. LIBRARIES .................................................................................................... 27
91. Kelas Perpustakaan ..................................................................................... 27
9.2. Membuat Perpustakaan .............................................................................. 27
9.3. Perpanjang Native Library ......................................................................... 28
9.4. Ganti Perpustakaan Asli ............................................................................ 29
10. ERROR HANDLING ................................................................................... 29
11. FILE UPLOADING ..................................................................................... 32
12. SENDING EMAIL ....................................................................................... 36
12.1. Fitur fitur mengirim email : ................................................................... 36
12.2. Mengirim Email .................................................................................... 39
13. FORM VALIDATION ................................................................................. 42
14. SESSION MANAGEMENT ........................................................................ 46
14.1. Menginisialisasi Sesi ............................................................................. 46
14.2. Tambahkan Data Sesi ............................................................................ 46
14.3. Hapus Data Sesi..................................................................................... 47
14.4. Ambil Data Sesi..................................................................................... 47
15. FLASH DATA .............................................................................................. 49
16. TEMPDATA ................................................................................................. 52
16.1. Tambahkan Tempdata ........................................................................... 52
16.2. Ambil Tempdata .................................................................................... 53
16.3. Hapus Tempdata .................................................................................... 53
16.4. Menghancurkan Sesi ............................................................................. 56
17. COOKIE MANAGEMENT ........................................................................ 56
18. COMMON FUNCTION .............................................................................. 59
19. PAGE CACHING ......................................................................................... 64
19.1. Aktifkan Caching .................................................................................. 64
19.2. Nonaktifkan Caching ............................................................................. 64
20. PAGE REDIRECTION ............................................................................... 66
21. APPLICATION PROFILING .................................................................... 68
21.1. Aktifkan Pembuatan Profil .................................................................... 68
21.2. Nonaktifkan Profiling ............................................................................ 68
21.3. Aktifkan / Nonaktifkan Bagian Profiler ................................................ 68
22. BENCHMARKING ...................................................................................... 70
23. ADDING JS AND CSS ................................................................................ 73
24. INTERNATIONALIZATION..................................................................... 75
24.1. Membuat file Bahasa ............................................................................. 75
24.2. Memuat file bahasa ............................................................................... 76
24.3. Mengambil Teks Bahasa ....................................................................... 76
24.4. Muat Ulang Otomatis Bahasa................................................................ 76
25. SECURITY ................................................................................................... 81
25.1. Pencegahan XSS.................................................................................... 81
25.2. Pencegahan Injeksi SQL ....................................................................... 81
25.3. Escaping Queries ................................................................................... 82
25.4. Query Biding ......................................................................................... 82
25.5. Active Record Class .............................................................................. 82
25.6. Menyembunyikan Kesalahan PHP ........................................................ 82
25.7. Pencegahan CSRF ................................................................................. 83
25.8. Penanganan Kata Sandi ......................................................................... 84
Modul Pelatihan Pemrograman Framework
BAB I
TUTORIAL CODEIGNITER
1. HOME
1.1 Apa Itu CodeIgniter?
CodeIgniter adalah framework PHP yang aman dengan kapasitas yang sangat kecil, dibangun
untuk pengembang yang membutuhkan toolkit sederhana dan elegan untuk membuat aplikasi
web berfitur lengkap. CodeIgniter dibuat oleh EllisLab, dan sekarang merupakan proyek dari
British Columbia Institute of Technology.
Jika Anda mengenal PHP dengan baik, maka CodeIgniter akan membuat tugas Anda lebih
mudah. Ia memiliki koleksi perpustakaan yang sangat banyak. Dengan menggunakan
CodeIgniter, Anda akan menghemat banyak waktu, jika Anda mengembangkan situs web dari
awal. Tidak hanya itu, situs web yang dibangun di CodeIgniter juga aman, karena memiliki
kemampuan untuk mencegah berbagai serangan yang terjadi melalui situs web.
2. OVERVIEW
Fitur CodeIgniter
Beberapa fitur penting CodeIgniter tercantum di bawah ini adalah :
• Sistem Berbasis Model-View-Controller
• Sangat Ringan
• Kelas basis data berfitur lengkap dengan dukungan untuk beberapa platform.
• memiliki Database Builder Kueri
• Formulir dan Validasi Data
• Keamanan dan Penyaringan XSS
• Manajemen Sesi
• Dilengkapi dengan Email Kelas. Mendukung Lampiran, email HTML / Teks, banyak protokol
(sendmail, SMTP, dan Mail) dan banyak lagi.
• Perpustakaan Manipulasi Gambar (memotong, mengubah ukuran, memutar, dll.). Mendukung
GD, ImageMagick, dan NetPBM
• Terdapat Kelas Mengunggah File
• Kelas FTP
• Lokalisasi
• Pagination
• Enkripsi data
• Tersedia halaman caching yang banyak
• Kesalahan Logging
• Profil Aplikasi
• Terdapat Kelas Kalender
• Kelas Agen Pengguna
• Kelas Pengkodean Zip
• Kelas Mesin Template
• Kelas Pelacakan
• Perpustakaan XML-RPC
• Kelas Pengujian Unit
• URL Ramah mesin pencari
• Routing URI yang Fleksibel
• terdapat Hooks dan Ekstensi Kelas
• Perpustakaan besar yang sangat membantu.
3. INSTILING APPLICATION
Cara Menginstal CodeIgniter sangat mudah, Ikuti saja langkah-langkah yang diberikan di
bawah ini :
➢ Langkah-1 - Unduh CodeIgniter dari tautan CodeIgniter
Ada dua opsi warisan berbeda dan terbaru. Nama-nama itu sendiri deskriptif diri. legacy
memiliki versi kurang dari 2.x dan terbaru memiliki versi 3.0. Kita juga bisa menggunakan
GitHub dan mendapatkan semua skrip terbaru ..
➢ Langkah-2 - Buka ritsleting folder.
4. APPLICATION ARCHITECTURE
4.1. Arsitektur Aplikasi
• Langkah pertama Seperti yang ditunjukkan pada gambar, setiap kali permintaan datang
ke CodeIgniter, pertama-tama akan pergi ke halaman index.php.
• Pada langkah kedua, Routing akan memutuskan apakah akan meneruskan permintaan ini
ke langkah-3 untuk caching atau meneruskan permintaan ini ke langkah-4 untuk
pemeriksaan keamanan.
• Jika halaman yang diminta sudah dalam Caching, maka Routing akan meneruskan
permintaan ke langkah-3 dan jawabannya akan kembali ke pengguna. Jika halaman yang
diminta tidak ada dalam Caching, maka Routing akan melewati halaman yang diminta ke
langkah-4 untuk pemeriksaan Keamanan.
• Sebelum meneruskan permintaan ke Pengontrol Aplikasi, Keamanan data yang
dikirimkan diperiksa. Setelah pemeriksaan Keamanan, Pengontrol Aplikasi memuat
Model, Perpustakaan, Pembantu, Plugin, dan Skrip yang diperlukan dan meneruskannya
ke View.
• Tampilan akan membuat halaman dengan data yang tersedia dan meneruskannya untuk
Caching. Karena halaman yang diminta tidak di-cache sebelum jadi kali ini akan di-cache
dalam Caching, untuk memproses halaman ini dengan cepat untuk permintaan di masa
mendatang.
Struktur direktori CodeIgniter dibagi menjadi 3 folder yaitu : Aplikasi, Sistem, dan Panduan
pengguna.
4.3 Aplikasi
Seperti namanya menunjukkan folder Aplikasi berisi semua kode aplikasi Anda yang sedang
Anda bangun. Ini adalah folder tempat Anda akan mengembangkan proyek Anda. Folder
Aplikasi berisi beberapa folder lain, yang dijelaskan di bawah ini.
• Cache - Folder ini berisi semua halaman cache aplikasi Anda. Halaman yang di-cache ini
akan meningkatkan kecepatan keseluruhan untuk mengakses halaman.
• Config - Folder ini berisi berbagai file untuk mengkonfigurasi aplikasi. Dengan bantuan
file config.php, pengguna dapat mengkonfigurasi aplikasi. Menggunakan file
database.php, pengguna dapat mengkonfigurasi database aplikasi.
• Pengontrol - Folder ini menampung pengontrol aplikasi Anda. Ini adalah bagian dasar
dari aplikasi Anda.
• Inti - Folder ini akan berisi kelas dasar aplikasi Anda.
• Pembantu - Dalam folder ini, Anda dapat menempatkan kelas pembantu aplikasi Anda.
• Kait - File dalam folder ini menyediakan sarana untuk memanfaatkan dan memodifikasi
cara kerja kerangka tanpa meretas file inti.
• Bahasa - Folder ini berisi file terkait bahasa.
• Perpustakaan - Folder ini berisi file perpustakaan yang dikembangkan untuk aplikasi
Anda.
• Log - Folder ini berisi file yang terkait dengan log sistem.
• Model - Login basis data akan ditempatkan di folder ini.
• Third_party - Di folder ini, Anda dapat menempatkan plugin apa pun, yang akan
digunakan untuk aplikasi Anda.
• Tampilan - File HTML aplikasi akan ditempatkan di folder ini.
4.4. Sistem
Folder ini berisi kode inti CodeIgniter, pustaka, helper, dan file lainnya, yang membantu
memudahkan pengodean. Perpustakaan dan bantuan ini dimuat dan digunakan dalam
pengembangan aplikasi web.
Folder ini berisi semua kode CodeIgniter dari konsekuensi, disusun dalam berbagai folder.
• Inti - Folder ini berisi kelas inti CodeIgniter. Jangan modifikasi apa pun di sini. Semua
pekerjaan Anda akan berlangsung di folder aplikasi. Bahkan jika maksud Anda adalah
untuk memperpanjang inti CodeIgniter, Anda harus melakukannya dengan kait, dan kait
langsung di folder aplikasi.
• Basis data - Folder basis data berisi driver basis data inti dan utilitas basis data lainnya.
• Font - Folder font berisi informasi dan utilitas terkait font.
• Pembantu - Folder pembantu berisi pembantu CodeIgniter standar (seperti pembantu
tanggal, cookie, dan URL).
• Bahasa - Folder bahasa berisi file bahasa. Anda dapat mengabaikannya untuk saat ini.
4.5.Panduan pengguna
Ini adalah panduan pengguna untuk CodeIgniter. Pada dasarnya, ini adalah versi offline dari
panduan pengguna di situs web CodeIgniter. Dengan menggunakan ini, seseorang dapat
mempelajari berbagai fungsi perpustakaan, pembantu dan kelas. Disarankan untuk membaca
panduan pengguna ini sebelum membangun aplikasi web pertama Anda di CodeIgniter. Di
samping ketiga folder ini, ada satu lagi file penting bernama "index.php". Dalam file ini, kita
dapat mengatur lingkungan aplikasi dan tingkat kesalahan dan kita dapat mendefinisikan
sistem dan nama folder aplikasi. Disarankan, jangan mengedit pengaturan ini jika Anda tidak
memiliki cukup pengetahuan tentang apa yang akan Anda lakukan.
5. MVC FRAMEWORK
CodeIgniter didasarkan pada pola pengembangan Model-View-Controller (MVC).
MVC adalah pendekatan perangkat lunak yang memisahkan logika aplikasi dari presentasi. Dalam
praktiknya, ini memungkinkan halaman web Anda untuk mengandung skrip minimal karena
presentasi terpisah dari skrip PHP.
a. Model mewakili struktur data Anda. Biasanya, kelas model Anda akan berisi fungsi yang
membantu Anda mengambil, menyisipkan, dan memperbarui informasi dalam basis data
Anda.
b. View adalah informasi yang disajikan kepada pengguna. Tampilan biasanya akan menjadi
halaman web, tetapi dalam CodeIgniter, tampilan juga bisa berupa fragmen halaman seperti
header atau footer. Ini juga bisa berupa halaman RSS, atau "halaman" jenis lainnya.
c. Controller berfungsi sebagai perantara antara Model, Tampilan, dan sumber daya lainnya yang
diperlukan untuk memproses permintaan HTTP dan menghasilkan halaman web.
6. BASIC CONCEPTS
6.1. Pengontrol
Pengontrol adalah file kelas sederhana. Seperti namanya, itu mengontrol seluruh aplikasi oleh
URI.
Simpan file-file ini sebagaimana adanya. Buat file baru di bawah jalur yang sama bernama
"Test.php". Tulis kode berikut dalam file itu
<?php
class Test extends CI_Controller {
http://www.your-domain.com/index.php/test
Perhatikan kata "test" di URI di atas setelah index.php. Ini menunjukkan nama kelas
controller. Seperti yang telah kita beri nama controller "Test", kita menulis "test" setelah
index.php. Nama kelas harus dimulai dengan huruf besar tetapi kita harus menulis huruf kecil
ketika kita memanggil controller itu oleh URI. Sintaks umum untuk memanggil controller
adalah sebagai berikut.
http://www.your-domain.com/index.php/controller/method-name
<?php
class Test extends CI_Controller {
http://www.your-domain.com/index.php/test
http://www.your-domain.com/index.php/test/index
http://www.your-domain.com/index.php/test/hello
Setelah mengunjungi URI pertama di browser, kami mendapatkan output seperti yang
ditunjukkan pada gambar di bawah ini. Seperti yang Anda lihat, kami mendapat hasil dari
metode "indeks", meskipun kami tidak memberikan nama metode URI. Kami hanya
menggunakan nama pengontrol di URI. Dalam situasi seperti itu, CodeIgniter memanggil
metode standar "indeks".
Mengunjungi URI kedua di browser, kami mendapatkan output yang sama seperti yang
ditunjukkan pada gambar di atas. Di sini, kami telah memasukkan nama metode setelah nama
pengontrol di URI. Karena nama metode ini adalah "indeks", kami mendapatkan hasil yang
sama.
Mengunjungi URI ketiga di browser, kami mendapatkan output seperti yang ditunjukkan pada
gambar di bawah ini. Seperti yang Anda lihat, kita mendapatkan output dari metode "halo"
karena kita telah melewati "halo" sebagai nama metode, setelah nama controller "test" di URI.
6.6. Tampilan
Ini bisa berupa laman web sederhana atau kompleks, yang bisa dipanggil oleh pengontrol.
Halaman web dapat berisi tajuk, catatan kaki, bilah sisi dll. Tampilan tidak dapat dipanggil
secara langsung. Mari kita buat tampilan sederhana. Buat file baru di bawah aplikasi / tampilan
dengan nama "test.php" dan salin kode yang diberikan di bawah ini dalam file itu.
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>CodeIgniter View Example</title>
</head>
<body>
CodeIgniter View Example
</body>
</html>
Ubah kode file aplikasi / pengontrol / test.php seperti yang ditunjukkan di bawah ini.
Tampilan dapat dimuat oleh sintaks berikut -
$this->load->view('name');
Di mana nama adalah file tampilan, yang sedang dirender. Jika Anda berencana untuk
menyimpan file tampilan di beberapa direktori maka Anda dapat menggunakan sintaks berikut
Tidak perlu menentukan ekstensi sebagai php, kecuali sesuatu selain .php digunakan.
Metode index () memanggil metode view dan meneruskan "test" sebagai metode argument to
view () karena kami telah menyimpan pengkodean html dalam file "test.php" di bawah
application / views / test.php.
<?php
class Test extends CI_Controller {
6.7. Model
Kelas model dirancang untuk bekerja dengan informasi dalam database. Sebagai contoh, jika
Anda menggunakan CodeIgniter untuk mengelola pengguna di aplikasi Anda, maka Anda
harus memiliki kelas model, yang berisi fungsi untuk menyisipkan, menghapus, memperbarui,
dan mengambil data pengguna Anda.
<?php
Class Model_name extends CI_Model {
Di mana model_name adalah nama model yang akan dimuat. Setelah memuat model, Anda
dapat memanggil metode seperti yang ditunjukkan di bawah ini.
/*
| ---------------------------------------------------------------
| Auto-Load Models
| ---------------------------------------------------------------
| Prototype:
|
| $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|
| $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();
Seperti yang ditunjukkan pada gambar di atas, masukkan nama model dalam array yang
Anda ingin autoload dan itu akan dimuat secara otomatis, saat sistem dalam keadaan
inisialisasi dan dapat diakses di seluruh aplikasi.
6.11. Pembantu
Seperti namanya, ini akan membantu Anda membangun sistem Anda. Ini dibagi menjadi
beberapa fungsi kecil untuk melayani berbagai fungsi. Sejumlah pembantu tersedia di
CodeIgniter, yang tercantum dalam tabel di bawah ini. Kita juga bisa membangun pembantu
kita sendiri.
Pembantu biasanya disimpan di sistem / pembantu Anda, atau direktori aplikasi / pembantu.
Pembantu kustom disimpan dalam direktori aplikasi / pembantu dan pembantu sistem
disimpan di direktori sistem / pembantu. CodeIgniter akan terlihat pertama di direktori
aplikasi / pembantu Anda. Jika direktori tidak ada atau pembantu yang ditentukan tidak
ditemukan, CodeIgniter sebaliknya akan mencari di sistem global Anda / helpers / direktori.
Setiap helper, apakah itu custom atau system helper, harus dimuat sebelum
menggunakannya.
Di mana nama adalah nama pembantu. Misalnya, jika Anda ingin membuat Pembantu
URL, maka dapat dimuat sebagai berikut.
(: num) - Ini akan cocok dengan segmen yang hanya berisi angka.
(: any) - Ini akan cocok dengan segmen yang mengandung karakter apa pun.
Contoh :
$ route ['product /: num'] = 'catalog / product_lookup';
Dalam contoh di atas, jika kata literal "produk" ditemukan di segmen pertama URL, dan
angka ditemukan di segmen kedua, kelas "katalog" dan metode "product_lookup"
digunakan sebagai gantinya.
• Ekspresi Reguler
Seperti wildcard, kita juga bisa menggunakan ekspresi reguler di bagian kunci $ array
route. Jika ada URI yang cocok dengan ekspresi reguler, maka akan dialihkan ke bagian
nilai yang diatur ke dalam array $ route.
Contoh :
Dalam contoh di atas, URI yang mirip dengan produk / sepatu / 123 akan memanggil
kelas pengontrol "shoes" dan metode "id_123".
7. Configuration
7.1. Mengkonfigurasi URL
URL dasar situs dapat dikonfigurasi dalam file application / config / config.php. Ini adalah
URL ke root CodeIgniter Anda. Biasanya, ini akan menjadi URL dasar Anda, dengan garis
miring. Bisa dibuka pada http://example.com/
Jika ini tidak disetel, maka CodeIgniter akan mencoba menerka protokol, domain dan jalur
untuk instalasi Anda. Namun, Anda harus selalu mengonfigurasi ini secara eksplisit dan tidak
pernah mengandalkan autoguessing, terutama di lingkungan produksi. Anda dapat
mengonfigurasi URL dasar dalam array $ config dengan kunci “base_url” seperti yang
ditunjukkan di bawah ini :
$ config ['base_url'] = 'http://your-domain.com';
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
Anda dapat meninggalkan beberapa opsi ke nilai defaultnya kecuali nama host, nama
pengguna, kata sandi, basis data, dan driver.
• hostname - Tentukan lokasi basis data Anda di sini mis. Localhost atau alamat IP
• nama pengguna - Tetapkan nama pengguna dari basis data Anda di sini.
• kata sandi - Tetapkan kata sandi basis data Anda di sini.
• database - Tetapkan nama database di sini.
• dbdriver - Tetapkan jenis basis data yang Anda gunakan mis. MySQL, MySQLi, Postgre
SQL, ODBC, dan MS SQL.
Dengan mengubah kunci array $ db, Anda dapat mengatur konfigurasi database lainnya
seperti yang ditunjukkan di bawah ini. Di sini, kami telah menetapkan kunci untuk ‘pengujian’
untuk menetapkan basis data untuk lingkungan pengujian, dengan menjaga lingkungan basis
data lainnya sebagaimana adanya.
$db['test'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
Anda cukup beralih ke lingkungan yang berbeda dengan mengubah nilai variabel seperti yang
ditunjukkan di bawah ini -
• Driver - Kelas-kelas ini terletak di system / libraries / atau dalam direktori aplikasi /
libraries / Anda, tetapi juga ditempatkan di dalam subdirektori mereka sendiri dan mereka
memperluas kelas CI_Driver_Library. Mereka menawarkan beberapa opsi driver yang
dapat ditukar. Berikut ini adalah contoh untuk memuat driver cache secara otomatis.
• File pembantu - Ini adalah daftar file pembantu, untuk dimuat secara otomatis. Berikan
daftar pustaka dalam array, seperti yang ditunjukkan di bawah ini, untuk dimuat secara
otomatis oleh CodeIgniter. Dalam contoh yang diberikan, kami autoloading URL dan file
helper.
$ autoload ['helper'] = array ('url', 'file');
• File konfigurasi khusus - File ini dimaksudkan untuk digunakan, hanya jika Anda telah
membuat file konfigurasi khusus. Jika tidak, biarkan kosong. Berikut ini adalah contoh
cara memuat ulang otomatis lebih dari satu file konfigurasi.
$ autoload ['config'] = array ('config1', 'config2');
• File bahasa - Ini adalah daftar file bahasa, yang seharusnya dimuat secara otomatis.
Lihatlah contoh yang diberikan di bawah ini. Berikan daftar bahasa dalam array seperti
yang ditunjukkan di bawah ini untuk dimuat secara otomatis oleh CodeIgniter. Ingatlah
bahwa tidak termasuk bagian "_lang" dari file Anda. Misalnya, "codeigniter_lang.php"
akan dirujuk sebagai array ('codeigniter');
• Model - Ini adalah daftar file model, yang harus dimuat secara otomatis. Berikan daftar
model dalam array seperti yang ditunjukkan di bawah ini untuk dimuat secara otomatis
oleh CodeIgniter. Berikut ini adalah contoh cara memuat secara otomatis lebih dari satu
model file.
• Penghubung Manual - Jika Anda ingin konektivitas basis data hanya untuk beberapa
halaman, maka kita bisa menggunakan penghubung manual. Kita dapat terhubung ke
database secara manual dengan menambahkan baris berikut di kelas mana pun.
Contoh berikut menunjukkan cara memasukkan catatan di tabel stud. $ Data adalah array di
mana kita telah menetapkan data dan untuk memasukkan data ini ke induk tabel, kita hanya
perlu meneruskan array ini ke fungsi insert dalam table kedua
$data = array(
'roll_no' => ‘1’,
'name' => ‘Virat’
);
$this->db->insert("stud", $data);
8.3.Memperbarui Catatan
Untuk memperbarui catatan dalam database, fungsi pembaruan () digunakan bersama dengan
fungsi set () dan where () seperti yang ditunjukkan pada tabel di bawah ini. Fungsi set () akan
mengatur data yang akan diperbarui.
CI_DB_query_builder
Return Type
DB_query_builder instance
Returns
Object
Return Type
Bool
Return Type
$data = array(
'roll_no' => ‘1’,
'name' => ‘Virat’
);
$this->db->set($data);
$this->db->where("roll_no", ‘1’);
$this->db->update("stud", $data);
Mixed
Return Type
Gunakan kode berikut untuk menghapus catatan di tabel stud. Argumen pertama menunjukkan
nama tabel untuk menghapus catatan dan argumen kedua memutuskan catatan mana yang
akan dihapus.
Contoh
Buat kelas controller yang disebut Stud_controller.php dan simpan di application / controller
/ Stud_controller.php
Berikut adalah contoh lengkap, di mana semua operasi yang disebutkan di atas dilakukan.
Sebelum menjalankan contoh berikut, buat database dan tabel seperti yang diperintahkan pada
awal bab ini dan buat perubahan yang diperlukan dalam file konfigurasi database yang
disimpan di application / config / database.php
<?php
class Stud_controller extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->database();
}
$this->load->helper('url');
$this->load->view('Stud_view',$data);
}
$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);
$this->Stud_Model->insert($data);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);
$old_roll_no = $this->input->post('old_roll_no');
$this->Stud_Model->update($data,$old_roll_no);
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
}
?>
Buat kelas model yang disebut Stud_Model.php dan simpan di aplikasi / models /
Stud_Model.php
<?php
class Stud_Model extends CI_Model {
function __construct() {
parent::__construct();
}
Buat file tampilan bernama Stud_add.php dan simpan dalam aplikasi / views
/ Stud_add.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<?php
echo form_open('Stud_controller/add_student');
echo form_label('Roll No.');
echo
form_input(array('id'=>'roll_no','name'=>'roll_no'));
echo "<br/>";
echo form_label('Name');
echo form_input(array('id'=>'name','name'=>'name'));
echo "<br/>";
echo form_submit(array('id'=>'submit','value'=>'Add'));
echo form_close();
?>
</body>
</html>
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<form method = "" action = "">
<?php
echo form_open('Stud_controller/update_student');
echo form_hidden('old_roll_no',$old_roll_no);
echo form_label('Roll No.');
echo form_input(array('id'⇒'roll_no',
'name'⇒'roll_no','value'⇒$records[0]→roll_no));
echo "
";
echo form_label('Name');
echo form_input(array('id'⇒'name','name'⇒'name',
'value'⇒$records[0]→name));
echo "
";
echo form_submit(array('id'⇒'sub
mit','value'⇒'Edit'));
echo form_close();
?>
</form>
</body>
</html>
Buat file tampilan bernama Stud_view.php dan simpan di aplikasi / views / Stud_view.php
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "utf-8">
<title>Students Example</title>
</head>
<body>
<a href = "<?php echo base_url(); ?>
index.php/stud/add_view">Add</a>
foreach($records as $r) {
echo "<tr>";
echo "<td>".$i++."</td>";
echo "<td>".$r->roll_no."</td>";
echo "<td>".$r->name."</td>";
echo "<td><a href =
'".base_url()."index.php/stud/edit/"
.$r->roll_no."'>Edit</a></td>";
echo "<td><a href =
'".base_url()."index.php/stud/delete/"
.$r->roll_no."'>Delete</a></td>";
echo "<tr>";
}
?>
</table>
</body>
</html>
Buat perubahan berikut pada file rute di application / config / routes.php dan tambahkan baris berikut
di akhir file.
$route['stud'] = "Stud_controller";
$route['stud/add'] = 'Stud_controller/add_student';
$route['stud/add_view']='Stud_controller/add_student_view';
$route['stud/edit/(\d+)'] =
'Stud_controller/update_student_view/$1';
$route['stud/delete/(\d+)'] =
'Stud_controller/delete_student/$1';
Sekarang, mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. Ganti
yoursite.com dengan URL Anda.
http://yoursite.com/index.php/stud
9. Libraries
Bagian penting dari kerangka kerja CodeIgniter adalah perpustakaan. Ini menyediakan
serangkaian perpustakaan yang kaya, yang secara tidak langsung meningkatkan kecepatan
pengembangan aplikasi. Pustaka sistem terletak di sistem / pustaka. Yang perlu kita lakukan adalah
memuat pustaka yang ingin kita gunakan. Perpustakaan dapat dimuat seperti yang ditunjukkan di
bawah ini.
Di mana nama kelas adalah nama perpustakaan yang ingin kita muat. Jika kita ingin
memuat beberapa pustaka, maka kita cukup meneruskan sebuah array sebagai fungsi argumen ke
pustaka () seperti yang ditunjukkan di bawah ini.
Mylibrary.php
class Mylibrary {
Pustaka di atas dapat dimuat dengan hanya menjalankan baris berikut di controller Anda.
mylibrary adalah nama perpustakaan Anda dan Anda dapat menulisnya dalam huruf kecil
maupun huruf besar. Gunakan nama perpustakaan tanpa ekstensi ".php". Setelah memuat
perpustakaan, Anda juga dapat memanggil fungsi kelas itu seperti yang ditunjukkan di bawah
ini.
Di sini, dalam contoh di atas, kelas MY_Email memperluas kelas email perpustakaan asli
CI_Email. Perpustakaan ini dapat dimuat dengan cara standar memuat perpustakaan email.
Simpan kode di atas dalam file My_Email.php
Class CI_Email {
Sering kali, saat menggunakan aplikasi, kami menemukan kesalahan. Sangat mengganggu
bagi pengguna jika kesalahan tidak ditangani dengan benar. CodeIgniter menyediakan mekanisme
penanganan kesalahan yang mudah.
Lingkungan aplikasi Anda dapat diubah, dengan mengubah baris yang diberikan di bawah
ini dari file index.php. Ini dapat diatur untuk apa pun tetapi biasanya ada tiga nilai (pengembangan,
pengujian, produksi) yang digunakan untuk tujuan ini.
Lingkungan yang berbeda akan memerlukan tingkat kesalahan yang berbeda. Secara
default, mode pengembangan akan menampilkan kesalahan dan pengujian dan mode langsung
akan menyembunyikannya. CodeIgniter menyediakan tiga fungsi seperti yang ditunjukkan di
bawah ini untuk menangani kesalahan.
fungsi show_error () menampilkan kesalahan dalam format HTML di bagian atas layar.
Mixed
Return Type
log_message() fungsi digunakan untuk menulis pesan log. Ini berguna ketika
Anda ingin menulis pesan khusus.
Void
Return Type
Logging dapat diaktifkan di file application / config / config.php. Diberikan di bawah ini adalah tangkapan
layar file config.php, di mana Anda dapat menetapkan nilai yang belum pasti.
/*
|--------------------------------------------------------------------------------
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The
| 2 = Debug Message
| 3 = Informational Messages
| 4 = All Messages
| You can also pass an array with threshold levels to show individual error types
| For a live site you'll usually only enable Errors (1) to be logged otherwise
*/
$config['log_threshold'] = 0;
Anda dapat menemukan pesan log di aplikasi / log /. Pastikan direktori ini dapat ditulis sebelum
Anda mengaktifkan file log.
Berbagai templat untuk pesan kesalahan dapat ditemukan di aplikasi / tampilan / kesalahan / cli
atau aplikasi / tampilan / kesalahan / html.
Contoh:
Salin kode berikut dan simpan di aplikasi / view / Upload_form.php.
<html>
<head>
<title>Upload Form</title>
</head>
<body>
</form>
</body>
</html>
<html>
<head>
<title>Upload Form</title>
</head>
<body>
<ul>
<?phpendforeach; ?>
</ul>
</body>
</html>
Salin kode yang diberikan di bawah ini dan simpan di aplikasi / controllers / Upload.php. Buat
folder "unggah" di root CodeIgniter yaitu di direktori induk folder aplikasi.
<?php
parent::__construct();
$this->load->helper(array('form', 'url'));
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 100;
$config['max_width'] = 1024;
$config['max_height'] = 768;
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('userfile')) {
$this->load->view('upload_form', $error);
else {
$this->load->view('upload_success', $data);
?>
Buat perubahan berikut pada file rute di aplikasi / config / routes.php dan tambahkan baris berikut
di akhir file.
$route['upload'] = 'Upload';
Sekarang mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. Ganti
yoursite.com dengan URL Anda.
http://yoursite.com/index.php/upload
Mengirim email di CodeIgniter jauh lebih mudah. Anda juga mengonfigurasi preferensi
mengenai email di CodeIgniter. Berbagai Protokol - Mail, Sendmail, dan SMTP.
12.1. Fitur fitur mengirim email :
• Enkripsi TLS dan SSL untuk SMTP
• Banyak penerima
• CC dan BCC
• Email HTML atau Plaintext
• Lampiran
• Pembungkus kata
• Prioritas
• Batch BCC Mode, memungkinkan daftar email besar untuk dipecah menjadi batch BCC
kecil.
• Email Alat debugging
$return_path (string) −
Optional email address to
redirect undelivered e-mail
to
(method
chaining)
$newname (string) −
Custom file name to use in
the e-mail
$this->load->library('email');
Setelah memuat pustaka, cukup jalankan fungsi berikut untuk mengatur elemen yang
diperlukan untuk mengirim email. Fungsi from () digunakan untuk mengatur - dari mana
email dikirim dan ke () function digunakan - kepada siapa email itu dikirim. Fungsi subjek
() dan pesan () digunakan untuk mengatur subjek dan pesan email.
$this->email->to('[email protected]');
Setelah itu, jalankan fungsi send () seperti yang ditunjukkan di bawah ini untuk mengirim email.
$this->email->send();
Contoh :
Buat file controller Email_controller.php dan simpan di aplikasi / controller /
Email_controller.php.
<?php
function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->helper('form');
$this->load->helper('form');
$this->load->view('email_form');
$from_email = "[email protected]";
$to_email = $this->input->post('email');
$this->load->library('email');
$this->email->to($to_email);
$this->email->subject('Email Test');
//Send mail
if($this->email->send())
else
$this->load->view('email_form');
?>
Buat file tampilan bernama email_form.php dan simpan di aplikasi / views / email_form.php
<!DOCTYPE html>
<head>
</head>
<body>
<?php
echo $this->session->flashdata('email_sent');
echo form_open('/Email_controller/send_mail');
?>
<?php
echo form_close();
?>
</body>
</html>
Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.
$route['email'] = 'Email_Controller';
Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs
Anda.
http://yoursite.com/index.php/email
Contoh:
Buat file view myform.php dan simpan kode di bawah ini di application / views / myform.php.
Halaman ini akan menampilkan formulir di mana pengguna dapat mengirimkan namanya dan kami
akan memvalidasi halaman ini untuk memastikan bahwa itu tidak boleh kosong saat mengirimkan.
<html>
<head>
<title>My Form</title>
</head>
<body>
<h5>Name</h5>
<input type = "text" name = "name" value = "" size = "50" />
</form>
</body>
</html>
Buat file tampilan formuccess.php dan simpan di aplikasi / views / formuccess.php. Halaman ini
akan ditampilkan jika formulir berhasil divalidasi.
<html>
<head>
<title>My Form</title>
</head>
<body>
</body>
</html>
Buat file controller Form.php dan simpan di application / controller / Form.php. Formulir
ini akan, menunjukkan kesalahan jika tidak divalidasi dengan benar atau dialihkan ke halaman
formuccess.php.
<?php
$this->load->helper(array('form'));
$this->load->library('form_validation');
if ($this->form_validation->run() == FALSE) {
$this->load->view('myform');
else {
$this->load->view('formsuccess');
?>
Mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. URL ini
mungkin berbeda berdasarkan situs Anda.
http://yoursite.com/index.php/validation
Setelah memasukkan nama dengan sukses, Anda akan diarahkan ke layar seperti yang ditunjukkan
di bawah ini.
Dalam contoh di atas, kami telah menggunakan pengaturan aturan yang diperlukan. Ada banyak
aturan yang tersedia di CodeIgniter.
Setelah memuat pustaka , Anda cukup menggunakan objek sesi seperti yang ditunjukkan di bawah
ini.
$this->session
Di mana ‘kunci’ adalah kunci larik dan nilai diberikan di sisi kanan sama dengan tanda.
Hal yang sama dapat dilakukan di CodeIgniter seperti yang ditunjukkan di bawah ini.
$this->session->set_userdata('some_name', 'some_value');
$newdata = array(
);
$this->session->set_userdata($newdata);
Menghapus data sesi di CodeIgniter sangat sederhana seperti yang ditunjukkan di bawah
ini. Versi fungsi unset_userdata () di bawah ini hanya akan menghapus satu variabel dari sesi.
$this->session->unset_userdata('some_name');
Jika Anda ingin menghapus lebih banyak nilai dari sesi atau menghapus seluruh array,
Anda dapat menggunakan versi unset_userdata () fungsi di bawah ini.
$this->session->unset_userdata($array_items);
Contoh :
Buat kelas kontroler yang disebut Session_controller.php dan simpan di application / controller /
Session_controller.php.
<?php
$this->load->library('session');
$this->session->set_userdata('name','virat');
$this->load->view('session_view');
$this->load->library('session');
$this->session->unset_userdata('name');
$this->load->view('session_view');
?>
Buat file tampilan bernama session_view.php dan simpan di aplikasi / views / session_view.php
<!DOCTYPE html>
<head>
</head>
<body>
<br>
</body>
</html>
Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.
$route['sessionex'] = 'Session_Controller';
• fungsi mark_as_flash () membutuhkan satu argumen dari nilai yang akan disimpan. Bisa juga
melewatkan array untuk menyimpan beberapa nilai.
• fungsi set_flashdata () juga dapat digunakan, yang membutuhkan dua argumen, nama dan
nilai, seperti yang ditunjukkan di bawah ini.
$ this-> session-> set_flashdata ('item', 'value');
• Ambil Flashdata
Flashdata dapat diambil menggunakan fungsi flashdata () yang mengambil satu argumen dari
item yang akan diambil seperti yang ditunjukkan di bawah ini. fungsi flashdata () memastikan
bahwa Anda hanya mendapatkan data flash dan bukan data lainnya.
$ this-> session-> flashdata ('item');
Jika Anda tidak memberikan perubahan apa pun, maka Anda bisa mendapatkan array dengan
fungsi yang sama.
Contoh :
Buat kelas bernama FlashData_Controller.php dan simpan di application / controller /
FlashData_Controller.php.
<?php
$this->load->library('session');
$this->load->view('flashdata_home');
$this->load->library('session');
$this->load->helper('url');
$this->session->set_flashdata('item','item-value');
redirect('flashdata');
?>
<!DOCTYPE html>
<head>
</head>
<body>
</body>
</html>
Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.
$route['flashdata'] = 'FlashData_Controller';
$route['flashdata/add'] = 'FlashData_Controller/add';
Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs
Anda.
http://yoursite.com/index.php/flashdata
Setelah mengunjungi URL di atas, Anda akan melihat layar seperti yang ditunjukkan di bawah ini.
Klik tautan "Klik Di Sini" dan Anda akan melihat layar seperti yang ditunjukkan di bawah
ini. Di sini, di layar ini Anda akan melihat nilai variabel data flash. Refresh halaman lagi
dan Anda akan melihat layar seperti di atas dan variabel data flash akan dihapus secara
otomatis.
16. TEMPDATA
Dalam beberapa situasi, di mana Anda ingin menghapus data yang disimpan dalam sesi
setelah beberapa periode waktu tertentu, ini dapat dilakukan dengan menggunakan fungsionalitas
tempdata di CodeIgniter.
16.1. Tambahkan Tempdata
Untuk menambahkan data sebagai tempdata, kita harus menggunakan fungsi
mark_as_tempdata (). Fungsi ini membutuhkan dua item tambahan atau item untuk disimpan
sebagai tempdata dan waktu kedaluwarsa untuk item-item tersebut seperti yang ditunjukkan di
17.
bawah ini.
// 'item' will be erased after 300 seconds(5 minutes)
$this->session->mark_as_temp('item',300);
Anda juga bisa melewatkan baris untuk menyimpan banyak data. Semua item yang disimpan di
bawah ini akan kedaluwarsa setelah 300 detik
$this->session->mark_as_temp(array('item','item2'),300);
Anda juga dapat mengatur waktu kedaluwarsa yang berbeda untuk setiap item seperti yang
ditunjukkan di bawah ini.
$this->session->mark_as_temp(array(
'item'=>300,
'item2'=>240
));
Jika Anda menghilangkan data, maka Anda dapat mengambil semua tempdata yang ada.
Contoh :
Buat kelas yang disebut Tempdata_controller.php dan simpan di application / controller /
Tempdata_controller.php.
<?php
$this->load->library('session');
$this->load->view('tempdata_view');
$this->load->library('session');
$this->load->helper('url');
$this->session->set_tempdata('item','item-value',5);
redirect('tempdata');
?>
buat file bernama tempdata view.php dan simpan di aplikasi / views / tempdata view.php
<!DOCTYPE html>
<head>
</head>
<body>
</body>
</html>
Buat perubahan pada file routes.php dalam aplikasi / config / routes.php dan tambahkan baris
berikut di akhir file.
$route['tempdata'] = "Tempdata_controller";
$route['tempdata/add'] = "Tempdata_controller/add";
Jalankan contoh di atas dengan mengunjungi tautan berikut. Ganti yoursite.com dengan URL situs
Anda.
http://yoursite.com/index.php/tempdata
Setelah mengunjungi URL di atas, Anda akan melihat layar seperti yang ditunjukkan di bawah ini.
Klik tautan "Click Here" dan Anda akan melihat layar seperti yang ditunjukkan di bawah ini. Di
sini, di layar ini Anda akan melihat nilai variabel data temp. Refresh halaman yang sama setelah
lima detik lagi karena kami telah mengatur data temp selama lima detik dan Anda akan melihat
layar seperti di atas dan variabel data temp akan dihapus secara otomatis setelah lima detik. Jika
Anda me-refresh halaman yang sama sebelum 5 detik, maka data temp tidak akan dihapus, karena
periode waktunya belum berakhir.
Setelah memanggil fungsi ini, semua data sesi termasuk flashdata dan tempdata akan dihapus
secara permanen dan tidak dapat diambil kembali.
Dalam fungsi set_cookie (), kita bisa meneruskan semua nilai menggunakan dua cara.
Dalam cara pertama, hanya array yang dapat dilewati dan dengan cara kedua, parameter individual
juga dapat dilewati.
Fungsi get_cookie () digunakan untuk mendapatkan cookie yang telah ditetapkan menggunakan
fungsi set_cookie ().
Parameters .yourdomain.com)
<?php
function __construct() {
parent::__construct();
$this->load->helper(array('cookie', 'url'));
set_cookie('cookie_name','cookie_value','3600');
$this->load->view('Cookie_view');
echo get_cookie('cookie_name');
$this->load->view('Cookie_view');
delete_cookie('cookie_name');
redirect('cookie/display');
?>
Buat file tampilan bernama Cookie_view.php dan simpan di aplikasi / views / Cookie_view.php
<!DOCTYPE html>
<head>
</head>
<body>
</body>
</html>
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$route['cookie'] = "Cookie_controller";
$route['cookie/display'] = "Cookie_controller/display_cookie";
$route['cookie/delete'] = "Cookie_controller/deletecookie";
Setelah itu, Anda dapat menjalankan URL berikut di browser untuk menjalankan contoh.
http://yoursite.com/index.php/cookie
Syntax is_php($version)
Parameters
$version (string) − Version number
Return TRUE if the running PHP version is at least the one specified or
FALSE if not
Description Determines if the PHP version being used is greater than the
supplied version number.
Syntax is_really_writable($file)
Parameters
$file (string) − File path
Syntax config_item($key)
Return
Description This function permits you to manually set a server status header.
Syntax html_escape($var)
Parameters
$var (mixed) − Variable to escape (string or array)
Syntax get_mimes()
Syntax is_https()
Syntax is_cli()
Description Returns TRUE if the application is run through the command line
and FALSE if not.
Syntax function_usable($function_name)
Berikut di bawah ini adalah contoh, yang menunjukkan semua fungsi di atas.
Contoh :
Di sini kita hanya membuat satu pengontrol di mana kita akan menggunakan fungsi-fungsi di atas.
Salin kode yang diberikan di bawah ini dan simpan di application / controller /
CommonFun_Controller.php.
<?php
set_status_header(200);
echo is_php('5.3')."<br>";
var_dump(is_really_writable('./Form.php'));
echo config_item('language')."<br>";
echo html_escape($str)."<br>";
echo "is_https():".var_dump(is_https())."<br>";
echo "is_cli():".var_dump(is_cli())."<br>";
var_dump(function_usable('test'))."<br>";
echo "get_mimes():".print_r(get_mimes())."<br>";
?>
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$ route ['commonfunctions'] = 'CommonFun_Controller';
Ketik URL berikut di bilah alamat browser Anda untuk menjalankan contoh.
http://yoursite.com/index.php/communcunctions
$this->output->cache($n);
Di mana $ n adalah jumlah menit, Anda ingin halaman tetap di-cache di antara refresh.
$this->output->delete_cache();
$this->output->delete_cache('/foo/bar');
Contoh :
Buat pengontrol yang disebut Cache_controller.php dan simpan di aplikasi / controller /
Cache_controller.php
<?php
$this->output->cache(1);
$this->load->view('test');
$this->output->delete_cache('cachecontroller');
?>
Buat file tampilan bernama test.php dan simpan di aplikasi / views / test.php
<!DOCTYPE html>
<head>
</head>
<body>
</body>
</html>
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$route['cachecontroller'] = 'Cache_controller';
$route['cachecontroller/delete'] = 'Cache_controller/delete_file_cache';
Setelah mengunjungi URL di atas, Anda akan melihat bahwa file cache untuk ini akan dibuat di
folder aplikasi / cache. Untuk menghapus file, kunjungi URL berikut.
http://yoursite.com/index.php/cachecontroller/delete
Baris pertama dapat memiliki dua jenis URI. Kami dapat mengirimkan URL situs
lengkap atau segmen URI ke pengontrol yang ingin Anda arahkan.
Parameter opsional kedua dapat memiliki salah satu dari tiga nilai dari otomatis, lokasi atau
penyegaran. Standarnya adalah otomatis. Parameter opsional ketiga hanya tersedia dengan
pengalihan lokasi dan memungkinkan Anda untuk mengirim kode respons HTTP tertentu.
Contoh :
Buat pengontrol yang disebut Redirect_controller.php dan simpan di aplikasi / controller /
Redirect_controller.php
<?php
$this->load->helper('url');
redirect('http://www.tutorialspoint.com');
$this->load->helper('url');
redirect('http://www.tutorialspoint.com/computer_graphics/index.htm');
$this->load->helper('url');
redirect('redirect/computer_graphics');
?>
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$route['redirect'] = 'Redirect_controller';
$route['redirect/version2'] = 'Redirect_controller/version2';
$route['redirect/computer_graphics'] = 'Redirect_controller/computer_graphics';
Dalam tabel berikut, kuncinya adalah parameter, yang dapat diatur dalam array konfigurasi untuk
mengaktifkan atau menonaktifkan profil tertentu.
Profiler yang diatur dalam file di application / config / profiler.php dapat diganti dengan
menggunakan fungsi set_profiler_sections () di controller seperti yang ditunjukkan di bawah ini.
$sections = array(
);
$this->output->set_profiler_sections($sections);
22. BENCHMARKING
Pengaturan Poin Benchmark
Jika Anda ingin mengukur waktu yang diperlukan untuk mengeksekusi serangkaian baris atau
penggunaan memori, Anda dapat menghitungnya dengan menggunakan titik-titik Pembandingan
di CodeIgniter. Ada kelas "Pembandingan" yang terpisah untuk tujuan ini di CodeIgniter.
Kelas ini dimuat secara otomatis; Anda tidak harus memuatnya. bisa digunakan di mana saja di
kelas controller, view, dan model Anda. Yang harus Anda lakukan adalah menandai titik awal dan
titik akhir dan kemudian menjalankan fungsi elapsed_time () antara dua titik yang ditandai ini dan
Anda bisa mendapatkan waktu yang diperlukan untuk mengeksekusi kode itu seperti yang
ditunjukkan di bawah ini.
<?php
$this->benchmark->mark('code_start');
$this->benchmark->mark('code_end');
?>
<?php
echo $this->benchmark->memory_usage();
?>
Contoh :
Buat pengontrol yang disebut Profiler_controller.php dan simpan di application / controller /
Profiler_controller.php
//enable profiler
$this->output->enable_profiler(TRUE);
$this->load->view('test');
//disable profiler
$this->output->enable_profiler(FALSE);
$this->load->view('test');
?>
Buat file view bernama test.php dan simpan di application / views / test.php
<!DOCTYPE html>
<head>
</head>
<body>
</body>
</html>
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$route['profiler'] = "Profiler_controller";
$route['profiler/disable'] = "Profiler_controller/disable"
Setelah itu, Anda dapat mengetik URL berikut di bilah alamat browser Anda untuk menjalankan
contoh.
http://yoursite.com/index.php/profiler
URL di atas akan memungkinkan profiler dan itu akan menghasilkan output seperti yang
ditunjukkan pada screenshot berikut.
CSS style.css. Sekarang, untuk menambahkan file-file ini ke dalam pandangan Anda, muat URL
helper di controller Anda seperti yang ditunjukkan di bawah ini.
$this->load->helper('url');
Setelah memuat URL helper di controller, cukup tambahkan baris yang diberikan di
bawah ini di file tampilan, untuk memuat file sample.js dan style.css dalam tampilan seperti yang
ditunjukkan di bawah ini.
?>js/sample.js"></script>
Contoh :
Buat pengontrol yang disebut Test.php dan simpan di application / controller / Test.php
<?php
$this->load->helper('url');
$this->load->view('test');
?>
Buat file view bernama test.php dan simpan di application / views / test.php
<!DOCTYPE html>
<head>
?>js/sample.js"></script>
</head>
<body>
</body>
</html>
body {
background:#000;
color:#FFF;
function test() {
alert('test');
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk
controller di atas dan tambahkan baris berikut di akhir file.
$route['profiler'] = "Profiler_controller";
$route['profiler/disable'] = "Profiler_controller/disable"
24. INTERNATIONALIZATION
Kelas bahasa di CodeIgniter menyediakan cara mudah untuk mendukung banyak bahasa
untuk internasionalisasi. Hingga taraf tertentu, kita dapat menggunakan file bahasa yang berbeda
untuk menampilkan teks dalam banyak bahasa yang berbeda. Kita dapat meletakkan file bahasa
yang berbeda di direktori aplikasi / bahasa. File bahasa sistem dapat ditemukan di direktori sistem
/ bahasa, tetapi untuk menambahkan bahasa Anda sendiri ke aplikasi Anda, Anda harus membuat
folder terpisah untuk setiap bahasa dalam direktori aplikasi / bahasa.
• filename - Ini adalah nama file yang ingin Anda muat. Jangan gunakan ekstensi file di
sini tetapi hanya nama file.
• Bahasa - Ini adalah set bahasa yang berisi itu.
Di mana language_key adalah parameter kunci yang digunakan untuk mengambil nilai kunci
dalam file bahasa yang dimuat.
| -----------------------------------------------------------------------
| -----------------------------------------------------------------------
| Prototype:
| NOTE: Do not include the "_lang" part of your file. For example
*/
$autoload['language'] = array();
Sederhananya, lewati berbagai bahasa yang akan dimuat secara otomatis oleh CodeIgniter.
Contoh :
Buat pengontrol yang disebut Lang_controller.php dan simpan di application / controller /
Lang_controller.php
<?php
$this->load->helper('form');
$language = $this->input->post('language');
if($language == "french")
$this->lang->load('french_lang','french');
$this->lang->load('german_lang','german');
else
$this->lang->load('english_lang','english');
$data['msg'] = $this->lang->line('msg');
$data['language'] = $language;
$this->load->view('lang_view',$data);
?>
Buat file tampilan bernama lang_view.php dan simpan di application / views / lang_view.php
<!DOCTYPE html>
<head>
</head>
<body>
<?php
echo form_open('/lang');
?>
<?php
$lang =
array('english'=>"English",'french'=>"French",'german'=>"German");
foreach($lang as $key=>$val) {
if($key == $language)
else
?>
</select>
<br>
<?php
form_close();
echo $msg;
?>
</body>
</html>
Buat tiga folder yang disebut Inggris, Prancis, dan Jerman dalam aplikasi / bahasa seperti yang
ditunjukkan pada gambar di bawah.
Salin kode yang diberikan di bawah ini dan simpan dalam file english_lang.php di folder
application / language / english.
<?php
?>
Salin kode yang diberikan di bawah ini dan simpan dalam file french_lang.php di folder
application / language / French.
<?php
?>
Salin kode yang diberikan di bawah ini dan simpan dalam file german_lang.php di folder
application / language / german.
<?php
?>
Ubah file route.php di application / config / routes.php untuk menambahkan rute untuk controller
di atas dan tambahkan baris berikut di akhir file.
$route['lang'] = "Lang_controller";
Ini akan menghasilkan output seperti yang ditunjukkan pada tangkapan layar berikut. Jika Anda
mengubah bahasa di daftar dropdown, bahasa kalimat yang ditulis di bawah dropdown juga akan
berubah seperti gambar dibawah ini.
25. SECURITY
25.1. Pencegahan XSS
XSS berarti skrip lintas situs. CodeIgniter dilengkapi dengan keamanan penyaringan XSS.
Filter ini akan mencegah kode JavaScript berbahaya atau kode lain apa pun yang mencoba
membajak cookie dan melakukan kegiatan berbahaya. Untuk memfilter data melalui filter
XSS, gunakan metode xss_clean () seperti yang ditunjukkan di bawah ini.
$data = $this->security->xss_clean($data);
Anda harus menggunakan fungsi ini hanya ketika Anda mengirim data. Parameter Boolean
kedua opsional juga dapat digunakan untuk memeriksa file gambar untuk serangan XSS. Ini
berguna untuk fasilitas unggah file. Jika nilainya benar, berarti gambar aman dan jika tidak
maka sebaliknya.
<?php
$username = $this->input->post('username');
$query = 'SELECT * FROM subscribers_tbl WHERE user_name = '.
$this->db->escape($email);
$this->db->query($query);
?>
$ this-> db-> escape () berfungsi secara otomatis menambahkan tanda kutip tunggal di
sekitar data dan menentukan tipe data sehingga hanya bisa keluar dari data string.
<?php
$sql = "SELECT * FROM some_table WHERE id = ? ANDstatus = ?
AND author = ?";
$this->db->query($sql, array(3, 'live', 'Rick'));
?>
Pada contoh di atas, tanda tanya (?) Akan digantikan oleh larik di parameter kedua fungsi
query (). Keuntungan utama membangun kueri dengan cara ini adalah bahwa nilai-nilai
secara otomatis keluar yang menghasilkan kueri aman. Mesin CodeIgniter melakukannya
untuk Anda secara otomatis, sehingga Anda tidak harus mengingatnya.
<?php
$this->db->get_where('subscribers_tbl',array
('status'=> active','email' => '[email protected]'));
?>
Menggunakan catatan aktif, sintaks kueri dihasilkan oleh setiap adaptor basis data. Hal Ini
juga memungkinkan permintaan yang lebih aman, karena nilai-nilai keluar secara otomatis.
$db['default']['db_debug'] = FALSE;
• Catatan eror
Cara lain adalah dengan mentransfer kesalahan ke file log. Jadi, itu tidak akan ditampilkan
kepada pengguna di situs. Cukup, atur nilai log_threshold dalam $ config array menjadi
1 pada file application / cofig / config.php seperti yang ditunjukkan di bawah ini.
$config['log_threshold'] = 1;
$config['csrf_protection'] = TRUE;
Saat Anda membuat formulir menggunakan fungsi form_open (), itu akan secara otomatis
memasukkan CSRF sebagai bidang tersembunyi. Anda juga dapat menambahkan CSRF
secara manual menggunakan fungsi get_csrf_token_name () dan get_csrf_hash (). Fungsi
get_csrf_token_name () akan mengembalikan nama CSRF dan get_csrf_hash () akan
mengembalikan nilai hash CSRF.
Token CSRF dapat diregenerasi setiap kali untuk pengiriman atau Anda juga dapat tetap
sama sepanjang umur cookie CSRF. Dengan mengatur nilai TRUE, dalam array konfigurasi
dengan kunci ‘csrf_regenerate’ akan membuat token seperti yang ditunjukkan di bawah ini.
$config['csrf_regenerate'] = TRUE;
Anda juga dapat membuat daftar putih URL dari perlindungan CSRF dengan mengaturnya
di array konfigurasi menggunakan kunci ‘csrf_exclude_uris’ seperti yang ditunjukkan di
bawah ini. Anda juga dapat menggunakan ekspresi reguler.
$config['csrf_exclude_uris'] = array('api/person/add');