CodeIgniter - Panduan Cepat

CodeIgniter adalah framework pengembangan aplikasi, yang dapat digunakan untuk mengembangkan situs web, menggunakan PHP. Ini adalah kerangka Open Source. Ini memiliki serangkaian fungsionalitas yang sangat kaya, yang akan meningkatkan kecepatan kerja pengembangan situs web.

Jika Anda memahami PHP dengan baik, maka CodeIgniter akan mempermudah tugas Anda. Ini memiliki kumpulan perpustakaan dan pembantu yang sangat kaya. Dengan menggunakan CodeIgniter, Anda akan menghemat banyak waktu, jika Anda mengembangkan situs web dari awal. Tidak hanya itu, website yang dibangun dengan CodeIgniter juga aman karena memiliki kemampuan untuk mencegah berbagai serangan yang terjadi melalui website.

Fitur CodeIgniter

Beberapa fitur penting CodeIgniter tercantum di bawah ini -

  • Sistem Berbasis Model-View-Controller

  • Sangat Ringan

  • Kelas database Unggulan lengkap dengan dukungan untuk beberapa platform.

  • Dukungan Database Query Builder

  • Validasi Formulir dan Data

  • Keamanan dan Pemfilteran XSS

  • Manajemen Sesi

  • Kelas Pengiriman Email. Mendukung Lampiran, HTML / Teks email, banyak protokol (sendmail, SMTP, dan Mail) dan banyak lagi.

  • Perpustakaan Manipulasi Gambar (memotong, mengubah ukuran, memutar, dll.). Mendukung GD, ImageMagick, dan NetPBM

  • Kelas Mengupload File

  • Kelas FTP

  • Localization

  • Pagination

  • Enkripsi data

  • Benchmarking

  • Caching Halaman Penuh

  • Error Logging

  • Pembuatan Profil Aplikasi

  • Kelas Kalender

  • Kelas Agen Pengguna

  • Kelas Pengkodean Zip

  • Kelas Mesin Template

  • Kelas Trackback

  • Perpustakaan XML-RPC

  • Kelas Pengujian Unit

  • URL Ramah Mesin Telusur

  • Perutean URI Fleksibel

  • Dukungan untuk Hooks dan Class Extensions

  • Perpustakaan besar dari fungsi "pembantu"

Sangat mudah untuk menginstal CodeIgniter. Ikuti saja langkah-langkah yang diberikan di bawah ini -

  • Step-1- Unduh CodeIgniter dari tautan CodeIgniter

  • Step-2 - Buka zip foldernya.

  • Step-3 - Unggah semua file dan folder ke server Anda.

  • Step-4 - Setelah mengunggah semua file ke server Anda, kunjungi URL server Anda, misalnya, www.domain-name.com.

Saat mengunjungi URL, Anda akan melihat layar berikut -

Arsitektur aplikasi CodeIgniter ditunjukkan di bawah ini.

  • Seperti yang ditunjukkan pada gambar, setiap kali sebuah permintaan datang ke CodeIgniter, ia akan masuk ke index.php halaman.

  • 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 masuk Caching, kemudian Routing akan meneruskan permintaan ke langkah-3 dan responsnya akan kembali ke pengguna.

  • Jika halaman yang diminta tidak ada di Caching, kemudian Routing akan meneruskan halaman yang diminta ke langkah-4 untuk Security cek.

  • Sebelum meneruskan permintaan ke Application Controller, itu Securitydari data yang dikirimkan diperiksa. SetelahSecurity Periksalah Application Controller beban yang diperlukan Models, Libraries, Helpers, Plugins dan Scripts dan menyebarkannya ke View.

  • Itu View akan merender halaman dengan data yang tersedia dan menyebarkannya untuk Caching. Karena halaman yang diminta tidak di-cache sebelumnya jadi kali ini akan di-cacheCaching, untuk memproses halaman ini dengan cepat untuk permintaan di masa mendatang.

Struktur Direktori

Gambar yang diberikan di bawah ini menunjukkan struktur direktori CodeIgniter.

Struktur direktori CodeIgniter dibagi menjadi 3 folder -

  • Application
  • System
  • User_guide

Aplikasi

Seperti namanya, folder Aplikasi berisi semua kode aplikasi Anda yang sedang Anda buat. Ini adalah folder tempat Anda akan mengembangkan proyek Anda. Folder Aplikasi berisi beberapa folder lain, yang dijelaskan di bawah -

  • Cache- Folder ini berisi semua halaman cache dari aplikasi Anda. Halaman cache ini akan meningkatkan kecepatan keseluruhan mengakses halaman.

  • Config- Folder ini berisi berbagai file untuk mengkonfigurasi aplikasi. Dengan bantuan dariconfig.phpfile, pengguna dapat mengkonfigurasi aplikasi. Menggunakandatabase.php file, pengguna dapat mengkonfigurasi database aplikasi.

  • Controllers- Folder ini menampung pengontrol aplikasi Anda. Ini adalah bagian dasar dari aplikasi Anda.

  • Core - Folder ini akan berisi kelas dasar aplikasi Anda.

  • Helpers - Dalam folder ini, Anda dapat menempatkan kelas pembantu aplikasi Anda.

  • Hooks - File-file dalam folder ini menyediakan sarana untuk memanfaatkan dan memodifikasi cara kerja kerangka kerja tanpa meretas file inti.

  • Language - Folder ini berisi file terkait bahasa.

  • Libraries - Folder ini berisi file pustaka yang dikembangkan untuk aplikasi Anda.

  • Logs - Folder ini berisi file-file yang berhubungan dengan log sistem.

  • Models - Login database akan ditempatkan di folder ini.

  • Third_party - Di folder ini, Anda dapat menempatkan plugin apa saja, yang akan digunakan untuk aplikasi Anda.

  • Views - File HTML aplikasi akan ditempatkan di folder ini.

Sistem

Folder ini berisi kode inti CodeIgniter, pustaka, pembantu, dan file lain, yang membantu mempermudah pengkodean. Perpustakaan dan pembantu ini dimuat dan digunakan dalam pengembangan aplikasi web.

Folder ini berisi semua kode CodeIgniter konsekuensi, diatur ke dalam berbagai folder -

  • Core- Folder ini berisi kelas inti CodeIgniter. Jangan memodifikasi apapun di sini. Semua pekerjaan Anda akan dilakukan di folder aplikasi. Bahkan jika Anda bermaksud untuk memperluas inti CodeIgniter, Anda harus melakukannya dengan hook, dan hook tinggal di folder aplikasi.

  • Database - Folder database berisi driver database inti dan utilitas database lainnya.

  • Fonts - Folder font berisi informasi dan utilitas terkait font.

  • Helpers - Folder pembantu berisi pembantu CodeIgniter standar (seperti tanggal, cookie, dan pembantu URL).

  • Language- Folder bahasa berisi file bahasa. Anda bisa mengabaikannya untuk saat ini.

  • Libraries- Folder perpustakaan berisi pustaka CodeIgniter standar (untuk membantu Anda dengan email, kalender, unggahan file, dan lainnya). Anda dapat membuat perpustakaan Anda sendiri atau memperluas (dan bahkan mengganti) yang standar, tetapi itu akan disimpan di fileapplication/libraries direktori agar tetap terpisah dari pustaka CodeIgniter standar yang disimpan dalam folder khusus ini.

Panduan pengguna

Ini adalah panduan pengguna Anda untuk CodeIgniter. Ini pada dasarnya adalah versi offline dari panduan pengguna di situs CodeIgniter. Menggunakan ini, seseorang dapat mempelajari fungsi berbagai perpustakaan, pembantu, dan kelas. Direkomendasikan untuk membaca panduan pengguna ini sebelum membuat aplikasi web pertama Anda di CodeIgniter.

Di samping ketiga folder ini, ada satu file penting bernama "index.php". Dalam file ini, kita dapat mengatur lingkungan aplikasi dan tingkat kesalahan dan kita dapat menentukan nama folder sistem dan aplikasi. Dianjurkan, untuk tidak mengedit pengaturan ini jika Anda tidak memiliki cukup pengetahuan tentang apa yang akan Anda lakukan.

CodeIgniter didasarkan pada Model-View-Controller (MVC) development pattern. MVC adalah pendekatan perangkat lunak yang memisahkan logika aplikasi dari presentasi. Dalam praktiknya, ini memungkinkan halaman web Anda berisi skrip minimal karena presentasi terpisah dari skrip PHP.

  • Itu Modelmewakili struktur data Anda. Biasanya, kelas model Anda akan berisi fungsi yang membantu Anda mengambil, menyisipkan, dan memperbarui informasi dalam database Anda.

  • Itu Viewadalah informasi yang disajikan kepada pengguna. Tampilan biasanya berupa halaman web, tetapi di CodeIgniter, tampilan juga dapat berupa fragmen halaman seperti header atau footer. Ini juga bisa berupa halaman RSS, atau jenis "halaman" lainnya.

  • Itu Controller berfungsi sebagai perantara antara Model, View, dan sumber daya lain yang diperlukan untuk memproses permintaan HTTP dan menghasilkan halaman web.

Pengontrol

Pengontrol adalah file kelas sederhana. Seperti namanya, ia mengontrol seluruh aplikasi dengan URI.

Membuat Pengontrol

Pertama, buka application/controllersmap. Anda akan menemukan dua file di sana,index.html dan Welcome.php. File-file ini disertakan dengan CodeIgniter.

Simpan file ini sebagaimana adanya. Buat file baru di bawah jalur yang sama bernama "Test.php". Tulis kode berikut di file itu -

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello World!"; 
      } 
   } 
?>

Itu Test class memperluas kelas built-in yang disebut CI_Controller. Kelas ini harus diperpanjang setiap kali Anda ingin membuat kelas Controller Anda sendiri.

Memanggil Pengendali

Kontroler di atas dapat dipanggil oleh URI sebagai berikut -

http://www.your-domain.com/index.php/test

Perhatikan kata "test”Di URI di atas setelah index.php. Ini menunjukkan nama kelas pengontrol. Seperti yang telah kami berikan nama pengontrol "Test", Kami sedang menulis"test"Setelah index.php. Nama kelas harus dimulai denganuppercase letter tapi kita perlu menulis lowercase lettersaat kita memanggil pengontrol itu dengan URI. Sintaks umum untuk memanggil pengontrol adalah sebagai berikut -

http://www.your-domain.com/index.php/controller/method-name

Membuat & Memanggil Metode Pembuat

Mari kita memodifikasi kelas di atas dan membuat metode lain bernama "hello".

