Saya punya pengalaman dengan session di CI. Semua pasti tahu perintah semacam ini:
$this->session->set_userdata('id', '');
Satu hal yg harus dihindari adalah meletakkan perintah semacam diatas di dalam file model (kalau di controller tidak masalah). Selain akses menjadi lambat juga sessionnya tidak berhasil didefinisikan. Saya baru tahu bbrp bulan yang lalu saat mengerjakan sebuah project.
Kenapa ya? Mungkin ada rekan2 lain yg mengalami hal sama? Sharing dong...
salam CI
Di dalam CI, kita bisa membuat beberapa aplikasi sekaligus walaupun masing-masing aplikasi tersebut tidak saling berinteraksi.
Berdasarkan user guide di CI, yaitu Managing your Applications, kita akan coba membuat 2 aplikasi, yaitu Aplikasi A dan Aplikasi B.
Langkah-langkah yg perlu dilakukan adalah :
1. Edit file index.php, cari kolom $application_folder=’variabel’; dan rubah nilai variablenya sesuai dengan nama folder aplikasi yg akan kita buat, misalnya $application_folder = ‘application/aplikasiA’;
2. Buat folder baru untuk masing-2 aplikasi,
system/application/aplikasiA/
system/application/aplikasiA/config/
system/application/aplikasiA/controllers/
system/application/aplikasiA/errors/
system/application/aplikasiA/libraries/
system/application/aplikasiA/models/
system/application/aplikasiA/views/
system/application/aplikasiB/
system/application/aplikasiB/config/
system/application/aplikasiB/controllers/
system/application/aplikasiB/errors/
system/application/aplikasiB/libraries/
system/application/aplikasiB/models/
system/application/aplikasiB/ views/
3. Dengan contoh di atas, kita buat 2 file indek untuk masing-masing aplikasi, yaitu file aplikasiA.php dan file aplikasiB.php. File-file tersebut tinggal copy-paste saja dari file index.php sebelumnya dan rubah $application_foldernya sesuai dengan folder yg telah kita buat.
4. Buat 1 file baru dan simpan dengan nama index.php sebagai halaman utama untuk pemanggilan pilihan aplikasi.
Jika semua sesuai dengan contoh di atas, dengan asumsi URL yg kita buat adalah http://localhost/codeigniter, maka saat kita buka URL tersebut…..maka akan tampil pilihan aplikasi yg akan dijalankan. Selamat mencoba
| Attachment | Size |
|---|---|
| index.txt | 303 bytes |
Iseng-iseng pengen coba merubah http://localhost/index.php?c=welcome&m=home menjadi http://localhost/index.php?m=home
Jadi saya ingin menghapus c=welcome dari URL biar lebih singkat. Setelah mencari-cari ketemu deh. Caranya:
di file system\application\config\routes.php :
<?php
$route['default_controller'] = "welcome";
?>di file system\Libraries\Router.php cari di function _validate_request($segments):
<?php
// Can't find the requested controller...
show_404($segments[0]);
?>ditambahin diatasnya sehingga menjadi:
<?php
$segments[0] = $this->default_controller;
return $segments;
// Can't find the requested controller...
show_404($segments[0]);
?>Udah gitu aja :)
Saya memakai trik di bawah ini untuk mendefinisikan $config['base_url'] di file config.php sehingga setiap kali tidak mengetik URL meskipun ganti2 folder:
<?php
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = "index.php";
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
*/
//$config['base_url'] = "http://your-site.com/";
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 's' : '') . '://';
$fo = str_replace("index.php","", $_SERVER['SCRIPT_NAME']);
$config['base_url'] = "$http" . $_SERVER['SERVER_NAME'] . "" . $fo;
?>