RSS
Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Creation of dynamic property CI_URI::$config is deprecated

Error ini terjadi pada penggunaan CodeIgniter pada environment PHP versi 8 ke atas, sedangkan versi PHP yang digunakan ada di versi 5. Error nya seperti ini:

A PHP Error was encountered

Severity: 8192

Message: Creation of dynamic property CI_URI::$config is deprecated

Filename: core/URI.php

Line Number: 102

 

Solusi :

Tambahkan kode  #[\AllowDynamicProperties] pada beberapa file di bawah ini :

/system/core/URI.php

#[\AllowDynamicProperties] class CI_URI {

/system/core/Router.php

#[\AllowDynamicProperties] class CI_Router {

/system/core/Loader.php

#[\AllowDynamicProperties] class CI_Loader {

/system/core/Controller.php

#[\AllowDynamicProperties] class CI_Controller {

/system/database/DB_driver.php

#[\AllowDynamicProperties] abstract class CI_DB_driver {

Jika masih muncul warning di halaman web nya, disable fitur menampilkan warning di

php.ini

error_reporting = E_ALL & ~E_DEPRECATED

in code:

ini_set('error_reporting', E_ALL & ~E_DEPRECATED);

 Solved!!



Gagal Import file CSV ke Database via PHPMyAdmin

Kebayang kan kalo kita input data satu persatu ke database. Lebih mudah kita kumpulkan jadi satu di file Excel kemudian diekspor menjadi CSV dan tinggal impor ke database via PHPMyAdmin.

Masalah muncul ketika Error nya seperti ini :

Invalid column count in CSV input on line 1 Error

Jangan panik, ikuti langkah-langkah ini.

Solusi

Pada form Import di PHPMyAdmin, setelah browse file CSV. 

  1. Uncheck pilihan default
  2. Pilih CSV using LOAD DATA
  3. Pilih Use LOCAL Keyword 

Done.



CodeIgniter CSRF Error

CSRF Error ini biasanya karena kita ingin mengamankan Cookies tetapi ada implementasi yang tidak sesuai. Bisa karena di form input atau dikonfigurasi.

Bentuk Error nya seperti ini :

“The action you have requested is not allowed.”

SOLUSI :

Cek file config.php dan cari konfigurasi csrf .

Jika $config['csrf_protection'] = true; 

maka harus dilakukan konfigurasi tambahan ke bagian yang lain yaitu :

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

dan pada view, form dikonfigurasi menjadi seperti ini 

<?php echo form_open_multipart('admin/file_upload'); ?>
 

Jika tidak mau repot, dibuat False saja

$config['csrf_protection'] = false;
 
Done 

Error Session pada Code Igniter

PERMASALAHAN

Error ini terjadi ketika saya melakukan migrasi dari PHP5 ke PHP7.  Cek deh apakah sama error nya.

A PHP Error was encountered

Severity: Warning

Message: mkdir(): Invalid path

Filename: drivers/Session_files_driver.php

Line Number: 117

Backtrace:

File: C:\xampp\htdocs\ci-test\application\controllers\login.php
Line: 7
Function: __construct

File: C:\xampp\htdocs\ci-test\index.php
Line: 292
Function: require_once

SOLUSI

Buka file config.php, kemudian ubah di baris 385

$config['sess_save_path'] = NULL;

jadi

$config['sess_save_path'] = sys_get_temp_dir();

Done.


Fatal error: Call-time pass-by-reference has been removed (SOLVED)

Biasanya kalau kita habis cari-cari open source PHP, terus kita coba instal sendiri di server lokal. Kadang nemuin Error seperti ini :

Fatal error: Call-time pass-by-reference has been removed


Kenapa begitu? Lagi-lagi karena perbedaan versi PHP yang digunakan. Source code PHP yang kita donlot adalah di bawah PHP Versi 5.x. Sedangkan PHP di server lokal kita udah versi 5.x ke atas. 

Klo diliat-liat ke belakang, error solved di blog ini rata-rata karena perbedaan versi ya.

SOLUSI

Cari baris kode yang kena error itu. 

Ganti inisiasi variabel 
&$ 
menjadi 
$

Contoh :

$this->html->errorMsgSet(&$msg);

ganti 

$this->html->errorMsgSet($msg);

Udah gitu ajah.

syntax error, unexpected 'List' (T_LIST)

Pernah mengalami Error seperti ini :

Message: syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING)







padahal semua kode hasil copas yang ada dan berjalan dengan baik, tapi kenapa cuma method ini aja yang gagal?

SOLUSI 
Hal ini karena nama method yang kita buat adalah "list", solusinya sangat mudah ganti nama method itu. Misalkan jadi listQuestion, listUser, listDoc, etc. Kata "list" merupakan salah satu kata yang tidak boleh digunakan di PHP (reserved word) sebagai nama method.
Daftar reserved word dapat dilihat disini  https://www.php.net/manual/en/reserved.keywords.php

Masalah Session di PHP

Masalah klasik tentang session di PHP.
Pesan Error yang diterima seperti ini :