<?php 
   class Test extends CI_Controller {  
	
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

Kita dapat menjalankan pengontrol di atas dengan tiga cara berikut -

  • 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 mendapatkan hasil dari metode "index”, Meskipun kami tidak meneruskan nama metode tersebut URI. Kami hanya menggunakan nama pengontrol di URI. Dalam situasi seperti itu, CodeIgniter memanggil metode default “index".

Mengunjungi URI kedua di browser, kami mendapatkan output yang sama seperti yang ditunjukkan pada gambar di atas. Di sini, kami telah mengirimkan nama metode setelah nama pengontrol di URI. Seperti nama metodenya adalah "index”, 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, kami mendapatkan hasil dari metode "hello"Karena kita telah lulus"hello"Sebagai nama metode, setelah nama pengontrol"test”Di URI.

Poin untuk Diingat

  • Nama kelas pengontrol harus dimulai dengan huruf besar.

  • Pengontrol harus dipanggil dengan huruf kecil.

  • Jangan gunakan nama metode yang sama dengan kelas induk Anda, karena akan menggantikan fungsionalitas kelas induk.

Tampilan

Ini bisa berupa halaman web sederhana atau kompleks, yang dapat dipanggil oleh pengontrol. Halaman web mungkin berisi header, footer, sidebar dll. Tampilan tidak dapat dipanggil secara langsung. Mari kita buat tampilan sederhana. Buat file baru di bawahapplication/views dengan nama "test.php”Dan salin kode yang diberikan di bawah ini ke 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 application/controllers/test.php file seperti yang ditunjukkan di bawah ini.

Memuat Tampilan

Tampilan dapat dimuat dengan sintaks berikut -

$this->load->view('name');

Dimana nama adalah file tampilan, yang sedang dirender. Jika Anda berencana untuk menyimpan file view di beberapa direktori maka Anda dapat menggunakan sintaks berikut -

$this->load->view('directory-name/name');

Tidak perlu menentukan ekstensi sebagai php, kecuali yang digunakan selain .php.

Metode index () memanggil metode view dan meneruskan "test" sebagai argumen ke metode view () karena kita telah menyimpan kode html di "test.php"Di bawah application/views/test.php.

<?php 
   class Test extends CI_Controller { 
	
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

Berikut adalah keluaran dari kode di atas -

Diagram alir berikut menggambarkan cara kerja semuanya -

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.

Membuat Kelas Model

Kelas model disimpan di application/modelsdirektori. Kode berikut menunjukkan cara membuat kelas model di CodeIgniter.

<?php 
   Class Model_name extends CI_Model { 
	
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?>

Dimana Model_name adalah nama kelas model yang ingin Anda berikan. Setiap kelas model harus mewarisi kelas CI_Model CodeIgniter. Huruf pertama kelas model harus menggunakan huruf kapital. Berikut adalah kode untuk kelas model pengguna.

<?php 
   Class User_model extends CI_Model {
	
      Public function __construct() { 
         parent::__construct(); 
      } 
		
   } 
?>

Kelas model di atas harus disimpan sebagai User_model.php. Nama kelas dan nama file harus sama.

Memuat Model

Model bisa disebut dengan controller. Kode berikut dapat digunakan untuk memuat model apa pun.

$this->load->model('model_name');

Dimana model_name adalah nama model yang akan dimuat. Setelah memuat model, Anda cukup memanggil metodenya seperti yang ditunjukkan di bawah ini.

$this->model_name->method();

Model Pemuatan Otomatis

Mungkin ada situasi di mana Anda menginginkan beberapa kelas model di seluruh aplikasi Anda. Dalam situasi seperti itu, lebih baik jika kita memuatnya secara otomatis.

/*
| ---------------------------------------------------------------
|  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, teruskan nama model dalam larik yang ingin Anda muat otomatis dan itu akan dimuat secara otomatis, saat sistem dalam keadaan inisialisasi dan dapat diakses di seluruh aplikasi.

Pembantu

Seperti namanya, ini akan membantu Anda membangun sistem Anda. Ini dibagi menjadi beberapa fungsi kecil untuk melayani fungsi yang berbeda. Sejumlah pembantu tersedia di CodeIgniter, yang tercantum dalam tabel di bawah. Kita juga bisa membangun pembantu kita sendiri.

Pembantu biasanya disimpan di file system/helpers, atau application/helpers directory. Pembantu kustom disimpan diapplication/helpers direktori dan pembantu sistem disimpan di system/helpersdirektori. CodeIgniter akan terlihat pertama di fileapplication/helpers directory. Jika direktori tidak ada atau helper yang ditentukan tidak ditemukan, CodeIgniter akan mencari di global Andasystem/helpers/ directory. Setiap helper, apakah itu custom atau system helper, harus dimuat sebelum menggunakannya.

SN Nama & Deskripsi Pembantu
1

Array Helper

File Array Helper berisi fungsi-fungsi yang membantu bekerja dengan array.

2

CAPTCHA Helper

File CAPTCHA Helper berisi fungsi yang membantu dalam membuat gambar CAPTCHA.

3

Cookie Helper

File Cookie Helper berisi fungsi yang membantu bekerja dengan cookie.

4

Date Helper

File Pembantu Tanggal berisi fungsi yang membantu Anda bekerja dengan tanggal.

5

Directory Helper

File Directory Helper berisi fungsi yang membantu bekerja dengan direktori.

6

Download Helper

Bantuan Unduhan memungkinkan Anda mengunduh data ke desktop Anda.

7

Email Helper

Pembantu Email menyediakan beberapa fungsi bantuan untuk bekerja dengan Email. Untuk solusi email yang lebih kuat, lihat Kelas Email CodeIgniter.

8

File Helper

File Pembantu File berisi fungsi yang membantu bekerja dengan file.

9

Form Helper

File Pembantu Formulir berisi fungsi yang membantu dalam bekerja dengan formulir.

10

HTML Helper

File HTML Helper berisi fungsi yang membantu bekerja dengan HTML.

11

Inflector Helper

File Pembantu Inflektor berisi fungsi yang memungkinkan Anda mengubah kata menjadi jamak, tunggal, huruf besar / kecil, dll.

12

Language Helper

File Bantuan Bahasa berisi fungsi yang membantu bekerja dengan file bahasa.

13

Number Helper

File Number Helper berisi fungsi yang membantu Anda bekerja dengan data numerik.

14

Path Helper

File Path Helper berisi fungsi yang memungkinkan Anda untuk bekerja dengan jalur file di server.

15

Security Helper

File Bantuan Keamanan berisi fungsi terkait keamanan.

16

Smiley Helper

File Smiley Helper berisi fungsi yang memungkinkan Anda mengelola smiley (emotikon).

17

String Helper

File String Helper berisi fungsi-fungsi yang membantu bekerja dengan string.

18

Text Helper

File Text Helper berisi fungsi yang membantu dalam bekerja dengan teks.

19

Typography Helper

File Typography Helper berisi fungsi yang membantu memformat teks Anda dengan cara yang relevan secara semantik.

20

URL Helper

File URL Helper berisi fungsi-fungsi yang membantu bekerja dengan URL.

21

XML Helper

File XML Helper berisi fungsi yang membantu bekerja dengan data XML.

Memuat Pembantu

Helper dapat dimuat seperti yang ditunjukkan di bawah ini -

$this->load->helper('name');

Dimana nama adalah nama penolong. Misalnya, jika Anda ingin memuat Pembantu URL, maka itu dapat dimuat sebagai -

$this->load->helper('url');

Rute

CodeIgniter memiliki sistem perutean URI yang ramah pengguna, sehingga Anda dapat dengan mudah merutekan ulang URL. Biasanya, ada hubungan satu-ke-satu antara string URL dan kelas / metode pengontrol yang sesuai. Segmen dalam URI biasanya mengikuti pola ini -

your-domain.com/class/method/id/
  • Itu first segment mewakili kelas pengontrol yang harus dipanggil.

  • Itu second segment mewakili fungsi kelas, atau metode, yang harus dipanggil.

  • Itu third, dan segmen tambahan apa pun, mewakili ID dan variabel apa pun yang akan diteruskan ke pengontrol.

Dalam beberapa situasi, Anda mungkin ingin mengubah mekanisme perutean default ini. CodeIgniter menyediakan fasilitas di mana Anda dapat mengatur aturan perutean Anda sendiri.

Sesuaikan Aturan Perutean

Ada file tertentu tempat Anda dapat menangani semua ini. File tersebut terletak di application / config / routes.php. Anda akan menemukan sebuah array bernama$route in which you can customize your routing rules. The key in the $larik rute akan memutuskan apa yang akan dirutekan dan nilainya akan memutuskan kemana rute tersebut. Ada tiga rute yang dipesan di CodeIgniter.

SN Rute & Deskripsi yang Dicadangkan
1

$route['default_controller']

Rute ini menunjukkan kelas pengontrol mana yang harus dimuat, jika URI tidak berisi data, yang akan terjadi ketika orang memuat URL root Anda. Anda didorong untuk memiliki rute default jika tidak, halaman 404 akan muncul, secara default. Kami dapat mengatur halaman muka situs web di sini sehingga akan dimuat secara default.

2

$route['404_override']

Rute ini menunjukkan kelas pengontrol mana yang harus dimuat jika pengontrol yang diminta tidak ditemukan. Ini akan menimpa halaman kesalahan 404 default. Ini tidak akan mempengaruhishow_404() fungsi, yang akan terus memuat default error_404.php mengajukan application/views/errors/error_404.php.

3

$route['translate_uri_dashes']

Terbukti dari nilai Boolean, ini bukanlah sebuah rute. Opsi ini memungkinkan Anda mengganti tanda hubung ('-') secara otomatis dengan garis bawah di segmen URI pengontrol dan metode, sehingga menghemat entri rute tambahan jika Anda perlu melakukan itu. Ini diperlukan karena tanda hubung bukan kelas yang valid atau karakter nama metode dan akan menyebabkan kesalahan fatal, jika Anda mencoba menggunakannya.

Rute dapat disesuaikan dengan wildcards atau dengan menggunakan regular expressions namun perlu diingat bahwa aturan khusus untuk perutean ini harus setelah aturan yang dipesan.

Karakter pengganti

Kita dapat menggunakan dua karakter wildcard seperti yang dijelaskan di bawah ini -

  • (:num) - Ini akan cocok dengan segmen yang hanya berisi angka.

  • (:any) - Ini akan cocok dengan segmen yang mengandung karakter apa pun.

Example

$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 "pencarian_produk" digunakan sebagai gantinya.

Ekspresi Reguler

Seperti karakter pengganti, kita juga dapat menggunakan ekspresi reguler dalam $route array keybagian. Jika ada URI yang cocok dengan ekspresi reguler, maka itu akan dirutekan ke bagian nilai yang disetel ke dalam array $ route.

Example

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

Pada contoh di atas, URI yang mirip dengan produk / sepatu / 123 akan memanggil "shoes"Kelas pengontrol dan"id_123" metode.

Setelah menyiapkan situs, hal berikutnya yang harus kita lakukan adalah mengkonfigurasi situs. Folder application / config berisi sekelompok file yang menyetel konfigurasi dasar situs Anda.

Konfigurasi Base 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 misalnya

http://example.com/

Jika ini tidak disetel, maka CodeIgniter akan mencoba menebak protokol, domain, dan jalur ke instalasi Anda. Namun, Anda harus selalu mengonfigurasi ini secara eksplisit dan tidak pernah mengandalkan autoguessing, terutama di lingkungan produksi. Anda dapat mengkonfigurasi URL dasar dalam array $ config dengan kunci "base_url" seperti yang ditunjukkan di bawah ini -

$config['base_url'] = 'http://your-domain.com';

Konfigurasi Basis Data

Database situs dapat dikonfigurasi dalam file application / config / database.php. Seringkali kita perlu menyiapkan database untuk lingkungan yang berbeda seperti pengembangan dan produksi. Dengan array multidimensi yang disediakan di CodeIgniter, kita dapat mengatur database untuk lingkungan yang berbeda. Pengaturan konfigurasi disimpan dalam array seperti yang ditunjukkan di bawah ini -

$db['default'] = 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',
   'swap_pre' => '', 
   'encrypt' => FALSE, 
   'compress' => FALSE, 
   'stricton' => FALSE, 
   'failover' => array() 
);

Anda dapat meninggalkan beberapa opsi ke nilai defaultnya kecuali nama host, nama pengguna, kata sandi, database, dan dbdriver.

  • hostname - Tentukan lokasi database Anda di sini misalnya localhost atau alamat IP

  • username - Tetapkan nama pengguna database Anda di sini.

  • password - Tetapkan kata sandi database Anda di sini.

  • database - Tetapkan nama database di sini.

  • dbdriver - Atur jenis database yang Anda gunakan misalnya MySQL, MySQLi, Postgre SQL, ODBC, dan MS SQL.

Dengan mengubah kunci array $db, Anda dapat mengatur konfigurasi database lain seperti yang ditunjukkan di bawah ini. Di sini, kami telah menyetel kuncinya ke‘test’ untuk mengatur database untuk lingkungan pengujian, dengan menjaga lingkungan database lain apa 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', 
   'swap_pre' => '', 
   'encrypt' => FALSE, 
   'compress' => FALSE, 
   'stricton' => FALSE, 
   'failover' => array()
);

Anda cukup beralih ke lingkungan yang berbeda dengan mengubah nilai variabel seperti yang ditunjukkan di bawah ini -

$active_group = ‘default’; //This will set the default environment

$active_group = ‘test’; //This will set the test environment

Konfigurasi Muat Otomatis

File ini menentukan, secara default, sistem mana yang harus dimuat. Untuk menjaga kerangka kerja seringan mungkin, hanya sumber daya minimal absolut yang dimuat secara default. Seseorang harus memuat otomatis sistem yang sering digunakan, daripada memuatnya di tingkat lokal, berulang kali. Berikut adalah hal-hal yang dapat Anda muat secara otomatis -

  • Libraries- Ini adalah daftar pustaka, yang harus dimuat secara otomatis. Berikan daftar pustaka dalam larik seperti yang ditunjukkan di bawah ini untuk dimuat secara otomatis oleh CodeIgniter. Dalam contoh ini, kami memuat database otomatis, email, dan pustaka sesi.

$autoload['libraries'] = array('database', 'email', 'session');
  • Drivers- Kelas-kelas ini terletak di system / libraries / atau di direktori application / libraries / Anda, tetapi juga ditempatkan di dalam subdirektori mereka sendiri dan memperluas kelas CI_Driver_Library. Mereka menawarkan beberapa opsi driver yang dapat dipertukarkan. Berikut adalah contoh untuk memuat otomatis driver cache.

$autoload['drivers'] = array('cache');
  • Helper files- Ini adalah daftar file pembantu, untuk dimuat secara otomatis. Berikan daftar pustaka dalam larik, seperti yang ditunjukkan di bawah ini, untuk dimuat secara otomatis oleh CodeIgniter. Dalam contoh yang diberikan, kami memuat otomatis URL dan file pembantu.

$autoload['helper'] = array('url', 'file');
  • Custom config files- File-file ini dimaksudkan untuk digunakan, hanya jika Anda telah membuat file konfigurasi kustom. Jika tidak, biarkan kosong. Berikut adalah contoh cara memuat otomatis lebih dari satu file konfigurasi.

$autoload['config'] = array('config1', 'config2');
  • Language files- Ini adalah daftar file bahasa, yang harus dimuat secara otomatis. Lihat contoh yang diberikan di bawah ini. Berikan daftar bahasa dalam larik seperti yang ditunjukkan di bawah ini untuk dimuat secara otomatis oleh CodeIgniter. Perlu diingat bahwa tidak menyertakan bagian "_lang" dari file Anda. Misalnya, "codeigniter_lang.php" akan direferensikan sebagai array ('codeigniter');

  • Models- Ini adalah daftar file model, yang harus dimuat secara otomatis. Berikan daftar model dalam larik seperti yang ditunjukkan di bawah ini untuk dimuat secara otomatis oleh CodeIgniter. Berikut adalah contoh cara memuat lebih dari satu file model secara otomatis.

$autoload['model'] = array('first_model', 'second_model');

Seperti kerangka kerja lainnya, kita perlu sering berinteraksi dengan database dan CodeIgniter memudahkan pekerjaan ini bagi kita. Ini menyediakan serangkaian fungsi yang kaya untuk berinteraksi dengan database.

Di bagian ini, kita akan memahami bagaimana fungsi CRUD (Buat, Baca, Perbarui, Hapus) bekerja dengan CodeIgniter. Kami akan menggunakanstud tabel untuk memilih, memperbarui, menghapus, dan memasukkan data stud meja.

Nama Tabel: stud
roll_no int (11)
nama varchar (30)

Menghubungkan ke Database

Kita dapat terhubung ke database dengan dua cara berikut -

  • Automatic Connecting- Koneksi otomatis dapat dilakukan dengan menggunakan file application / config / autoload.php. Koneksi otomatis akan memuat database untuk setiap halaman. Kami hanya perlu menambahkan perpustakaan database seperti yang ditunjukkan di bawah ini -

$autoload['libraries'] = array(‘database’);
  • Manual Connecting- Jika Anda menginginkan konektivitas database hanya untuk beberapa halaman, maka kita dapat menggunakan koneksi manual. Kita dapat terhubung ke database secara manual dengan menambahkan baris berikut di kelas manapun.

$this->load->database();

Di sini, kami tidak memberikan argumen apa pun karena semuanya telah diatur dalam file konfigurasi database application / config / database.php

Memasukkan Record

Untuk memasukkan record ke database, fungsi insert () digunakan seperti yang ditunjukkan pada tabel berikut -

Syntax

masukkan ([ $ table = '' [, $ set = NULL [, $ escape = NULL ]]])

Parameters

  • $table( string ) - Nama tabel

  • $set( array ) - Array asosiatif pasangan bidang / nilai

  • $escape( bool ) - Apakah akan meng-escape nilai dan pengenal

Returns

BENAR pada kesuksesan, SALAH pada kegagalan

Return Type

bool

Contoh berikut menunjukkan cara menyisipkan record studmeja. $ Data adalah array di mana kita telah mengatur datanya dan memasukkan data ini ke tabelstud, Kita hanya perlu melewati array ini untuk fungsi insert dalam 2 nd argumen.

$data = array( 'roll_no' => ‘1’, 'name' => ‘Virat’ ); $this->db->insert("stud", $data);

Memperbarui Record

Untuk memperbarui record dalam database, file update() fungsi digunakan bersama set() dan where()fungsi seperti yang ditunjukkan pada tabel di bawah ini. Ituset() fungsi akan mengatur data yang akan diperbarui.

Syntax

set ( $ key [, $ value = '' [, $ escape = NULL ]])

Parameters

  • $key( campuran ) - Nama bidang, atau larik pasangan bidang / nilai

  • $value( string ) - Nilai bidang, jika $ key adalah satu bidang

  • $escape( bool ) - Apakah akan meng-escape nilai dan pengenal

Returns

CI_DB_query_builder instance (metode rantai)

Return Type

CI_DB_query_builder

Itu where() fungsi akan memutuskan rekaman mana yang akan diperbarui.

Syntax

di mana ( $ key [, $ value = NULL [, $ escape = NULL ]])

Parameters

  • $key( campuran ) - Nama bidang yang akan dibandingkan, atau larik asosiatif

  • $value( campuran ) - Jika satu kunci, dibandingkan dengan nilai ini

  • $escape( bool ) - Apakah akan meng-escape nilai dan pengenal

Returns

Instance DB_query_builder

Return Type

obyek

Terakhir, file update() fungsi akan mengupdate data di database.

Syntax

perbarui ([ $ table = '' [, $ set = NULL [,$where = NULL[, $batas = NULL ]]]])

Parameters

  • $table( string ) - Nama tabel

  • $set( array ) - Array asosiatif pasangan bidang / nilai

  • $where( string ) - Klausa WHERE

  • $limit( int ) - Klausa LIMIT

Returns

BENAR pada kesuksesan, SALAH pada kegagalan

Return Type

bool
$data = array( 'roll_no' => ‘1’, 'name' => ‘Virat’ ); $this->db->set($data); $this->db->where("roll_no", ‘1’); 
$this->db->update("stud", $data);

Menghapus Record

Untuk menghapus record dalam database, fungsi delete () digunakan seperti yang ditunjukkan pada tabel berikut -

Syntax

hapus ([ $ table = '' [, $ where = '' [,$limit = NULL[, $reset_data = TRUE ]]]])

Parameters

  • $table( campuran ) - Tabel yang akan dihapus; string atau larik

  • $where( string ) - Klausa WHERE

  • $limit( int ) - Klausa LIMIT

  • $reset_data( bool ) - TRUE untuk menyetel ulang klausa "tulis" kueri

Returns

CI_DB_query_builder instance (method chaining) atau FALSE pada kegagalan

Return Type

Campuran

Gunakan kode berikut untuk menghapus record di studmeja. Argumen pertama menunjukkan nama tabel untuk menghapus record dan argumen kedua memutuskan record mana yang akan dihapus.

$this->db->delete("stud", "roll_no = 1");

Memilih Record

Untuk memilih record dalam database, file get fungsi digunakan, seperti yang ditunjukkan pada tabel berikut -

Syntax

dapatkan ([ $ table = '' [, $ limit = NULL [, $ offset = NULL ]]])

Parameters

  • $table( string ) - Tabel untuk query array

  • $limit( int ) - Klausa LIMIT

  • $offset( int ) - Klausul OFFSET

Returns

CI_DB_result instance (rangkaian metode)

Return Type

CI_DB_result

Gunakan kode berikut untuk mendapatkan semua catatan dari database. Pernyataan pertama mengambil semua record dari tabel "stud" dan mengembalikan objek, yang akan disimpan di $ query object. Pernyataan kedua menyebutresult() berfungsi dengan objek $ query untuk mendapatkan semua record sebagai array.

$query = $this->db->get("stud"); $data['records'] = $query->result();

Menutup Koneksi

Koneksi database dapat ditutup secara manual, dengan menjalankan kode berikut -

$this->db->close();

Contoh

Buat kelas pengontrol bernama 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 diinstruksikan di awal bab ini dan buat perubahan yang diperlukan dalam file konfigurasi database yang disimpan diapplication/config/database.php

<?php 
   class Stud_controller extends CI_Controller {
	
      function __construct() { 
         parent::__construct(); 
         $this->load->helper('url'); $this->load->database(); 
      } 
  
      public function index() { 
         $query = $this->db->get("stud"); 
         $data['records'] = $query->result(); 
			
         $this->load->helper('url'); $this->load->view('Stud_view',$data); } public function add_student_view() { $this->load->helper('form'); 
         $this->load->view('Stud_add'); } public function add_student() { $this->load->model('Stud_Model');
			
         $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); } public function update_student_view() { $this->load->helper('form'); 
         $roll_no = $this->uri->segment('3'); 
         $query = $this->db->get_where("stud",array("roll_no"=>$roll_no)); $data['records'] = $query->result(); $data['old_roll_no'] = $roll_no; $this->load->view('Stud_edit',$data); } public function update_student(){ $this->load->model('Stud_Model');
			
         $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); 
      } 
  
      public function delete_student() { 
         $this->load->model('Stud_Model'); $roll_no = $this->uri->segment('3'); $this->Stud_Model->delete($roll_no); $query = $this->db->get("stud"); $data['records'] = $query->result(); $this->load->view('Stud_view',$data); 
      } 
   } 
?>

Buat kelas model bernama Stud_Model.php dan simpan di application/models/Stud_Model.php

<?php 
   class Stud_Model extends CI_Model {
	
      function __construct() { 
         parent::__construct(); 
      } 
   
      public function insert($data) { 
         if ($this->db->insert("stud", $data)) { 
            return true; 
         } 
      } 
   
      public function delete($roll_no) { if ($this->db->delete("stud", "roll_no = ".$roll_no)) { return true; } } public function update($data,$old_roll_no) { $this->db->set($data); $this->db->where("roll_no", $old_roll_no); $this->db->update("stud", $data); 
      } 
   } 
?>

Buat file tampilan bernama Stud_add.php dan simpan di application/views/Stud_add.php

<!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/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(); 
         ?> 
		
      </form> 
   </body>
	
</html>

Buat file tampilan bernama Stud_edit.php dan simpan di application/views/Stud_edit.php

<!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 application/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>
		
      <table border = "1"> 
         <?php 
            $i = 1; echo "<tr>"; echo "<td>Sr#</td>"; echo "<td>Roll No.</td>"; echo "<td>Name</td>"; echo "<td>Edit</td>"; echo "<td>Delete</td>"; echo "<tr>"; 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>

Lakukan 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

Bagian penting dari framework CodeIgniter adalah perpustakaannya. Ini menyediakan seperangkat pustaka yang kaya, yang secara tidak langsung meningkatkan kecepatan pengembangan aplikasi. Perpustakaan sistem terletak di sistem / perpustakaan. Yang perlu kita lakukan adalah memuat perpustakaan yang ingin kita gunakan. Perpustakaan dapat dimuat seperti yang ditunjukkan di bawah ini -

$this->load->library('class name');

Dimana class nameadalah nama perpustakaan yang ingin kita muat. Jika kita ingin memuat banyak pustaka, maka kita cukup meneruskan array sebagai argumenlibrary() berfungsi seperti yang ditunjukkan di bawah ini -

$this->load->library(array('email', 'table'));

Kelas Perpustakaan

Kelas perpustakaan berada di system/libraries. Setiap kelas memiliki fungsi yang berbeda-beda untuk memudahkan pekerjaan yang sedang berkembang. Tabel berikut menunjukkan nama kelas perpustakaan dan deskripsinya.

SN Kelas & Deskripsi Perpustakaan
1

Benchmarking Class

Kelas pembandingan selalu aktif, memungkinkan penghitungan perbedaan waktu antara dua titik yang ditandai.

2

Caching Class

Kelas ini akan men-cache halaman, untuk mengakses kecepatan halaman dengan cepat.

3

Calendaring Class

Dengan menggunakan kelas ini, Anda dapat membuat kalender secara dinamis.

4

Shopping Cart Class

Menggunakan kelas ini, Anda dapat menambah atau menghapus item dari Keranjang Belanja. Item disimpan dalam sesi dan akan tetap aktif sampai pengguna menjelajahi situs.

5

Config Class

Preferensi konfigurasi dapat diambil, menggunakan kelas ini. Kelas ini diinisialisasi secara otomatis.

6

Email Class

Kelas ini menyediakan fungsionalitas terkait email, seperti mengirim atau membalas email.

7

Encryption Class

Kelas ini menyediakan fungsionalitas enkripsi data dua arah.

8

File Uploading Class

Kelas ini menyediakan fungsionalitas yang terkait dengan pengunggahan file. Anda dapat mengatur berbagai preferensi seperti jenis file yang akan diunggah, ukuran file, dll.

9

Form Validation Class

Kelas ini menyediakan berbagai fungsi untuk memvalidasi formulir.

10

FTP Class

Kelas ini menyediakan berbagai fungsi terkait FTP seperti mentransfer file untuk menghapus server, memindahkan, mengganti nama atau menghapus file di server.

11

Image Manipulation Class

Manipulasi gambar seperti pengubahan ukuran, pembuatan thumbnail, cropping, rotating, watermarking dapat dilakukan dengan bantuan kelas ini.

12

Input Class

Kelas ini melakukan pra-proses data masukan untuk alasan keamanan.

13

Language Class

Kelas ini digunakan untuk internasionalisasi.

14

Loader Class

Kelas ini memuat elemen seperti Lihat file, Driver, Pembantu, Model, dll.

15

Migrations Class

Kelas ini menyediakan fungsionalitas yang terkait dengan migrasi database.

16

Output Class

Kelas ini mengirimkan keluaran ke browser dan juga, menyimpan cache halaman web tersebut.

17

Pagination Class

Kelas ini menambahkan fungsionalitas pagination ke halaman web.

18

Template Parser Class

Kelas Parser Template dapat melakukan substitusi teks sederhana untuk variabel palsu yang terdapat dalam file tampilan Anda. Ini dapat mengurai variabel sederhana atau pasangan tag variabel.

19

Security Class

Kelas ini berisi fungsi terkait keamanan seperti XSS Filtering, CSRF, dll.

20

Session Library

Kelas ini menyediakan fungsionalitas untuk memelihara sesi aplikasi Anda.

21

HTML Table

Kelas ini digunakan untuk membuat tabel HTML secara otomatis dari larik atau hasil database.

22

Trackback Class

Kelas Trackback menyediakan fungsi yang memungkinkan Anda mengirim dan menerima data Trackback.

23

Typography Class

Kelas Tipografi menyediakan metode yang membantu untuk memformat teks.

24

Unit Testing Class

Kelas ini menyediakan fungsionalitas untuk menguji aplikasi Anda dan menghasilkan hasilnya.

25

URI Class

Kelas URI menyediakan metode yang membantu Anda mengambil informasi dari string URI Anda. Jika Anda menggunakan perutean URI, Anda juga dapat mengambil informasi tentang segmen yang dirutekan ulang.

26

User Agent Class

Kelas Agen Pengguna menyediakan fungsi yang membantu mengidentifikasi informasi tentang browser, perangkat seluler, atau robot yang mengunjungi situs Anda. Selain itu, Anda bisa mendapatkan informasi perujuk serta bahasa dan informasi set karakter yang didukung.

27

XML-RPC and XML-RPC Server Classes

Kelas XML-RPC CodeIgniter mengizinkan Anda untuk mengirim permintaan ke server lain, atau mengatur server XML-RPC Anda sendiri untuk menerima permintaan.

28

Zip Encoding Class

Kelas ini digunakan untuk membuat arsip zip dari data Anda.

Membuat Perpustakaan

CodeIgniter memiliki kumpulan pustaka yang kaya, yang dapat Anda temukan di system/libraries folder tetapi CodeIgniter tidak hanya terbatas pada pustaka sistem, Anda juga dapat membuat pustaka Anda sendiri, yang dapat disimpan di application/librariesmap. Anda dapat membuat perpustakaan dengan tiga cara.

  • Buat perpustakaan baru
  • Perluas perpustakaan asli
  • Ganti perpustakaan asli

Buat Perpustakaan Baru

Saat membuat perpustakaan baru, perlu diingat, hal-hal berikut -

  • Nama file harus dimulai dengan huruf kapital, misalnya Mylibrary.php
  • Nama kelas harus dimulai dengan huruf kapital, misal, kelas Mylibrary
  • Nama kelas dan nama file harus sesuai.

Mylibrary.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
   
   class Mylibrary {
	
      public function some_function() {
      }
   }
	
/* End of file Mylibrary.php */

Loading the Custom Library

Pustaka di atas dapat dimuat hanya dengan menjalankan baris berikut di pengontrol Anda.

$this->load->library(‘mylibrary’);

mylibrary adalah nama perpustakaan Anda dan Anda dapat menuliskannya 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.

$this->mylibrary->some_function();

Perluas Perpustakaan Asli

Terkadang, Anda mungkin perlu menambahkan fungsionalitas Anda sendiri ke pustaka yang disediakan oleh CodeIgniter. CodeIgniter menyediakan fasilitas di mana Anda dapat memperluas perpustakaan asli dan menambahkan fungsi Anda sendiri. Untuk mencapai ini, Anda harus memperluas kelas kelas perpustakaan asli. Misalnya jika Anda ingin memperluas pustaka Email maka bisa dilakukan seperti yang ditunjukkan di bawah ini -

Class MY_Email extends CI_Email { 
}

Di sini, pada contoh di atas, kelas MY_Email memperluas kelas email CI_Email perpustakaan asli. Pustaka ini dapat dimuat dengan cara standar memuat pustaka email. Simpan kode di atas dalam file My_Email.php

Ganti Perpustakaan Asli

Dalam beberapa situasi, Anda tidak ingin menggunakan pustaka asli seperti cara kerjanya dan ingin menggantinya dengan cara Anda sendiri. Ini dapat dilakukan dengan mengganti perpustakaan asli. Untuk melakukannya, Anda hanya perlu memberikan nama kelas yang sama seperti yang disebutkan di perpustakaan asli. Misalnya, jika Anda ingin mengganti fileEmail class, lalu gunakan kode seperti di bawah ini. Simpan nama file Anda denganEmail.php dan beri nama kelas kepada CI_Email.

Email.php

Class CI_Email { 
}

Sering kali, saat menggunakan aplikasi, kami menemukan kesalahan. Sangat mengganggu bagi pengguna jika kesalahan tidak ditangani dengan baik. CodeIgniter menyediakan mekanisme penanganan kesalahan yang mudah.

Anda ingin pesan ditampilkan, ketika aplikasi dalam mode pengembangan daripada dalam mode produksi karena pesan kesalahan dapat diselesaikan dengan mudah pada tahap pengembangan.

Lingkungan aplikasi Anda dapat diubah, dengan mengubah baris yang diberikan di bawah ini dari index.phpmengajukan. Ini dapat diatur ke apa saja tetapi biasanya ada tiga nilai (pengembangan, pengujian, produksi) yang digunakan untuk tujuan ini.

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

Lingkungan yang berbeda akan membutuhkan tingkat pelaporan 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.

  • show_error() fungsi menampilkan kesalahan dalam format HTML di bagian atas layar.

Syntax

show_error ( $ message,$status_code, $heading = 'Terjadi Kesalahan' )

Parameters

  • $message( campuran ) - Pesan kesalahan

  • $status_code( int ) - kode status Respon HTTP

  • $heading( string ) - Judul halaman error

Return Type

Campuran
  • show_404() fungsi menampilkan kesalahan jika Anda mencoba mengakses halaman yang tidak ada.

Syntax

show_404 ( $ page = '', $ log_error = TRUE )

Parameters

  • $page( string ) - string URI

  • $log_error( bool ) - Apakah akan mencatat kesalahan

Return Type

kosong
  • log_message()fungsi digunakan untuk menulis pesan log. Ini berguna ketika Anda ingin menulis pesan khusus.

Syntax

log_message ( $ level,$message, $php_error = SALAH )

Parameters

  • $level( string ) - Tingkat log: 'error', 'debug' atau 'info'

  • $message( string ) - Pesan untuk dicatat

  • $php_error( bool ) - Apakah kita sedang membuat log pesan kesalahan PHP asli

Return Type

kosong

Masuk dapat diaktifkan di application/config/config.phpmengajukan. Diberikan di bawah ini adalah tangkapan layar dari file config.php, di mana Anda dapat mengatur nilai ambang batas.

/*
|--------------------------------------------------------------------------------
|   Error Logging Threshold
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The 
| threshold determines what gets logged. Threshold options are:
|
|   0 = Disable logging, Error logging TURNED OFF
|   1 = Error Message (including PHP errors)
|   2 = Debug Message
|   3 = Informational Messages
|   4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
|   array(2) = Debug Message, without Error Messages
| For a live site you'll usually only enable Errors (1) to be logged otherwise 
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;

Anda dapat menemukan pesan log di application/log/. Pastikan direktori ini dapat ditulis sebelum Anda mengaktifkan file log.

Berbagai templat untuk pesan kesalahan dapat ditemukan di application/views/errors/cli atau application/views/errors/html.

Dengan menggunakan kelas Mengupload File, kita dapat mengupload file dan kita juga dapat, membatasi jenis dan ukuran file yang akan diupload. Ikuti langkah-langkah yang ditunjukkan pada contoh yang diberikan untuk memahami proses pengunggahan file di CodeIgniter.

Contoh

Salin kode berikut dan simpan di application/view/Upload_form.php.

<html>
 
   <head> 
      <title>Upload Form</title> 
   </head>
	
   <body> 
      <?php echo $error;?> 
      <?php echo form_open_multipart('upload/do_upload');?> 
		
      <form action = "" method = "">
         <input type = "file" name = "userfile" size = "20" /> 
         <br /><br /> 
         <input type = "submit" value = "upload" /> 
      </form> 
		
   </body>
	
</html>

Salin kode yang diberikan di bawah ini dan simpan di application/view/Upload_success.php

<html>
 
   <head> 
      <title>Upload Form</title> 
   </head>
	
   <body>  
      <h3>Your file was successfully uploaded!</h3>  
		
      <ul> 
         <?phpforeach ($upload_data as $item => $value):?> 
         <li><?php echo $item;?>: <?php echo $value;?></li> 
         <?phpendforeach; ?>
      </ul>  
		
      <p><?php echo anchor('upload', 'Upload Another File!'); ?></p>  
   </body>
	
</html>

Salin kode yang diberikan di bawah ini dan simpan di application/controllers/Upload.php. Buat "uploads"Di root CodeIgniter, yaitu di direktori induk folder aplikasi.

<?php
  
   class Upload extends CI_Controller {
	
      public function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('form', 'url')); } public function index() { $this->load->view('upload_form', array('error' => ' ' )); 
      } 
		
      public function do_upload() { 
         $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')) {
            $error = array('error' => $this->upload->display_errors()); 
            $this->load->view('upload_form', $error); 
         }
			
         else { 
            $data = array('upload_data' => $this->upload->data()); 
            $this->load->view('upload_success', $data); 
         } 
      } 
   } 
?>

Lakukan perubahan berikut pada file rute di application/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

Ini akan menghasilkan layar berikut -

Setelah berhasil mengunggah file, Anda akan melihat layar berikut -

Mengirim email di CodeIgniter jauh lebih mudah. Anda juga mengkonfigurasi preferensi terkait email di CodeIgniter. CodeIgniter menyediakan fitur-fitur berikut untuk mengirim email -

  • Beberapa Protokol - Mail, Sendmail, dan SMTP
  • Enkripsi TLS dan SSL untuk SMTP
  • Penerima ganda
  • CC dan BCC
  • HTML atau email Plaintext
  • Attachments
  • Pembungkusan kata
  • Priorities
  • BCC Batch Mode, memungkinkan daftar email besar dipecah menjadi batch BCC kecil.
  • Alat Debugging Email

Kelas email memiliki fungsi berikut untuk mempermudah pekerjaan pengiriman email.

SN Sintaksis Parameter Kembali Jenis Pengembalian
1 dari ( $ from [, $ name = '' [, $ return_path = NULL ]])

$from( string ) - alamat email "Dari"

$name( string ) - nama tampilan "Dari"

$return_path( string ) - Alamat email opsional untuk mengalihkan email yang tidak terkirim

Contoh CI_Email (perangkaian metode) CI_Email
2 reply_to ( $ replyto [, $ name = '' ])

$replyto( string ) - Alamat email untuk balasan

$name( string ) - Nama tampilan untuk alamat email balas-ke

Contoh CI_Email (perangkaian metode) CI_Email
2 ke ( $ to )

$to( campuran ) - String yang dipisahkan koma atau serangkaian alamat email

Contoh CI_Email (perangkaian metode) CI_Email
3 cc ( $ cc )

$cc( campuran ) - String yang dipisahkan koma atau serangkaian alamat email

Contoh CI_Email (perangkaian metode) CI_Email
4 bcc ( $ bcc [, $ limit = '' ])

$bcc( campuran ) - String yang dipisahkan koma atau serangkaian alamat email

$limit( int ) - Jumlah email maksimum untuk dikirim per batch

Contoh CI_Email (perangkaian metode) CI_Email
5 subjek ( $ subject )

$subject( string ) - Baris subjek email

Contoh CI_Email (perangkaian metode) CI_Email
6 pesan ( $ body )

$body( string ) - Badan pesan email

Contoh CI_Email (perangkaian metode) CI_Email
7 set_alt_message ( $ str )

$str( string ) - Badan pesan email alternatif

Contoh CI_Email (perangkaian metode) CI_Email
8 set_header ( $ header, $ value )

$header( string ) - Nama header

$value( string ) - Nilai header

Contoh CI_Email (perangkaian metode) CI_Email
9 jelas ([ $ clear_attachments = FALSE ])

$clear_attachments( bool ) - Apakah akan menghapus lampiran atau tidak

Contoh CI_Email (perangkaian metode) CI_Email
10 kirim ([ $ auto_clear = TRUE ])

$auto_clear( bool ) - Apakah akan menghapus data pesan secara otomatis

Contoh CI_Email (perangkaian metode) CI_Email
11 lampirkan ($ filename [, $disposition = ''[, $newname = NULL [, $ mime = '']]])

$filename( string ) - Nama file

$disposition( string ) - 'disposition' dari lampiran. Sebagian besar klien email membuat keputusan sendiri terlepas dari spesifikasi MIME yang digunakan di sini. iana

$newname( string ) - Nama file kustom untuk digunakan dalam email

$mime( string ) - tipe MIME yang akan digunakan (berguna untuk data yang di-buffer)

Contoh CI_Email (perangkaian metode) CI_Email
12 attachment_cid ( $ filename )

$filename( string ) - Nama file lampiran yang ada

Lampiran Content-ID atau FALSE jika tidak ditemukan tali

Mengirim Email

Untuk mengirim email menggunakan CodeIgniter, pertama Anda harus memuat perpustakaan email menggunakan yang berikut -

$this->load->library('email');

Setelah memuat pustaka, cukup jalankan fungsi berikut untuk mengatur elemen yang diperlukan untuk mengirim email. Itufrom() fungsi digunakan untuk mengatur - dari mana email itu dikirim dan to()fungsi digunakan - kepada siapa email itu dikirim. Itusubject() dan message() fungsi digunakan untuk mengatur subjek dan pesan email.

$this->email->from('[email protected]', 'Your Name'); $this->email->to('[email protected]');
 
$this->email->subject('Email Test'); $this->email->message('Testing the email class.');

Setelah itu, jalankan file send() berfungsi seperti gambar di bawah ini untuk mengirim email.

$this->email->send();

Contoh

Buat file pengontrol Email_controller.php dan simpan di application/controller/Email_controller.php.

<?php 
   class Email_controller extends CI_Controller { 
 
      function __construct() { 
         parent::__construct(); 
         $this->load->library('session'); 
         $this->load->helper('form'); } public function index() { $this->load->helper('form'); 
         $this->load->view('email_form'); } public function send_mail() { $from_email = "[email protected]"; 
         $to_email = $this->input->post('email'); 
   
         //Load email library 
         $this->load->library('email'); $this->email->from($from_email, 'Your Name'); $this->email->to($to_email); $this->email->subject('Email Test'); 
         $this->email->message('Testing the email class.'); //Send mail if($this->email->send()) 
         $this->session->set_flashdata("email_sent","Email sent successfully."); else $this->session->set_flashdata("email_sent","Error in sending Email."); 
         $this->load->view('email_form'); 
      } 
   } 
?>

Buat file tampilan bernama email_form.php dan simpan di application/views/email_form.php

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Email Example</title> 
   </head>
	
   <body> 
      <?php 
         echo $this->session->flashdata('email_sent'); 
         echo form_open('/Email_controller/send_mail'); 
      ?> 
		
      <input type = "email" name = "email" required /> 
      <input type = "submit" value = "SEND MAIL"> 
		
      <?php 
         echo form_close(); 
      ?> 
   </body>
	
</html>

Lakukan perubahan di routes.php mengajukan application/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

Validasi adalah proses penting saat membangun aplikasi web. Ini memastikan bahwa data yang kami peroleh tepat dan valid untuk disimpan atau diproses. CodeIgniter telah membuat tugas ini sangat mudah. Mari kita pahami proses ini dengan contoh sederhana.

Contoh

Buat file tampilan myform.php dan simpan kode di bawah ini application/views/myform.php. Halaman ini akan menampilkan form dimana user dapat memasukkan namanya dan kami akan memvalidasi halaman ini untuk memastikan bahwa halaman tersebut tidak boleh kosong saat melakukan submit.

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

Buat file tampilan formsuccess.php dan simpan di application/views/formsuccess.php. Halaman ini akan ditampilkan jika formulir berhasil divalidasi.

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

Buat file pengontrol Form.php dan simpan di application/controller/Form.php. Formulir ini akan menampilkan kesalahan jika tidak divalidasi dengan benar atau dialihkan keformsuccess.php halaman.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation'); /* Set validation rule for name field in the form */ $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

Tambahkan baris berikut application/config/routes.php.

$route['validation'] = 'Form';

Mari kita jalankan contoh ini dengan mengunjungi URL berikut di browser. URL ini mungkin berbeda berdasarkan situs Anda.

http://yoursite.com/index.php/validation

Ini akan menghasilkan layar berikut -

Kami telah menambahkan validasi di pengontrol - Nameharus diisi sebelum mengirimkan formulir. Jadi, jika Anda mengklik tombol kirim tanpa memasukkan apa pun di bidang nama, maka Anda akan diminta untuk memasukkan nama sebelum mengirimkan seperti yang ditunjukkan pada layar di bawah ini.

Setelah berhasil memasukkan nama, Anda akan diarahkan ke layar seperti gambar di bawah ini.

Dalam contoh di atas, kami telah menggunakan pengaturan aturan yang diperlukan. Ada banyak aturan yang tersedia di CodeIgniter, yang dijelaskan di bawah ini.

Referensi Aturan Validasi

Berikut ini adalah daftar semua aturan asli yang tersedia untuk digunakan -

Aturan Parameter Deskripsi Contoh

required

Tidak Mengembalikan FALSE jika elemen formulir kosong.

matches

Iya Mengembalikan FALSE jika elemen formulir tidak cocok dengan yang ada di parameter. cocok dengan [form_item]

regex_match

Iya Mengembalikan FALSE jika elemen formulir tidak cocok dengan ekspresi reguler. regex_match [/ regex /]

differs

Iya Mengembalikan FALSE jika elemen formulir tidak berbeda dari yang ada di parameter. berbeda [form_item]

is_unique

Iya Mengembalikan FALSE jika elemen formulir tidak unik untuk tabel dan nama bidang di parameter. Catatan - Aturan ini mengharuskan Query Builder diaktifkan agar berfungsi. is_unique [table.field]

min_length

Iya Mengembalikan FALSE jika elemen formulir lebih pendek dari nilai parameter. min_length [3]

max_length

Iya Mengembalikan FALSE jika elemen formulir lebih panjang dari nilai parameter. max_length [12]

exact_length

Iya Mengembalikan FALSE jika elemen formulir tidak persis seperti nilai parameter. panjang_kepat [8]

greater_than

Iya Mengembalikan FALSE jika elemen formulir kurang dari atau sama dengan nilai parameter atau bukan numerik. lebih besar dari [8]

greater_than_equal_to

Iya Mengembalikan FALSE jika elemen formulir lebih kecil dari nilai parameter, atau bukan numerik. lebih besar dari_equal_to [8]

less_than

Iya Mengembalikan FALSE jika elemen formulir lebih besar dari atau sama dengan nilai parameter atau bukan numerik. kurang dari [8]

less_than_equal_to

Iya Mengembalikan FALSE jika elemen formulir lebih besar dari nilai parameter, atau bukan numerik. less_than_equal_to [8]

in_list

Iya Mengembalikan FALSE jika elemen formulir tidak ada dalam daftar yang ditentukan sebelumnya. in_list [merah, biru, hijau]

alpha

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfabet.

alpha_numeric

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfanumerik.

alpha_numeric_spaces

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfanumerik atau spasi. Sebaiknya digunakan setelah trim untuk menghindari spasi di awal atau akhir

alpha_dash

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter alfanumerik, garis bawah, atau tanda hubung.

numeric

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain karakter numerik.

integer

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain bilangan bulat.

decimal

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain angka desimal.

is_natural

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain bilangan asli - 0, 1, 2, 3, dll.

is_natural_no_zero

Tidak Mengembalikan FALSE jika elemen formulir berisi apa pun selain bilangan asli, tetapi tidak nol - 1, 2, 3, dll.

valid_url

Tidak Mengembalikan FALSE jika elemen formulir tidak berisi URL yang valid.

valid_email

Tidak Menampilkan FALSE jika elemen formulir tidak berisi alamat email yang valid.

valid_emails

Tidak Menampilkan FALSE jika nilai apa pun yang diberikan dalam daftar yang dipisahkan koma bukan email yang valid.

valid_ip

Tidak Mengembalikan FALSE jika IP yang diberikan tidak valid. Menerima parameter opsional 'ipv4' atau 'ipv6' untuk menentukan format IP.

valid_base64

Tidak Mengembalikan FALSE jika string yang diberikan berisi apa pun selain karakter Base64 yang valid.

Saat membangun situs web, kami sering perlu melacak aktivitas dan status pengguna dan untuk tujuan ini, kami harus menggunakannya session. CodeIgniter memiliki kelas sesi untuk tujuan ini.

Memulai Sesi

Data sesi tersedia secara global melalui situs, tetapi untuk menggunakan data tersebut kita harus menginisialisasi sesi terlebih dahulu. Kita dapat melakukannya dengan menjalankan baris berikut dalam konstruktor.

$this->load->library('session');

Setelah memuat pustaka sesi, Anda cukup menggunakan objek sesi seperti yang ditunjukkan di bawah ini.

$this->session

Tambahkan Data Sesi

Di PHP, kami cukup menggunakan $_SESSION array untuk mengatur data apa pun dalam sesi seperti yang ditunjukkan di bawah ini.

$_SESSION[‘key’] = value;

Dimana 'key'adalah kunci dari array dan value ditempatkan di sisi kanan tanda sama dengan.

Hal yang sama dapat dilakukan di CodeIgniter seperti yang ditunjukkan di bawah ini.

$this->session->set_userdata('some_name', 'some_value');

set_userdata()fungsi membutuhkan dua argumen. Argumen pertama,some_name, adalah nama variabel sesi, di mana, some_value akan disimpan.

set_userdata() function juga mendukung sintaks lain di mana Anda dapat mengirimkan array untuk menyimpan nilai seperti yang ditunjukkan di bawah ini.

$newdata = array( 
   'username'  => 'johndoe', 
   'email'     => '[email protected]', 
   'logged_in' => TRUE
);  

$this->session->set_userdata($newdata);

Hapus Data Sesi

Di PHP, kita dapat menghapus data yang disimpan dalam sesi menggunakan unset() berfungsi seperti yang ditunjukkan di bawah ini.

unset($_SESSION[‘some_name’]);

Menghapus data sesi di CodeIgniter sangat sederhana seperti yang ditunjukkan di bawah ini. Versi di bawah ini dariunset_userdata() fungsi hanya akan menghapus satu variabel dari sesi.

$this->session->unset_userdata('some_name');

Jika Anda ingin menghapus lebih banyak nilai dari sesi atau untuk menghapus seluruh larik Anda dapat menggunakan versi di bawah ini unset_userdata() fungsi.

$this->session->unset_userdata($array_items);

Ambil Data Sesi

Setelah mengatur data dalam sesi, kami juga dapat mengambil data itu seperti yang ditunjukkan di bawah ini. Userdata()fungsi akan digunakan untuk tujuan ini. Fungsi ini akan kembaliNULL jika data yang Anda coba akses tidak tersedia.

$name = $this->session->userdata('name');

Contoh

Buat kelas pengontrol bernama Session_controller.php dan simpan di application/controller/Session_controller.php.

<?php 
   class Session_controller extends CI_Controller {
	
      public function index() { 
         //loading session library 
         $this->load->library('session'); //adding data to session $this->session->set_userdata('name','virat');
			
         $this->load->view('session_view'); } public function unset_session_data() { //loading session library $this->load->library('session');
			
         //removing session data 
         $this->session->unset_userdata('name'); $this->load->view('session_view'); 
      } 
		
   } 
?>

Buat file tampilan bernama session_view.php dan simpan di application/views/session_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Session Example</title> 
   </head>
	
   <body> 
      Welcome <?php echo $this->session->userdata('name'); ?> 
      <br> 
      <a href = 'http://localhost:85/CodeIgniter-3.0.1/CodeIgniter3.0.1/index.php/sessionex/unset'>
         Click Here</a> to unset session data. 
   </body>
	
</html>

Lakukan perubahan di routes.php mengajukan application/config/routes.php dan tambahkan baris berikut di akhir file.

$route['sessionex'] = 'Session_Controller';

Jalankan contoh di atas dengan menggunakan alamat berikut. Menggantikanyoursite.com dengan URL situs Anda.

http://yoursite.com/index.php/sessionex

Saat membangun aplikasi web, kami perlu menyimpan beberapa data hanya untuk satu kali dan setelah itu kami ingin menghapus data tersebut. Misalnya untuk menampilkan beberapa pesan error atau pesan informasi. Di PHP, kita harus melakukannya secara manual tetapi CodeIgniter telah membuat pekerjaan ini sederhana untuk kita. Di CodeIgniter, flashdata hanya akan tersedia sampai permintaan berikutnya, dan akan dihapus secara otomatis.

Tambahkan Flashdata

Kami cukup menyimpan flashdata seperti yang ditunjukkan di bawah ini.

$this->session->mark_as_flash('item');
  • mark_as_flash()fungsi digunakan untuk tujuan ini, yang hanya membutuhkan satu argumen dari nilai yang akan disimpan. Kita juga bisa mengirimkan array untuk menyimpan banyak nilai.

  • set_flashdata()fungsi juga bisa digunakan, yang membutuhkan dua argumen, nama dan nilai, seperti yang ditunjukkan di bawah ini. Kita juga bisa melewatkan array.

$this->session->set_flashdata('item','value');

Ambil Flashdata

Flashdata bisa 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 argumen apa pun, Anda bisa mendapatkan array dengan fungsi yang sama.

Contoh

Buat kelas bernama FlashData_Controller.php dan simpan di application/controller/FlashData_Controller.php.

<?php 
   class FlashData_Controller extends CI_Controller {
	
      public function index() { 
         //Load session library 
         $this->load->library('session');
			
         //redirect to home page 
         $this->load->view('flashdata_home'); } public function add() { //Load session library $this->load->library('session'); 
         $this->load->helper('url'); //add flash data $this->session->set_flashdata('item','item-value'); 
   
         //redirect to home page 
         redirect('flashdata'); 
      } 
   } 
?>

Buat file tampilan bernama flashdata_home.php dan simpan di application/views/ flashdata_home.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Flashdata Example</title> 
   </head>
	
   <body> 
      Flash Data Example 
      <h2><?php echo $this->session->flashdata('item'); ?></h2> 
      <a href = 'flashdata/add'>Click Here</a> to add flash data. 
   </body>
	
</html>

Lakukan perubahan di routes.php mengajukan application/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 di bawah ini.

Klik "Click Here”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.

Dalam beberapa situasi, di mana Anda ingin menghapus data yang disimpan dalam sesi setelah beberapa jangka waktu tertentu, ini dapat dilakukan dengan menggunakan tempdata fungsionalitas di CodeIgniter.

Tambahkan Tempdata

Untuk menambahkan data sebagai tempdata, kita harus menggunakan mark_as_tempdata()fungsi. Fungsi ini membutuhkan dua item argumen atau item untuk disimpan sebagaitempdata dan waktu kedaluwarsa untuk item tersebut seperti yang ditunjukkan di bawah ini.

// 'item' will be erased after 300 seconds(5 minutes) 
$this->session->mark_as_temp('item',300);

Anda juga bisa melewatkan array untuk menyimpan banyak data. Semua item yang disimpan di bawah akan kadaluarsa 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.

// 'item' will be erased after 300 seconds, while 'item2' 
// will do so after only 240 seconds 

$this->session->mark_as_temp(array( 
   'item'=>300, 
   'item2'=>240 
));

Ambil Tempdata

Kita bisa mengambil tempdata menggunakan tempdata()fungsi. Fungsi ini memastikan bahwa Anda hanya mendapatkan tempdata dan bukan data lainnya. Lihat contoh yang diberikan di bawah ini untuk melihat cara mengambil data temp.tempdata() fungsi akan mengambil satu argumen dari item yang akan diambil.

$this->session->tempdata('item');

Jika Anda menghilangkan argumen tersebut, maka Anda dapat mengambil semua tempdata yang ada.

Hapus Tempdata

Tempdata dihapus secara otomatis setelah waktu kedaluwarsanya tetapi jika Anda ingin menghapus tempdata sebelum itu, maka Anda dapat melakukan seperti yang ditunjukkan di bawah ini menggunakan unset_tempdata() fungsi, yang mengambil satu argumen dari item yang akan dihapus.

$this->session->unset_tempdata('item');

Contoh

Buat kelas bernama Tempdata_controller.php dan simpan di application/controller/Tempdata_controller.php.

<?php 
   class Tempdata_controller extends CI_Controller {
	
      public function index() { 
         $this->load->library('session'); $this->load->view('tempdata_view'); 
      } 
  
      public function add() { 
         $this->load->library('session'); $this->load->helper('url'); 
   
         //tempdata will be removed after 5 seconds 
         $this->session->set_tempdata('item','item-value',5); 
   
         redirect('tempdata'); 
      } 
   } 
?>

Buat file bernama tempdata_view.php dan simpan di application/views/tempdata_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Tempdata Example</title> 
   </head>
	
   <body> 
      Temp Data Example 
      <h2><?php echo $this->session->tempdata('item'); ?></h2>
      <a href = 'tempdata/add'>Click Here</a> to add temp data. 
   </body>
	
</html>

Lakukan perubahan di routes.php file di application / 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 di bawah ini.

Klik “Click Here” tautan 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 menyegarkan halaman yang sama sebelum 5 detik, maka data sementara tidak akan dihapus, karena jangka waktu belum berakhir.

Menghancurkan Sesi

Di PHP, kami menggunakan session_destroy() fungsi untuk menghancurkan sesi dan di CodeIgniter kita dapat menghancurkan fungsi seperti yang ditunjukkan di bawah ini.

$this->session->sess_destroy();

Setelah memanggil fungsi ini, semua data sesi termasuk flashdata dan tempdata akan dihapus secara permanen dan tidak dapat diambil kembali.

Cookie adalah sepotong kecil data yang dikirim dari server web untuk disimpan di komputer klien. CodeIgniter memiliki satu helper yang disebut "Cookie Helper" untuk manajemen cookie.

Syntax

set_cookie ( $ nama [, $ nilai = '' [, $ expire = '' [, $ domain = '' [, $ path = '/' [, $ prefix = '' [, $ secure = FALSE [, $ httponly = SALAH ]]]]]]]])

Parameters

  • $name( campuran ) - Nama cookie atau larik asosiatif dari semua parameter yang tersedia untuk fungsi ini

  • $value( string ) - Nilai cookie

  • $expire( int ) - Jumlah detik hingga kedaluwarsa

  • $domain( string ) - Domain cookie (biasanya: .yourdomain.com)

  • $path( string ) - Jalur cookie

  • $prefix( string ) - Awalan nama cookie

  • $secure( bool ) - Apakah hanya mengirim cookie melalui HTTPS

  • $httponly( bool ) - Apakah akan menyembunyikan cookie dari JavaScript

Return Type

kosong

Dalam set_cookie()fungsi, kita bisa melewatkan semua nilai menggunakan dua cara. Cara pertama, hanya larik yang bisa dilewatkan dan cara kedua, parameter individual juga bisa dilewatkan.

Syntax

get_cookie ( $ indeks [, $ xss_clean = NULL ]])

Parameters

  • $index( string ) - Nama cookie

  • $xss_clean( bool ) - Apakah akan menerapkan pemfilteran XSS ke nilai yang dikembalikan

Return

Nilai cookie atau NULL jika tidak ditemukan

Return Type

Campuran

Itu get_cookie() fungsi digunakan untuk mendapatkan cookie yang telah diatur menggunakan fungsi set_cookie ().

Syntax

delete_cookie ( $ nama [, $ domain = '' [, $ path = '/' [, $ prefix = '' ]]]])

