Tampilkan postingan dengan label Codeigniter. Tampilkan semua postingan
Tampilkan postingan dengan label Codeigniter. Tampilkan semua postingan

Membuat Log Error pada codeigniter

Januari 11, 2018

Sebelumnya saya sudah membuat tutorial bagaimana cara Menghilangkan pesan Error php pada Codeignite,sekarang saya akan melanjutkan bagaimana cara menampilkan error log pada codeigniter, disaat kita menyembunyikan atau hidden notif error php pada codeigniter dengan Handling Multiple Environments menggunakan setting production bukan berarti aplikasi atau project web kita tidak ada masalah tanpa pesan error dari tampilan memang tidak keliatan ada error namun untuk kelanjutannya akan berdampak buruk bagi project web kita  kemungkinan fungsi-fungsi tersebut tidak bisa berjakan baik saat ekseskusi. nah... saat web kita berjalan dengan setting environment production kita bisa melihat error apa saja  yang terjadi pada web kita, pada codeigntier terdapat 4 jenis pesan log yang bisa kita tampilkan yakni :


  • 0 = Log error dinonaktifkan.
  • 1 = Pesan error (termasuk error php)
  • 2 = Pesan Debug
  • 3 = Pesan Informasi
  • 4 = Menampilkan semua pesan



Untuk membuat log error codeigniter kita harus mengaktifkan nya terlebih dahulu. secara default log error pada codeigniter diset dalam keadaan off yakni dengan option '0'. lalu kita bisa mengedit pesan error sesuai dengan kebutuhan kita dengan memilih salah-satu pesan error atau multiple. berikut contohnya.

1. Buka folder project web anda.



2. Lalu buka file config.php pada folder root/application/config/config.php



3. Lalu kita cari config log_threshold berada pada line 226.



4. Disana dapat kita lihat bahwa pengaturan log secara default 0 berarti pesan error atau log error dalam keadaan off.

5. Selanjutnya kita set sesuai kebutuhan kita.
$config['log_threshold'] = 1; //berarti error php akan tampil pada log error
$config['log_threshold'] = 2; //pesan debug akan tampil di log error
$config['log_threshold'] = 3; //pesan informasi akan tampil pada log error
$config['log_threshold'] = 4; //semua pesan akan muncul (error, informasi maupun debug)

6. Nah lalu bagaimana jika saya hanya ingin menampilkan pesan error dan pesan informasi saja, nah  itu kita bisa mensetting nya dengan menggunakan array().
$config['log_threshold'] = array(1,3); //berarti pesan yang akan muncul erro dan informasi saja

7. Nah lalu anda dapat melihat pesan error tersebut pada folder logs. root/application/logs





7. Setiap logs akan dibuat dalam 1 file php perhari, jadi jika beda hari akan buat file baru sesuai tanggal error.



8. Setelah kita buka maka tampilannya akan seperti ini.



Nah bagaimana cukup mudah kan cara membuat log error pada codeigniter, tapi perlu di ingat jika web kita sudah dihosting ataupun dilocalhost jika log error berjalan jangan kaget jika tiba-tiba kapasitas hosting anda menjadi penuh jadi perlu dicek secara berkala logs error jika memang tidak sangat dibutuhkan bisa dinonaktifkan saja.


Semoga bermanfaat

Menghilangkan pesan Error php pada Codeigniter

Januari 01, 2018


Saat ini saya akan membuat artikel tentang cara menyembunyikan error pada codeigniter, dimana ini sangat penting bagi anda yang sedang membangun website saat dihosting maupun dilokal mungkin saat web sudah siap di publish namun anda belum mengecek pada setiap page dan script controlles atau views ketika anda atau user sedang mengakses web dan terdapat debug atau tampilan pesan error pada script php yang dimana itu adalah salah satu celah untuk seorang hacker untuk meretas web kita dari error tersebut. kita biasa menyembunyikan dengan menggunakan script default php yakni error_reporting(0); atau E_ALL & ~E_NOTICE namun pada framework codeigniter script tersebut sudah tersedia dan dibuat lebih mudah untuk digunakan yakni dengan Handling Multiple Environments dimana anda bisa mengatur kebutuhan project anda. terdapat 3 handing yang bisa digunakan yakni :  
  • development
  • testing
  • production

Development, dimana pada environments development ini biasanya digunakan saat anda sedang membuat sebuah project masih dalam tahap pengembangan, sehingga setiap error atau warning akan muncul untuk memberitahu kita bahwa ada yang salah dari script php yang kita buat, maka kita set environments menjadi development.

Testing, dari document user guide memang tidak dibahas tentang environments testing namun mungkin maksud nya environments testing ini kita bisa custom sendiri untuk handling environments. CMIW

Production, saat web kita sudah masuk kedalam tahap running atau publish maka kita bisa aktifkan environments production untuk menyembunyikan pesa error pada web kita saat sedang berjalan. 

