Mengatasi Error strpos() pada HMVC Codeigniter 3 di PHP 7.3
Siang ini baru saja klien mengontak saya, ternyata websitenya down dikarenakan ada perubahan environtment di sisi servernya, terdapat beberapa error yang saya temui diantaranya.

Ahmad Sanusi
2 min read · 3,369 views

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.

Written by
Ahmad Sanusi
Senior Full-Stack Developer with 15+ years of experience in building scalable digital solutions.
More from the blog
Tutorial Lengkap Firebase Cloud Messaging (FCM) untuk Notifikasi Real-Time Web & Mobile (2026)
Firebase Cloud Messaging (FCM) adalah layanan gratis dari Google yang digunakan untuk mengirim push notification secara real-time ke aplikasi Web, Android, dan iOS.
2026-02-02

Tutorial Lengkap Firebase Cloud Messaging (FCM) untuk Notifikasi Real-Time Web & Mobile (2026)
Firebase Cloud Messaging (FCM) adalah layanan gratis dari Google yang digunakan untuk mengirim push notification secara real-time ke aplikasi Web, Android, dan iOS.
2026-02-02

Alternatif Gratis Terbaik Pengganti Laragon Setelah Menjadi Berbayar
Laragon telah lama menjadi pilihan utama bagi banyak developer web lokal karena performanya yang ringan, dukungan untuk banyak stack (PHP, Node.js, MySQL, dll.), serta fitur-fitur seperti auto virtual host
2025-06-28
Responses
No responses yet. Be the first to share your thoughts.