RSS

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!!



Instalasi MobSF di MacOS

MobSF adalah singkatan dari Mobile Security Framework yang digunakan untuk melakukan pentest pada aplikasi Android, IOS dan Windows. MobSF ini dapat diinstal di Windows, Linux dan MacOS.

Untuk MacOS, cara instalasinya seperti ini

Instal Python

    brew install python3

Download MobSF

Cara 1 dapat dengan cloning dari Git 

    git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git

Cara 2 dengan downlod langsung dari github nya

    https://github.com/MobSF/Mobile-Security-Framework-MobSF

Instal MobSF

    ./setup.sh

Run MobSF

    ./run.sh

Akses MobSF di browser pada url localhost:8000

Done

Install BREW di MacOS

 Jika Brew belum terinstal maka akan muncul error seperti ini :

-bash: brew: command not found

SOLUSI 
Instalasi
Buka Terminal dan ketik command berikut :

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Uninstal
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Catatan :
Salah satu syarat agar Brew bisa di instal adalah instal dulu Xcode

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.



Critical Issue: Active PHP session di WordPress

Bagi orang yang mengelola website berbasis Wordpress, kemudian mengalami hal security yang bersifat kritikal pastinya bikin deg-degan. Ini harus segera diperbaiki dan diwaspadai karena akan membuka celah keamanan websitenya. Apalagi masalah Session.

Tampilan Error nya seperti ini :

"A PHP session was created by a session_start() function call. This interferes with REST API and loopback requests. The session should be closed by session_write_close() before making any HTTP requests."

 Solusi

Ga usah ngoprek kode Wordpressnya, itu berat. Biar rindu aja yang berat bagi Dilan #eh.

Ternyata, error ini berasal dari Plugin yang terinstal di Wordpress. Makanya kita harus hati-hati instal plugin di Wordpress. Aman atau tidak. Langkah-langkahnya :

  1. Cari plugin yang menimbulkan error
  2. Deactive plugin atau delete
  3. Beberapa plugin yang memiliki error ini antara lain Unyson, WPJobBoard, Jetpack, Envato Toolkit, Social Login WordPress Plugin, Progress Map List & Filter, Awesome Flickr Gallery, WP-Spamshield, Booked 2.2.6 by Boxy Studio

Catatan : Error ini biasanya karena versi lama, cek lagi jika versi terbaru sudah update dan aman untuk menggunakan lagi. Selama masih ERROR, deaktifkan atau cari plugin yang lain

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

Github Connection Timed Out

Kalau kita menemui Error seperti ini saat mau Push source code ke github :
"ssh: connect to host github.com port 22: Connection timed out"

Hal ini berarti, koneksi SSH tidak dapat dilakukan pada jaringan internet yang sedang kita gunakan, karena ada firewakk jaringan yang memblok koneksi port 22 untuk SSH. Artinya kita harus mengganti jaringan internet yang memperbolehkan koneksi port 22 ini tetap berjalan.

SOLUSI 

1. Ganti jaringan internet. Biasanya menggunakan akses point dari HP kita masing-masing bisa.
2. Ganti metode SSH menjadi HTTPS untuk push source code.

CONTOH
sumber : https://gist.github.com/Tamal/1cc77f88ef3e900aeae65f0e5e504794

$ git clone git@github.com:xxxxx/xxxx.git my-awesome-proj
Cloning into 'my-awesome-proj'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.


$ # This should also timeout
$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out


$ # but this might work
$ ssh -T -p 443 git@ssh.github.com
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
$ # Override SSH settings
$ vim ~/.ssh/config
```
# Add section below to it
Host github.com
  Hostname ssh.github.com
  Port 443
```
$ ssh -T git@github.com
Hi xxxxx! You've successfully authenticated, but GitHub does not
provide shell access.


$ git clone git@github.com:xxxxxx/xxxxx.git my-awesome-proj
Cloning into 'my-awesome-proj'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 15 (delta 0), reused 15 (delta 0), pack-reused 0

Receiving objects: 100% (15/15), 22.90 KiB | 4.58 MiB/s, done.


QED.

IOS Simulator tidak berjalan di Xamarin

Permasalahan yang terjadi ketika menggunakan Xamarin di Mac, dan versi Mac lebih rendah dibandingkan versi XCode. Sehingga muncul pesan

"Error MT0091: This version of Xamarin.iOS requires the iOS 11.2 SDK (shipped with Xcode 9.2). Either upgrade Xcode to get the required header files or set the managed linker behaviour to Link Framework SDKs Only (to try to avoid the new APIs)", seperti pada gambar ini










SOLUSI

  1. Upgrade XCode dengan versi terbaru.
  2. Klik kanan pada Project --> Option --> Build --> iOS Build --> Link Behaviour, isi dengan Link Framework SDKs Only.


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 

Solusi Port VMWare dan XAMPP Bentrok