cara untuk mengubah environments pada codeigniter sebagai berikut.

1. buka folder project kita.











2. lalu buka file index.php dengan software editor kesayangan anda.










3. ubah environments development menjadi production untuk handling error pada web kita.











Selesai dan coba testing pada web anda buatlah sebuah kesalahan script php dan coba ubah environments antara production dan development. sekian dari saya semoga bermanfaat dan jangan lupa follow terus dan KLIK iklan nya ya..


Menghitung selisih waktu detik, menit dan hari pada codeigniter

Juni 09, 2017

Jika anda sering menggunakan facebook atau medsos lainnya pasti anda sering melihat postingan temen-temen pada halaman dashboard anda, dan yang pasti anda akan melihat kapan postingan tersebut dipublish apakah 1 detik yang lalu, 1 menit yang lalu, atau 1 hari yang lalu. Nah pada tutorial ini saya akan membuat bagaimana cara menghitung  waktu menjadi jumlah detik, menit maupun hari dengan menggunakan helper time ago yang dibuat oleh Prajwol KC , dimana prosesnya waktu sekarang dikurangi waktu posting dan dibagi jumlah waktu kurang lebih seperti itu, untuk lebih lengkapnya lihat tutorialnya dibwah ini.

1. Download Time ago helper di Github.

2. Simpan helper Time ago pada folder helpers.
 
3. Aktifkan helper pada autoload biar otomatis bisa dipanggil setiap controllers.


4. Pastikan format tanggal pada database anda adalah Timestamp.

 5.Jika sebelumnya tanggal database anda format nya date time atau varchar anda  bisa convert dengan strtotime.
//jika data masih dalam bentuk datetime ex:2017-06-10 01:20:15
time_get = strtotime($dateinput);
echo time_ago($time_get);

//jika data sudah bentuk timestamp ex:1440012545646
echo time_ago($dateinput);
6.  dan hasilnya akan menjadi seperti berikut.


Biasanya time ago digunakan pada tampilan komentar, pesan atau chat tapi anda juga bisa menggunakannya sesuai kerpeluan anda, untuk kata sec, day, month bisa anda ubah pada helpers sesuai kebutuhan anda.

Semoga bermanfaat.

Membuat paging tabel Codeigniter menggunakan plugin Datatables

Mei 13, 2017

Pada pembuatan sebuah project pasti anda sering menggunakan sebuah tabel pada views untuk menampilkan data dari database, jika data anda ada 20 atau 50 mungkin tidak akan bermasalah jika data tersebut muncul pada sebuah page views namun bagaimana jika data anda ada lebih dari 200 data tabel anda akan tampil sangat panjang ke bawah dan user harus menscroll ke bawah lumayan melelahkan, untuk memudahkan maka kita harus membuat sebuah paging tabel agar data bisa dibagi menjadi beberapa bagian. di Di tutorial ini akan menjelaskan cara membuat tabel dengan plugins datatables, kenapa mesti harus menggunakan  plugins datatables? Dengan menggunakan plugin datatables anda tidak perlu membuat script paging pada controllers hanya dengan memanggil data array dari database. Apa ke untungan menggunakan plugin datatables? Selain untuk membuat sebuah pagging plugins data tables juga bisa digunakan untuk membuat search data, sort data, select download data dll. Untuk lebih jelas nya berikut tutorial nya.

1. Download plugins datatables disini atau disini

