Codeigniter Mengenal Kesalahan dan Cara Mengatasi Kesalahan
- Kesalahan Fatal error: Call to undefined function redirect()
if ( ! function_exists('redirect'))
{
function redirect($uri = '', $method = 'location', $http_response_code = 302)
{
if ( ! preg_match('#^https?://#i', $uri))
{
$uri = site_url($uri);
}
switch($method)
{
case 'refresh' : header("Refresh:0;url=".$uri);
break;
default : header("Location: ".$uri, TRUE, $http_response_code);
break;
}
exit;
}
}
- Buka file autoload yang ada didalam folder application\config\
- Tambahkan fungsi 'url' kedalam array helper, lihat seperti kode dibawah ini
$autoload['helper'] = array();
Menjadi
$autoload['helper'] = array('url');
Kesalahan Berikutnya:
- Kesalahan : Message: Undefined property: C_Pagination::$db
$this->pagination->initialize($config);
function initialize($params = array())
{
if (count($params) > 0)
{
foreach ($params as $key => $val)
{
if (isset($this->$key))
{
$this->$key = $val;
}
}
}
}
$autoload['libraries'] = array();
Menjadi
$autoload['libraries'] = array('database','pagination');
Kesalahan Berikutnya:
- Kesalahan A Database Error Occured No database selected
- Buka file database.php yang ada didalam folde application\config\
- Lalu isi username dan password serta nama database sesuai dengan username password dan nama database yang ada dilocalhost anda lihat contoh
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
Menjadi
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'mysql';
$db['default']['database'] = 'db_pagination';
Maka dengan menambahkan username, password localhost serta menambahkan nama database yang ingin kita gunakan, maka program codeigniter dapat terhubung atau dapat connect sehingga perintah yang ada di dalam folder application\model\ yang meminta tabel database bisa dijalankan.
Kesalahan Berikutnya:
- Kesalahan Fatal Error: call to a member function set_userdata() on a non object dengan Message: Undefined property: C_ontroller::$session
$this->session->set_userdata('row', $this->uri->segment(3));
Yang mana perintah kode ini untuk menjalankan "function set_userdata" yang ada didalam file session.php yang mana file ini berada didalam folder system\libraries\ lihat kodenyanya dibawah ini:
function set_userdata($newdata = array(), $newval = '')
{
if (is_string($newdata))
{
$newdata = array($newdata => $newval);
}
if (count($newdata) > 0)
{
foreach ($newdata as $key => $val)
{
$this->userdata[$key] = $val;
}
}
$this->sess_write();
}
Maka kalau kita amati "function set_userdata" ini diperintahkan untuk dijalankan didalam controller yang kita isi dengan kode this-session=set_userdata, sehingga meminta me-load file session.php yang ada didalam folder system\libraries\ oleh karena itu untuk mengatasi masalah ini adalah dengan merintahkan load secara otomatis files session.php dengan menambahkan kode 'session' yang ada didalam file autoload.php yang ada didalam folder application\config\ lihat kodenya dibawah ini:
$autoload['libraries'] = array('database','pagination');
Menjadi
$autoload['libraries'] = array('database','pagination','session');
Maka dengan menambahkan kode 'session' didalam array ini maka otomatis menjalankan file session.php, sehingga semua function yang ada didalam file session bisa dijalankan ketika kita inginkan.
Kesalahan Berikutnya:
- Kesalahan : An Error Was Encountered In order to use the Session class you are required to set an encryption key in your confiq file
function set_userdata($newdata = array(), $newval = '')
{
if (is_string($newdata))
{
$newdata = array($newdata => $newval);
}
if (count($newdata) > 0)
{
foreach ($newdata as $key => $val)
{
$this->userdata[$key] = $val;
}
}
$this->sess_write();
}
Coba lihat kode diatas yang mana "function set_userdata" dalam menjalankan fungsinya meminta key dalam menjalankan perintahnya. lalu bagaimana cara mengatasi kesalahan seperti ini?.
Untuk kesalahan seperti ini dapat dilakukan dengan menambahkan key di dalam file config.php yang ada didalam folder application\config\ lihat seperti dibawah ini.
$config['encryption_key'] = '';
Menjadi
$config['encryption_key'] = '1234567890';
Untuk mengisi key ini Anda dapat search di goole untuk mengetahui berapa banyak karakter untuk mengisi encryption_key yang ada didalam file config.php ini.