google.com, pub-9228471708496696, DIRECT, f08c47fec0942fa0

Codeigniter Mengenal Kesalahan dan Cara Mengatasi Kesalahan

 

Codeigniter Mengenal Kesalahan dan Cara Mengatasi Kesalahan










Didalam menjalankan program berbasis codeigniter tentunya ada kesalahan dan error yang sering kita jumpai, karena jika menjumpai kesalahan atau error warning maka program akan tidak jalan sesuai yang kita inginkan, berikut beberapa kesalahan yang tampil ketika membuat program menggunakan codeigniter dan bagaimana cara mengatasinya:
  • Kesalahan Fatal error: Call to undefined function redirect()
Apa itu kesalahan function redirect()?. kalau terjadi kesalahan seperti ini biasanya didalam file controller yang kita punya memiliki kode redirect() untuk melakukan perintah yang kita inginkan, coba dilihat didalam file controller yang kita punya, jika ada bukan kesalahan pada kode yang ada di controller kita, karena kita inginkan perintah redirect ini untuk dijalankan, namun kesalahan ini terjadi karena tidak bisa memanggil file url_helper.php yang ada didalam file system\helpers\ (silahkan dilihat difolder system\helpers\), yang mana isi dari url_helper.php memiliki kode atau function redirect yang berguna untuk menjalankan perintah redirect lihat kodenya dibawah ini

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;
 }
}

Lalu bagaimana supaya function redirect yang ada didalam file url_helper.php bisa dijalankan?. Untuk bisa menjalankan fungsi atau function redirect ini melalui file autoload.php yang ada didalam folder application\config\ (silahkan dilihat) karena file autoload.php ini memerintahkan secara otomatis function-function yang ada didalam file url_helper.php. jadi untuk kasus seperti ini bagaimana cara mengatasi kesalahan Fatal error: Call to undefined function redirect()? ini, berikut caranya:
  1. Buka file autoload yang ada didalam folder application\config\
  2. Tambahkan fungsi 'url' kedalam array helper,  lihat seperti kode dibawah ini
$autoload['helper'] = array();

Menjadi

$autoload['helper'] = array('url');

Maka dengan menambahkan kode url seperti di atas maka akan menjalankan perintah function redirect yang ada di url_helper.php

Kesalahan Berikutnya:
  • Kesalahan : Message: Undefined property: C_Pagination::$db
Jenis kesalahan dengan mendapatkan pesan seperti ini adalah jika didalam controller kita adanya perintah kode pagination seperti contoh dibawah ini:

$this->pagination->initialize($config);

Kode ini bahwa controller.php memerintahkan untuk menjalankan atau meload database.php dengan perintah "function initialize" yang ada didalam file Pagination.php yang ada didalam folder system\libraries\ (lihat kodenya).

function initialize($params = array())
 {
  if (count($params) > 0)
  {
   foreach ($params as $key => $val)
   {
    if (isset($this->$key))
    {
     $this->$key = $val;
    }
   }
  }
 }

Lalu bagaimana cara mengatasi kesalahan dengan pesan Message: Undefined property:C_Pagination::$db ini, yaitu dengan cara membuka file autoload.php yang ada didalam folder application\config\. maka tambahkan kode 'database' dan 'pagination' kedalam array. lihat seperti dibawah ini:
$autoload['libraries'] = array();

Menjadi

$autoload['libraries'] = array('database','pagination');

Maka dengan menambahkan autoload database.php yang ada didalam folder application\config\ dan pagination.php yang ada didalam foler system\libraries\ maka kedua file ini secara otomatis dibuka untuk melakukan perintah yang kita inginkan untuk menjalankan function-function yang ada didalam file pagination.php dan database.php


Kesalahan Berikutnya:

  • Kesalahan A Database Error Occured No database selected
No database selected

Kesalahan ini adalah kesalahan yang terjadi tidak connect atau terhubungnya database yang dengan program codeigniter sehingga tidak bisa memanggil perintah yang dilakukan oleh program codeigniter. lalu bagaimana cara mengatasi jika terjadi kesalahan seperti ini, berikut caranya:
  1. Buka file database.php yang ada didalam folde application\config\
  2. 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
Kesalahan ini adalah ketika controller anda memiliki kode seperti ini

$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
Kesalahan ini karena salah satu atau beberapa function yang kita gunakan didalam file session.php meminta kunci atau key seperti lihat kode 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();
 }

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.

No comments:

Post a Comment

Terima kasih telah mampir ke Blog yang amburadul ini

Codeigniter Cara Membuat Halaman Admin dan Utama (Frontend)

  Codeigniter Cara Membuat Halaman Admin dan Utama (Frontend) Cara membuat halaman admin dan halaman frontend website dengan menggunakan cod...