Siang ini baru saja klien mengontak saya, ternyata websitenya down dikarenakan ada perubahan environtment di sisi servernya, terdapat beberapa error yang saya temui diantaranya error strpos() dan error only_full_group_by. Di projek ini saya menggunakan codeigniter 3 dan menggunakan konsep HMVC yang dikembangkan oleh Wiredesignz. saya mendapatkan pesan error strpos() kurang lebih seperti dibawah ini :
Message: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior
Setelah saya googling dan akhirnya saya menemukan jawaban di forum stackoverflow yang kasusnya sama seperti yang saya alami. dan ketika saya ikuti langkah-langkah yang diberikan Alhamdulillah untuk error strpos() sudah hilang dan berhasil saya atasi.
Berikut langkah-langkahnya untuk memeperbaiki error strpos() jika kalian punya masalah yang sama dengan punya saya :
1. Buka file Application/third_party/MX/Router.php
2. Kemudian di baris 239 terdapat blok kode seperti di bawah ini :
public function set_class($class)
{
$suffix = $this->config->item('controller_suffix');
if( strpos($class, $suffix) === FALSE ) //sebelum
{
$class .= $suffix;
}
parent::set_class($class);
}
Didalam fungsi tersebut terdapat logika untuk mengecek ada tidaknya $suffix di dalam variable $class, di versi php sebelumnya strpos ini masih tidak menyebabkan error, tetapi mulai dari php versi 7.3 sepertinya php lebih strict dan mengeluarkan pesan error untuk penggunaan strpos() ini.
3. Untuk mengatasinya ubah baris kode diatas menjadi seperti dibawah ini :
public function set_class($class)
{
$suffix = $this->config->item('controller_suffix');
if( $suffix && strpos($class, $suffix) === FALSE) //sesudah
{
$class .= $suffix;
}
parent::set_class($class);
}
Apabila Anda sudah mengikuti langkah-langkah di atas dengan benar seharusnya error strpos sudah hilang, apabila masih terdapat error silahkan kontak saya melalui kolom chat atau melalui email.
Terimakasih sudah meluangkan waktu Anda untuk mengunjungi website saya, semoga bermanfaat.