Permasalahan yang sering terjadi apabila kita menginstal XAMPP dan VMWare dalam satu PC adalah beberapa port yang dijalankan melalui XAMPP tidak berjalan karena sedang digunakan oleh VMWare. Biasanya port yang bentrok adalah Port 80 dan port 443.

Misalkan port yang bentrok adalah 443. Salah satu solusinya (yang berhasil dicoba cara ini sih) adalah mengganti port 443 yang ada di setting XAMPP. Berikut langkah-langkah yang harus dilakukan :

Cara 1 (Mengganti Port Pada XAMPP) :
  • Buka file httpd-ssl.conf di folder xampp/apache/conf/extra
  • Cari dan ganti angka 443 di dalam file itu dan ganti dengan port lain yang masih kosong misalkan 4430
  • Simpan file httpd-ssl.conf
  • Jalankan kembali Apache di XAMPP

Cara 2 (Mengganti Port Pada VMWare):
  • Buka aplikasi VMWare dan pilih menu Edit->Preferences
  • Pada pilihan menu sebelah kiri, klik Shared VMs kemudian klik tombol Change Settings 
  • Klik tombol Disable Sharing di bagian atas (lihat gambar di bawah), sehingga tombol menjadi Enable Sharing
  • Ganti port HTTPS dari 443 menjadi 4430 atau yang lain, dan klik tombol Enable Sharing kembali
  • klik tombol OK
  • Jalankan kembali Apache di XAMPP
Klik Tombol Disable Sharing
Ganti Port HTTPS

Memahami Data Flow Diagram dan Flowchart

Silakan dipelajari untuk bahan ajar perkuliahan komputer

Tentang DFD dan Flowchart

Mengatasi "Download Unsuccesfull" Update System Terbaru di Android

Asyiik...Update sistem terbaru udah ada. Pada saat nulis ini, versi terbaru Android adalah 4.4.2 KitKat. Cek koneksi pake Wifi, OK. Artinya lancar kemungkinan kecil gagal download. Dan mulai...
...
...
...
...
Lho, kok Download Unsuccessfull! Arrrgh....

Eits, sabar dulu coba cara ini dulu, lalu ulangi download lagi.

Buka Settings > App > All > Updater
- pilih Force Stop
- Pilih Clear Data
- Pilih Clear Cache

Ulangi download ulang,
Buka Settings > About > Software updates
- Download

Dan yang paling penting, jika kita mengalami kendala yang sama "Download Unsuccessfull" baik ketika download aplikasi di Android Market atau file dari browser. Bersihkan dulu kutu-kutu yang mengganggu di Settings > App.

Selamat Mencoba.

Simple Library

Error : You must put some 'source' URIs in your sources.list

Pernahkah mengalami hal ini?
Ketika kita ingin menginstal sesuatu dengan command : sudo apt-get instal [nama_program], misalnya. kadangkala gagal dilakukan dan muncul pesan error seperti judul di atas.
Untuk menangani masalah ini lakukan langkah-langkah berikut :
1. buka file sources.list di /etc/apt
    sudo gedit /etc/apt/sources.list atau dengan text editor lain.
2. tambahkan deb-src dari setiap line yang sama, misalkan
    ....
    deb http://packages.mediabuntu.org/ precise free non-free
    ....
   
    tambahkan deb-src menjadi :
    ....
    deb http://packages.mediabuntu.org/ precise free non-free
    deb-src http://packages.mediabuntu.org/ precise free non-free
    ....
3. update dengan sudo apt-get update

Solusi Tidak Bisa Menjalankan Apache (1)

Yaks, buka lagi blog yang udah lama ga keisi akibat kesibukan penulis. Pada kali ini, kita bahas lagi solusi kenapa apache tidak jalan. Kok ada angka 1 (1), hehehe karena saya lupa yang berapa kali saya tulis solusi agar apache jalan (sebenarnya malas buka artikel lama -_-). Jadi mulai dari angka 1 lagi deh.

Error yang muncul ketika gagal menjalankan Apache seperti ini ;
(OS 10048)Only one usage of each socket address (protocol/network address/port)
is normally permitted.  : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
lebih jelasnya lihat gambar di bawah ini deh.








Ini dia solusi nya biar jalan lagi. Ada beberapa alternatif, silakan dicoba mana yang jadi solusi terbaik buat kita.
  1. Jika komputer kita terinstal IIS selain Apache, uninstal IIS tersebut. Sehingga yang jalan hanya dari Apache aja. Atau jika ada aplikasi lain yang menggunakan port 80 misalkan Skypea, lakukan hal yang sama.
  2. Kalau kita masih bandel tetep mau jalanin IIS juga plus ada Skypea, ya sudah Apache mengalah. Pindahkan port 80 menjadi port lain misalkan port 3128. (mengganti portnya di httpd.conf)
Semoga berhasil.

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