2. Buat sebuah folder assets pada project lalu Extract hasil download.
3. Sekarang buat sebuah Controllers untuk menampilkan data.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class data_alat extends CI_Controller {
public function index() {
data = array ('alat' => $this->MyModels->show_alat());
$this->load->view('v_alat', $data);
}

4.Buat sebuah sebuah Models untuk query database dan jangan lupa panggil model di autoload.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MyModels extends CI_Model {
function get_all_alat(){
$query = $this->db->select('*')
->from('tbalat')
->get();

if ($query->num_rows() > 0) {
foreach ($query->result() as $data) {
$hasil[] = $data;
}
return $hasil;
}

}
5. Selanjutnya buatlah sebuah Views untuk menampilkan data disini saya menggunakan css Bootstrap.
<link href="<?php echo base_url(); ?>assets/css/bootstrap.min.css" rel="stylesheet"/>
<link href="<?php echo base_url(); ?>assets/datatables/media/css/dataTables.jqueryui.min.css" rel="stylesheet"/>
<script src="<?php echo base_url(); ?>assets/js/bootstrap.min.js"></script>
<script src="<?php echo base_url(); ?>assets/js/jquery-2.2.3.min.js"></script>
<script src="<?php echo base_url(); ?>assets/datatables/media/js/jquery.dataTables.min.js"></script>


<table id="example" class="table table-bordered table-striped">
<thead>
<tr>
<th class="text-center">No</th>
<th class="text-center">Kode Alat</th>
<th class="text-center">Nama Alat</th>
<th class="text-center">No Seri</th>
</tr>
</thead>
<tbody>
<?php
if ($alat == NULL) {
?>
<!-- kosongkan jika tidak ada data -->
<?php
} else {
$no = 1;
foreach ($alat as $row) {
?>
<tr>
<td><?php echo $no; ?></td>
<td><<?php echo $row->kode_alat; ?></td>
<td><?php echo $row->namaalat; ?></td>
<td><?php echo $row->merk; ?></td>
<td><?php echo $row->noseri; ?></td>
<?php
$no++;
}
}
?>
</tr>
</tbody>
</table>
6. Tambahkan Script berikut untuk menampilkan datatables.
<script>
$(function () {
$('#datatables').dataTable();
});
</script>
7. Jika sudah jalankan web nya.
 8. Selain itu anda juga bisa mengatur paging atau menonaktifkan fitur yang ada dengan menambahkan script berikut dengan menggubah true menjadi false untuk menonaktifkan.
<script>
$(function () {
$('#datatables').dataTable({
"scrollX": true, // Menampilkan scroll
"paging": true, // Menampilkan paging
"searching": true, // Menampilkan Searching
"ordering": true, // Menampilkan Order tabel
"info": true, // menampilkan info
"language": {
"zeroRecords": "Tidak ada data" //Menampilkan text jika data kosong
}
});
});
</script>

Selain script diatas masih banyak fitur yang bisa digunakan oleh datatables dengan mengunjungi website resminya datatables.net. anda juga bisa mengeksplor lebih jauh penggunaan datatables pada project anda.


Demo

Semoga bermanfaat


Membuat multiple database pada Codeigniter

April 28, 2017


Dalam membangun sebuah sistem informasi berbasis web pasti kita membutuhkan sebuah database, dan dimana database yang kita buat sudah banyak data nya jadi terpaksa kita buat database baru, atau saat kita membuat sebuah project yang besar client meminta ada 4 database yang berbeda untuk setiap page nya. jika itu terjadi jangan khawatir itu semua bisa di atasi, kita bisa meload multiple database dalam satu project sehingga dalam 1 model kita bisa memanggil lebih dari satu database. untuk lebih jelasnya berikut cara nya.

1. Pastikan library database sudah dipanggil biar otomatis gunakan autoload libary.
$autoload['libraries'] = array('database'); 
2. Buka file config database pada project anda, secara default maka akan tampak seperti ini.
$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database1',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
3. Untuk menmbahkan database baru tinggal copy database default, pada script ini $db['default'] ubah kata default menjadi kata inittial database anda.
$active_group = 'my_db1';
$query_builder = TRUE;

$db['my_db1'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'my_database1',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);


$active_group = 'my_db2';
$query_builder = TRUE;

$db['my_db2'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'my_database2',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
4. Jika sudah saatnya kita terapkan pada models, buka models kalian, dan tambahkan script berikut.
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class M_models extends CI_Model {

public function __construct(){
parent::__construct();
$this->db1 = $this->load->database('my_db1', true); //untuk memanggil database 1
$this->db2 = $this->load->database('my_db2', true); //untuk memanggil database 2
}

function get_detail_db1(){
$query = $this->db1->select('*')
->from('tbProgramer')
->order_by('skill','ASC')
->get();
return $query;
}

function get_detail_db2(){
$query = $this->db2->select('*')
->from('tbGaji_programer')
->order_by('S1','ASC')
->get();
return $query;
}


Semoga bermanfaat

Mengatasi error Only variable references should be returned by reference pada Codeigniter

April 17, 2017

Mungkin kita sering mendownload project Codeigniter dari website atau forum-forum Codeigniter lainnya sebagai referensi kita untuk belajar atau kadang juga untuk mengembangankan project tersebut. namun terkadang ada saja masalah atau error yang kita alami saat menjalankan project tersebut salah satu nya yakni Only variable references should be returned by reference, mungkin peringatan error tersebut kita hilangkan dengan menyembunyikan pesan error tersebut dengan error_reporting(E_ALL & ~E_NOTICE);,  tapi yang ditakutkan project kita kedepannya akan menimbulkan masalah baru saat project kita sudah sampai ke user, terkadang masalah ini terjadi karena versi PHP berbeda, jika kita gunakan pada versi PHP 5.3 akan normal namun jika kita menggunakan versi PHP lebih tinggi maka akan muncul error tersebut (pengalaman pribadi). jadi daripada kita downgrade atau upgrade PHP kita mungkin trick ini bisa membantu mengatasi maslah error tersebut, berikut caranya.

1. Buka file Common.php path lokasi project/system/core/common.php.


2. Cari baris 257 pada file tersebut, setiap versi Codeigniter mungkin berbeda barisnya.



3. Hapus script pada baris tersebut dan ganti dengan script dibawah ini.


4. Jika sudah save lalu refresh page kita maka error teratasi.



Semoga bermanfaat