Parameters

  • $name( string ) - Nama cookie

  • $domain( string ) - Domain cookie (biasanya: .yourdomain.com)

  • $path( string ) - Jalur cookie

  • $prefix( string ) - Awalan nama cookie

Return Type

kosong

Itu delete_cookie() fungsi digunakan untuk menghapus cookie ().

Contoh

Buat pengontrol bernama Cookie_controller.php dan simpan di application/controller/Cookie_controller.php

<?php 
   class Cookie_controller extends CI_Controller { 
	
      function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('cookie', 'url')); 
      } 
  
      public function index() { 
         set_cookie('cookie_name','cookie_value','3600'); 
         $this->load->view('Cookie_view'); } public function display_cookie() { echo get_cookie('cookie_name'); $this->load->view('Cookie_view');
      } 
  
      public function deletecookie() { 
         delete_cookie('cookie_name'); 
         redirect('cookie/display'); 
      } 
		
   } 
?>

Buat file tampilan bernama Cookie_view.php dan simpan di application/views/Cookie_view.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head> 
	
   <body> 
      <a href = 'display'>Click Here</a> to view the cookie.<br> 
      <a href = 'delete'>Click Here</a> to delete the cookie. 
   </body>
	
</html>

Ubah file routes.php di application / config / routes.php untuk menambahkan rute untuk kontroler 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