Notice: A session had already been started - ignoring session_start()

cara mudahnya untuk menghilangkan error itu adalah jangan tulis begini

session_start(); 
tapi lebih baik begini

<?php
    if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 
?>
Done.


Solusi Error Pada core/Common.php di CodeIgniter

Solusinya 

Jika menemukan error pada CodeIgniter seperti ini 

A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257

Langsung saja buka file itu di [folder ci]/system/core/Common.php, kemudian ganti kode di baris 257 dari 

Menghilangkan Error Warning di PHP

Kadang kala ketika web sudah jadi, eh ternyata ada pesan error atau warning yang muncul di halaman yang telah dibuat. Sebenarnya pesan error tersebut hanya boleh dilihat oleh pengembang web tersebut. karena jika diketahui orang lain bisa jadi dijadikan info penting untuk meng-hack webnya.
Saran yang baik adalah, ketika kita mengembangkan aplikasi web, pisahkan antara web produksi dan web tahap pengembangan. Untuk web produksi tidak perlu menampilkan pesan error. Nah klo web tahap pengembangan bolehlah diberi pesan tersebut.
Secara default, pengaturan pesan error di PHP aktif. Tapi cukup dengan menambahkan code :

 error_reporting(E_ERROR | E_PARSE);

di baris awal, itu sudah cukup untuk menghilangkan pesan error.
Silakan dicoba... :D

Apache Server Tidak Jalan di Windows 7, Ini dia solusinya..

Setelah kejadian apache server "ngambek" seperti artikel saya sebelumnya, masalah masih muncul.Hei,kok ga bisa jalan lagi?Solusi yang sebelumnya juga udah dicoba tetapi tetep "ngambek". Ternyata ada service di Windows 7 yang membutuhkan port 80 sehingga apache server tidak jalan.

Sebelum anda meng-uninstal XAMPP kemudian meng-instal lagi (buang-buang waktu, seperti yang saya alami), coba cara yang satu ini agar Anda tidak repot seperti saya.


  1. Buka Regedit 
  2. Buka HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/HTTP 
  3. Pada property Start ganti value menjadi 0 
  4. Restart Komputer Anda 
  5. Alterntif lain jika langkah nomor 3 tidak berhasil, buat property baru dengan nama NoRun dan isi value dengan nilai 1.


Sekali lagi semoga bermanfaat...

Mengaktifkan OpenSSL di XAMPP

Kesalahan yang terjadi apabila OpenSSL untuk PHP di XAMPP tidak diaktifkan (disable) ditandai dengan error Call to undefined function openssl_pkey_new() .

Solusi :
aktifkan atau ubah status OpenSSL pada XAMPP menjadi enable

Caranya :
  1. Buka file php.ini dan hilangkan tanda titik koma pada ;extension=php_openssl.dll
  2. Jika dalam file php.ini tidak ada baris ekstensi tersebut, silakan tambahkan extension=php_openssl.dll di bagian Dynamic Extensions
  3. Catatan : Pastikan file php_openssl.dll ada di dalam folder xampp\php\ext).
  4. Restart XAMPP

Solusi Error : Fatal error: Maximum execution time of 30 seconds exceeded

Nah klo ini gara-gara settingan akses dibatasi hanya 30 detik. Biar lebih lama karena memang butuh waktu yang cukup lama apalagi untuk konfigurasi web, silakan dimodifikasi php.ini.
Cari baris 442, dengan kode

max_execution_time = 30

ganti menjadi lebih lama, misalkan 3 menit (180 detik)

max_execution_time = 180


Restart kembali XAMPP!

Solusi Error : Undefined offset di PHP

Error ini sering terjadi apabila terdapat suatu array string yang tidak ada tetapi ingin ditampilkan atau diproses. Solusinya lagi-lagi sangat mudah, tambahkan kondisi isset untuk memastikan bahwa suatu array string itu sudah ada isinya atau belum.


Studi Kasus
       
1. if ( ($strLine[0] != "#") && (strlen($strLine) > 0))
2.    {       
3.     .....
4.    }
5.    else
6.    {
7.     .....
8.    
9.        if (($splitConfig[2] == 'encoding'))
10. {
11.   $DEFAULT_CHARSET = trim(substr($strLine, $nPos+1));
12. }
13.    }
       

Error
Error yang terjadi adalah :
Notice: Undefined offset: 0 in ... on line 1 
artinya array string ke-0 pada kode baris 1 tidak ada
Notice: Undefined offset: 2 in ... on line 9
artinya array string ke-2 pada kode baris 9 tidak ada

Solusi
Tambahkan isset pada tiap variabel array string menjadi seperti ini :
       
if ( (isset($strLine[0])) && ($strLine[0] != "#") && (strlen($strLine) > 0))
    {       
     .....
    }
    else
    {
     .....
    
        if ((isset($splitConfig[2])) && ($splitConfig[2] == 'encoding'))
 {
   $DEFAULT_CHARSET = trim(substr($strLine, $nPos+1));
 }
    }