Ini akan menghasilkan keluaran seperti yang ditunjukkan pada tangkapan layar berikut.

Fungsi pustaka CodeIgniter dan fungsi pembantu perlu diinisialisasi sebelum digunakan tetapi ada beberapa fungsi umum, yang tidak perlu diinisialisasi.

Fungsi umum dan deskripsinya diberikan di bawah ini.

Sintaksis is_php ( $ versi )
Parameter

$version( string ) - Nomor versi

Kembali BENAR jika versi PHP yang berjalan setidaknya yang ditentukan atau SALAH jika tidak
Jenis Pengembalian kosong
Deskripsi Menentukan apakah versi PHP yang digunakan lebih besar dari nomor versi yang disediakan.
Sintaksis is_really_writable ( $ file )
Parameter

$file( string ) - Jalur file

Kembali BENAR jika jalur dapat ditulis, SALAH jika tidak
Jenis Pengembalian bool
Deskripsi memeriksa untuk melihat apakah file dapat ditulis atau tidak.
Sintaksis config_item ( $ key )
Parameter

$key( string ) - Kunci item konfigurasi

Kembali Nilai kunci konfigurasi atau NULL jika tidak ditemukan
Jenis Pengembalian Campuran
Deskripsi Fungsi ini digunakan untuk mendapatkan item konfigurasi
Sintaksis set_status_header ( $ code [, $ text = '' ])
Parameter

$code( int ) - kode status Respon HTTP

$text( string ) - Pesan khusus untuk disetel dengan kode status

Kembali
Jenis Pengembalian kosong
Deskripsi Fungsi ini memungkinkan Anda untuk mengatur header status server secara manual.
Sintaksis remove_invisible_characters ( $ str [, $ url_encoded = TRUE ])
Parameter

$str( string ) - Input string

$url_encoded( bool ) - Apakah juga akan menghapus karakter yang dikodekan URL

Kembali String yang disanitasi
Jenis Pengembalian tali
Deskripsi Fungsi ini mencegah penyisipan karakter NULL antara karakter ASCII
Sintaksis html_escape ( $ var )
Parameter

$var( campuran ) - Variabel untuk keluar (string atau array)

Kembali String pelolosan HTML
Jenis Pengembalian Campuran
Deskripsi Fungsi ini bertindak sebagai fungsi htmlspecialchars () PHP asli.
Sintaksis get_mimes ()
Kembali Array asosiatif dari tipe file
Jenis Pengembalian Himpunan
Deskripsi Fungsi ini mengembalikan referensi ke array MIMEs dari application / config / mimes.php .
Sintaksis is_https ()

Kembali TRUE jika saat ini menggunakan HTTP-over-SSL, FALSE jika tidak
Jenis Pengembalian bool
Deskripsi Menampilkan TRUE jika koneksi aman (HTTPS) digunakan dan FALSE dalam kasus lain (termasuk permintaan non-HTTP).
Sintaksis is_cli ()
Kembali TRUE jika saat ini berjalan di bawah CLI, FALSE sebaliknya
Jenis Pengembalian bool
Deskripsi Mengembalikan TRUE jika aplikasi dijalankan melalui baris perintah dan FALSE jika tidak.
Sintaksis function_usable ( $ function_name )
Parameter

$function_name( string ) - Nama fungsi

Jenis Pengembalian bool
Deskripsi Mengembalikan TRUE jika suatu fungsi ada dan dapat digunakan, FALSE jika tidak.

Diberikan di bawah ini adalah contoh, yang menunjukkan semua fungsi di atas.

Contoh

Di sini kami hanya membuat satu pengontrol di mana kami akan menggunakan fungsi-fungsi di atas. Salin kode yang diberikan di bawah ini dan simpan di application/controller/CommonFun_Controller.php.

<?php 
   class CommonFun_Controller extends CI_Controller { 
	
      public function index() {
         set_status_header(200); 
         echo is_php('5.3')."<br>"; 
         var_dump(is_really_writable('./Form.php')); 
			
         echo config_item('language')."<br>"; 
         echo remove_invisible_characters('This is a ‌test','UTF8')."<br>"; 
			
         $str = '< This > is \' a " test & string'; 
         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>"; 
      } 
  
      public function test() { 
         echo "Test function"; 
      } 
		
   } 
?>

Mengubah routes.php file di application / config / routes.php untuk menambahkan rute untuk pengontrol di atas dan menambahkan 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/commonfunctions

Caching halaman akan meningkatkan kecepatan memuat halaman. Jika halaman di-cache, maka itu akan disimpan dalam status render sepenuhnya. Lain kali, ketika server mendapat permintaan untuk halaman yang di-cache, itu akan langsung dikirim ke browser yang diminta.

File cache disimpan di application/cachemap. Caching dapat diaktifkan per halaman. Saat mengaktifkan cache, kita perlu mengatur waktu, hingga waktu itu perlu tetap di folder cache dan setelah periode itu, itu akan dihapus secara otomatis.

Aktifkan Caching

Caching dapat diaktifkan dengan menjalankan baris berikut di salah satu metode pengontrol.

$this->output->cache($n);

Dimana $n adalah jumlah minutes, Anda ingin halaman tetap di-cache di antara refresh.

Nonaktifkan Caching

File cache dihapus ketika kedaluwarsa tetapi ketika Anda ingin menghapusnya secara manual, maka Anda harus menonaktifkannya. Anda dapat menonaktifkan cache dengan menjalankan baris berikut.

// Deletes cache for the currently requested URI 
$this->output->delete_cache();
  
// Deletes cache for /foo/bar 
$this->output->delete_cache('/foo/bar');

Contoh

Buat pengontrol bernama Cache_controller.php dan simpan di application/controller/Cache_controller.php

<?php 
   class Cache_controller extends CI_Controller { 
	
      public function index() { 
         $this->output->cache(1); 
         $this->load->view('test'); } public function delete_file_cache() { $this->output->delete_cache('cachecontroller'); 
      } 
   } 
?>

Buat file tampilan bernama test.php dan simpan di application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

Mengubah routes.php mengajukan application/config/routes.php untuk menambahkan rute untuk pengontrol di atas dan menambahkan baris berikut di akhir file.

$route['cachecontroller'] = 'Cache_controller'; $route['cachecontroller/delete'] = 'Cache_controller/delete_file_cache';

Ketik URL berikut di browser untuk menjalankan contoh.

http://yoursite.com/index.php/cachecontroller

Setelah mengunjungi URL di atas, Anda akan melihat bahwa file cache untuk ini akan dibuat di application/cachemap. Untuk menghapus file, kunjungi URL berikut.

http://yoursite.com/index.php/cachecontroller/delete

Saat membangun aplikasi web, kami sering kali perlu mengarahkan pengguna dari satu halaman ke halaman lain. CodeIgniter mempermudah pekerjaan ini bagi kami. Ituredirect() fungsi digunakan untuk tujuan ini.

Syntax

redirect ($uri = '', $metode = 'otomatis', $ code = NULL )

Parameters

  • $uri( string ) - string URI

  • $method( string ) - Metode pengalihan ('auto', 'location' atau 'refresh')

  • $code( string ) - kode Respon HTTP (biasanya 302 atau 303)

Return type

kosong

Argumen pertama bisa memiliki dua tipe URI. Kita dapat meneruskan URL situs lengkap atau segmen URI ke pengontrol yang ingin Anda arahkan.

Parameter opsional kedua dapat memiliki salah satu dari tiga nilai dari auto, location atau refresh. Standarnya adalah otomatis.

Parameter opsional ketiga hanya tersedia dengan pengalihan lokasi dan memungkinkan Anda untuk mengirim kode tanggapan HTTP tertentu.

Contoh

Buat pengontrol bernama Redirect_controller.php dan simpan di application/controller/Redirect_controller.php

<?php 
   class Redirect_controller extends CI_Controller { 
	
      public function index() { 
         /*Load the URL helper*/ 
         $this->load->helper('url'); /*Redirect the user to some site*/ redirect('http://www.tutorialspoint.com'); } public function computer_graphics() { /*Load the URL helper*/ $this->load->helper('url'); 
         redirect('http://www.tutorialspoint.com/computer_graphics/index.htm'); 
      } 
  
      public function version2() { 
         /*Load the URL helper*/ 
         $this->load->helper('url'); 
   
         /*Redirect the user to some internal controller’s method*/ 
         redirect('redirect/computer_graphics'); 
      } 
		
   } 
?>

Mengubah routes.php mengajukan application/config/routes.php untuk menambahkan rute untuk pengontrol di atas dan menambahkan baris berikut di akhir file.

$route['redirect'] = 'Redirect_controller'; 
$route['redirect/version2'] = 'Redirect_controller/version2'; $route['redirect/computer_graphics'] = 'Redirect_controller/computer_graphics';

Ketik URL berikut di browser, untuk menjalankan contoh.

http://yoursite.com/index.php/redirect

URL di atas akan mengarahkan Anda ke situs web tutorialspoint.com dan jika Anda mengunjungi URL berikut, Anda akan diarahkan ke tutorial grafis komputer di tutorialspoint.com.

http://yoursite.com/index.php/redirect/computer_graphics

Saat membangun aplikasi web, kami sangat memperhatikan kinerja situs web dalam hal berapa banyak waktu yang dibutuhkan pengontrol untuk mengeksekusi dan berapa banyak memori yang digunakan. Tidak hanya kinerja, tetapi kita juga perlu melihat wawasan data seperti data POST, data kueri database, data sesi, dll. Untuk tujuan debugging saat mengembangkan beberapa aplikasi. CodeIgniter telah membuat pekerjaan ini lebih mudah bagi kami dengan membuat profil aplikasi.

Aktifkan Profiling

Untuk mengaktifkan pembuatan profil aplikasi Anda, cukup jalankan perintah yang diberikan di bawah ini dalam salah satu metode pengontrol Anda.

$this->output->enable_profiler(TRUE);

Laporan pembuatan profil dapat dilihat di bagian bawah halaman setelah mengaktifkannya.

Nonaktifkan Profiling

Untuk menonaktifkan profil aplikasi Anda, cukup jalankan perintah yang diberikan di bawah ini dalam salah satu metode pengontrol Anda.

$this->output->enable_profiler(FALSE);

Aktifkan / Nonaktifkan Bagian Profiler

Profiling dapat dilakukan berdasarkan bagian. Anda dapat mengaktifkan atau menonaktifkan pembuatan profil bagian dengan menyetel nilai Boolean TRUE atau FALSE. Jika Anda ingin mengatur profiling pada aplikasi maka Anda dapat melakukannya di file yang terletak diapplication/config/profiler.php

Misalnya, perintah berikut akan mengaktifkan kueri pembuatan profil untuk seluruh aplikasi.

$config['queries'] = TRUE;

Dalam tabel berikut, kuncinya adalah parameter, yang dapat disetel dalam larik konfigurasi untuk mengaktifkan atau menonaktifkan profil tertentu.

Kunci Deskripsi Default

benchmarks

Waktu yang telah berlalu dari poin Benchmark dan total waktu eksekusi BENAR

config

CodeIgniterConfig BENAR

controller_info

Kelas dan metode Pengontrol yang diminta BENAR

get

Semua data GET yang diteruskan dalam permintaan BENAR

http_headers

Header HTTP untuk permintaan saat ini BENAR

memory_usage

Jumlah memori yang dipakai oleh permintaan saat ini, dalam byte BENAR

post

Semua data POST yang diteruskan dalam permintaan BENAR

queries

Daftar semua query database yang dieksekusi, termasuk waktu eksekusi BENAR

uri_string

URI permintaan saat ini BENAR

session_data

Data disimpan di sesi saat ini BENAR

query_toggle_count

Jumlah kueri yang setelah itu blok kueri akan default ke tersembunyi. 25

Profiler yang disetel dalam file di application/config/profiler.php dapat diganti dengan menggunakan set_profiler_sections() berfungsi dalam pengontrol seperti yang ditunjukkan di bawah ini.

$sections = array( 
   'config'  => TRUE, 
   'queries' => TRUE 
); 
 
$this->output->set_profiler_sections($sections);

Menetapkan Titik Tolok Ukur

Jika Anda ingin mengukur waktu yang dibutuhkan untuk mengeksekusi serangkaian baris atau penggunaan memori, Anda dapat menghitungnya dengan menggunakan titik Benchmarking di CodeIgniter. Ada "Benchmarking”Untuk tujuan ini di CodeIgniter.

Kelas ini dimuat secara otomatis; Anda tidak perlu memuatnya. Ini dapat digunakan di mana saja di kelas pengontrol, tampilan, dan model Anda. Yang harus Anda lakukan adalah menandai titik awal dan titik akhir, lalu menjalankan fileelapsed_time() fungsi antara dua titik yang ditandai ini dan Anda bisa mendapatkan waktu yang dibutuhkan untuk mengeksekusi kode itu seperti yang ditunjukkan di bawah ini.

<?php 
   $this->benchmark->mark('code_start'); // Some code happens here $this->benchmark->mark('code_end');
  
   echo $this->benchmark->elapsed_time('code_start', 'code_end'); 
?>

Untuk menampilkan penggunaan memori, gunakan fungsi tersebut memory_usage() seperti yang ditunjukkan pada kode berikut.

<?php 
   echo $this->benchmark->memory_usage(); 
?>

Contoh

Buat pengontrol bernama Profiler_controller.php dan simpan di application/controller/Profiler_controller.php

<?php 
   class Profiler_controller extends CI_Controller {
  
      public function index() {
	
         //enable profiler
         $this->output->enable_profiler(TRUE); $this->load->view('test'); 
      } 
  
      public function disable() {
	
         //disable profiler 
         $this->output->enable_profiler(FALSE); $this->load->view('test'); 
      }
		
   } 
?>

Buat file tampilan bernama test.php dan simpan di application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

Ubah file routes.php di application/config/routes.php untuk menambahkan rute untuk pengontrol di atas dan menambahkan baris berikut di akhir file.

$route['profiler'] = "Profiler_controller"; $route['profiler/disable'] = "Profiler_controller/disable"

Setelah itu, Anda dapat mengetikkan URL berikut di bilah alamat browser Anda untuk menjalankan contoh.

http://yoursite.com/index.php/profiler

URL di atas akan mengaktifkan profiler dan itu akan menghasilkan output seperti yang ditunjukkan pada gambar berikut.

Untuk menonaktifkan pembuatan profil, jalankan URL berikut.

http://yoursite.com/index.php/profiler/disable

Menambahkan file JavaScript dan CSS (Cascading Style Sheet) di CodeIgniter sangat sederhana. Anda harus membuat folder JS dan CSS di direktori root dan menyalin semua file .js di folder JS dan file .css di folder CSS seperti yang ditunjukkan pada gambar.

Misalnya, mari kita asumsikan, Anda telah membuat satu file JavaScript sample.js dan satu file CSS style.css. Sekarang, untuk menambahkan file-file ini ke view 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 dalam file view, untuk memuat file sample.js dan style.css dalam view seperti yang ditunjukkan di bawah ini.

<link rel = "stylesheet" type = "text/css" 
   href = "<?php echo base_url(); ?>css/style.css">

<script type = 'text/javascript' src = "<?php echo base_url(); 
   ?>js/sample.js"></script>

Contoh

Buat pengontrol bernama Test.php dan simpan di application/controller/Test.php

<?php 
   class Test extends CI_Controller {
	
      public function index() { 
         $this->load->helper('url'); 
         $this->load->view('test'); 
      } 
   } 
?>

Buat file tampilan bernama test.php dan simpan di application/views/test.php

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
      <link rel = "stylesheet" type = "text/css" 
         href = "<?php echo base_url(); ?>css/style.css"> 
      <script type = 'text/javascript' src = "<?php echo base_url(); 
         ?>js/sample.js"></script> 
   </head>
	
   <body> 
      <a href = 'javascript:test()'>Click Here</a> to execute the javascript function. 
   </body>
	
</html>

Buat file CSS bernama style.css dan simpan di css/style.css

body { 
   background:#000; 
   color:#FFF; 
}

Buat file JS bernama sample.js dan simpan di js/sample.js

function test() { 
   alert('test'); 
}

Mengubah routes.php mengajukan application/config/routes.php untuk menambahkan rute untuk pengontrol di atas dan menambahkan baris berikut di akhir file.

$route['profiler'] = "Profiler_controller"; 
$route['profiler/disable'] = "Profiler_controller/disable"

Gunakan URL berikut di browser untuk menjalankan contoh di atas.

http://yoursite.com/index.php/test

Kelas bahasa di CodeIgniter menyediakan cara mudah untuk mendukung banyak bahasa untuk internasionalisasi. Sampai batas tertentu, kita dapat menggunakan file bahasa yang berbeda untuk menampilkan teks dalam berbagai bahasa.

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 di direktori aplikasi / bahasa.

Membuat file Bahasa

Untuk membuat file bahasa, Anda harus mengakhirinya dengan _lang.php. Misalnya Anda ingin membuat file bahasa untuk bahasa Perancis, maka Anda harus menyimpannya denganfrench_lang.php. Di dalam file ini Anda dapat menyimpan semua teks bahasa Anda dalam kunci, kombinasi nilai dalam$lang array seperti yang ditunjukkan di bawah ini.

$lang[‘key’] = ‘val’;

Memuat file Bahasa

Untuk menggunakan salah satu bahasa dalam aplikasi Anda, Anda harus terlebih dahulu memuat file dari bahasa tersebut untuk mengambil berbagai teks yang disimpan dalam file itu. Anda dapat menggunakan kode berikut untuk memuat file bahasa.

$this->lang->load('filename', 'language');
  • filename- Ini adalah nama file yang ingin Anda muat. Jangan gunakan ekstensi file di sini tetapi hanya nama file.

  • Language - Ini adalah set bahasa yang memuatnya.

Mengambil Teks Bahasa

Untuk mengambil baris dari file bahasa cukup jalankan kode berikut.

$this->lang->line('language_key');

Dimana language_key adalah parameter kunci yang digunakan untuk mengambil nilai kunci dalam file bahasa yang dimuat.

Bahasa Muat Otomatis

Jika Anda membutuhkan beberapa bahasa secara global, Anda dapat memuatnya secara otomatis application/config/autoload.php file seperti yang ditunjukkan di bawah ini.

| -----------------------------------------------------------------------
|  Auto-load Language files
| -----------------------------------------------------------------------
| Prototype:
|   $autoload['config'] = array('config1', 'config2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array();

Cukup, teruskan bahasa yang berbeda untuk dimuat secara otomatis oleh CodeIgniter.

Contoh

Buat pengontrol bernama Lang_controller.php dan simpan di application/controller/Lang_controller.php

<?php
   class Lang_controller extends CI_Controller {

      public function index(){
         //Load form helper
         $this->load->helper('form');

         //Get the selected language
         $language = $this->input->post('language');
		
         //Choose language file according to selected lanaguage
         if($language == "french") $this->lang->load('french_lang','french');
         else if($language == "german") $this->lang->load('german_lang','german');
         else
         $this->lang->load('english_lang','english'); //Fetch the message from language file. $data['msg'] = $this->lang->line('msg'); $data['language'] = $language; //Load the view file $this->load->view('lang_view',$data);
      }
   }
?>

Buat file tampilan bernama lang_view.php dan simpan di application/views/ lang_view.php

<!DOCTYPE html>
<html lang = "en"> 

   <head>
      <meta charset = "utf-8">
      <title>CodeIgniter Internationalization Example</title>
   </head>
	
   <body>
      <?php
         echo form_open('/lang');
      ?>
		
      <select name = "language" onchange = "javascript:this.form.submit();">
         <?php
            $lang = array('english'=>"English",'french'=>"French",'german'=>"German");
				
            foreach($lang as $key=>$val) { if($key == $language) echo "<option value = '".$key."' selected>".$val."</option>"; else echo "<option value = '".$key."'>".$val."</option>"; } ?> </select> <br> <?php form_close(); echo $msg;
      ?>
		
   </body>
	
</html>

Buat tiga folder bernama Inggris, Prancis, dan Jerman di application/language seperti yang ditunjukkan pada gambar di bawah ini.

Salin kode yang diberikan di bawah ini dan simpan di english_lang.php mengajukan application/language/english map.

<?php
   $lang['msg'] = "CodeIgniter Internationalization example.";
?>

Salin kode yang diberikan di bawah ini dan simpan di french_lang.php mengajukan application/language/French map.

<?php
   $lang['msg'] = "Exemple CodeIgniter internationalisation.";
?>

Salin kode yang diberikan di bawah ini dan simpan di german_lang.php mengajukan application/language/german map.

<?php
   $lang['msg'] = "CodeIgniter Internationalisierung Beispiel.";
?>

Mengubah routes.php mengajukan application/config/routes.php untuk menambahkan rute untuk pengontrol di atas dan menambahkan baris berikut di akhir file.

$route['lang'] = "Lang_controller";

Jalankan URL berikut di browser untuk menjalankan contoh di atas.

http://yoursite.com/index.php/lang

Ini akan menghasilkan keluaran seperti yang ditunjukkan pada tangkapan layar berikut. Jika Anda mengubah bahasa di daftar tarik-turun, bahasa kalimat yang tertulis di bawah menu tarik-turun juga akan berubah.

Pencegahan XSS

XSS berarti pembuatan skrip lintas situs. CodeIgniter hadir dengan keamanan penyaringan XSS. Filter ini akan mencegah kode JavaScript berbahaya atau kode lain yang mencoba membajak cookie dan melakukan aktivitas berbahaya. Untuk memfilter data melalui filter XSS, gunakanxss_clean() metode seperti yang ditunjukkan di bawah ini.

$data = $this->security->xss_clean($data);

Anda harus menggunakan fungsi ini hanya saat Anda mengirimkan data. Parameter Boolean kedua opsional juga dapat digunakan untuk memeriksa file gambar untuk serangan XSS. Ini berguna untuk fasilitas upload file. Jika nilainya benar, berarti gambar tersebut aman dan bukan sebaliknya.

Pencegahan Injeksi SQL

Injeksi SQL adalah serangan yang dilakukan pada kueri database. Di PHP, kami menggunakanmysql_real_escape_string() berfungsi untuk mencegah hal ini bersama dengan teknik lain tetapi CodeIgniter menyediakan fungsi dan pustaka bawaan untuk mencegah hal ini.

Kami dapat mencegah SQL Injection di CodeIgniter dengan tiga cara berikut -

  • Keluar dari Kueri
  • Query Biding
  • Kelas Rekaman Aktif

Keluar dari Kueri

<?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() fungsi secara otomatis menambahkan tanda kutip tunggal di sekitar data dan menentukan tipe data sehingga data hanya dapat lolos dari data string.

Query Biding

<?php
   $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?";
   $this->db->query($sql, array(3, 'live', 'Rick'));
?>

Dalam contoh di atas, tanda tanya (?) Akan diganti dengan larik di parameter kedua dari fungsi query (). Keuntungan utama dari membangun kueri dengan cara ini adalah bahwa nilai secara otomatis di-escape yang menghasilkan kueri yang aman. Mesin CodeIgniter melakukannya untuk Anda secara otomatis, jadi Anda tidak perlu mengingatnya.

Kelas Rekaman Aktif

<?php
   $this->db->get_where('subscribers_tbl',array
      ('status'=> active','email' => '[email protected]'));
?>

Menggunakan rekaman aktif, sintaks kueri dibuat oleh setiap adaptor database. Ini juga memungkinkan kueri yang lebih aman, karena nilainya keluar secara otomatis.

Menyembunyikan Kesalahan PHP

Dalam lingkungan produksi, kami sering tidak ingin menampilkan pesan kesalahan apapun kepada pengguna. Ini bagus jika diaktifkan di lingkungan pengembangan untuk tujuan debugging. Pesan kesalahan ini mungkin berisi beberapa informasi, yang tidak boleh kami perlihatkan kepada pengguna situs untuk alasan keamanan.

Ada tiga file CodeIgniter yang terkait dengan kesalahan.

Tingkat Pelaporan Kesalahan PHP

Lingkungan yang berbeda membutuhkan tingkat pelaporan kesalahan yang berbeda. Secara default, pengembangan akan menampilkan kesalahan tetapi pengujian dan siaran langsung akan menyembunyikannya. Ada file bernamaindex.phpdi direktori root CodeIgniter, yang digunakan untuk tujuan ini. Jika kita memberikan nol sebagai argumen keerror_reporting() berfungsi maka itu akan menyembunyikan semua kesalahan.

Kesalahan Database

Bahkan jika Anda telah mematikan kesalahan PHP, kesalahan MySQL masih terbuka. Anda dapat mematikannya diapplication/config/database.php. Mengaturdb_debug opsi di $db array ke FALSE seperti gambar dibawah.

$db['default']['db_debug'] = FALSE;

Catatan eror

Cara lain adalah mentransfer kesalahan ke file log. Jadi, itu tidak akan ditampilkan kepada pengguna di situs. Cukup, setellog_threshold menghargai $config array ke 1 in application/cofig/config.php file seperti yang ditunjukkan di bawah ini.

$config['log_threshold'] = 1;

Pencegahan CSRF

CSRF adalah singkatan dari pemalsuan permintaan lintas situs. Anda dapat mencegah serangan ini dengan mengaktifkannya diapplication/config/config.php file seperti yang ditunjukkan di bawah ini.

$config['csrf_protection'] = TRUE;

Saat Anda membuat formulir menggunakan form_open()fungsi, secara otomatis akan memasukkan CSRF sebagai bidang tersembunyi. Anda juga dapat menambahkan CSRF secara manual menggunakanget_csrf_token_name() dan get_csrf_hash()fungsi. Ituget_csrf_token_name() fungsi akan mengembalikan nama CSRF dan get_csrf_hash() akan mengembalikan nilai hash CSRF.

Token CSRF dapat dibuat ulang setiap kali untuk dikirimkan atau Anda juga dapat menjaganya tetap sama sepanjang masa pakai cookie CSRF. Dengan mengatur nilainyaTRUE, dalam larik konfigurasi dengan kunci ‘csrf_regenerate’ akan meregenerasi token seperti yang ditunjukkan di bawah ini.

$config['csrf_regenerate'] = TRUE;

Anda juga dapat memasukkan URL ke daftar putih dari proteksi CSRF dengan mengaturnya dalam larik konfigurasi menggunakan kunci ‘csrf_exclude_uris’seperti gambar dibawah. Anda juga dapat menggunakan ekspresi reguler.

$config['csrf_exclude_uris'] = array('api/person/add');

Penanganan Kata Sandi

Banyak pengembang tidak tahu cara menangani kata sandi dalam aplikasi web, yang mungkin itulah sebabnya banyak peretas merasa begitu mudah untuk membobol sistem. Seseorang harus mengingat poin-poin berikut saat menangani kata sandi -

  • JANGAN menyimpan sandi dalam format teks biasa.

  • Selalu hash kata sandi Anda.

  • JANGAN gunakan Base64 atau pengkodean serupa untuk menyimpan kata sandi.

  • JANGAN gunakan algoritme hashing yang lemah atau rusak seperti MD5 atau SHA1. Hanya gunakan algoritma hashing kata sandi yang kuat seperti BCrypt, yang digunakan dalam fungsi Hash Kata Sandi PHP sendiri.

  • JANGAN pernah menampilkan atau mengirim kata sandi dalam format teks biasa.

  • JANGAN memberi batasan yang tidak perlu pada kata sandi pengguna Anda.