[SOLVED] Error strpos() pada HMVC Codeigniter di PHP 7.3



Baru saja saya menemui ada error di projek Codeigniter (CI) saya. Kebetulan saya baru saja melakukan upgrade versi PHP dari 7.0 ke PHP 7.3. Tidak tahunya hal ini berpengaruh pada projek yang sudah saya buat. Pesan errornya seperti 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 googling sana sini akhirnya ketemu artikel menarik yang mempunyai masalah yang sama seperti punya saya. Dan ketika saya coba pada projek saya alhamdulillah error tersebut berhasil saya atasi.

Berikut caranya jika kamu juga punya masalah yang sama dengan punya saya:

1. Edit file application/third_party/MX/Router.php
2. Cari public function set_class

public function set_class before
public function set_class before

3. Didalam function tersebut terdapat logika untuk mengecek ada tidaknya $suffix, pada versi PHP sebelumnya tidak apa-apa mungkin pada versi terbaru ini (7.3) lebih sensitif kali ya
4. Untuk mengatasinya tambahkan pada logika ifnya menjadi seperti ini:
before:
if( strpos($class, $suffix) === FALSE)

after:
if( $suffix && strpos($class, $suffix) === FALSE)
5. Full codenya menjadi seperti ini:
public function set_class($class) {
        $suffix = $this->config->item('controller_suffix');
        if ($suffix && strpos($class, $suffix) === FALSE) {
            $class .= $suffix;
        }
        parent::set_class($class);
    } 
public function set_classs after
public function set_class after

Selesai. Saya belum tahu apa efek berantainya setelah perubahan tersebut tapi ditempat saya aman, semoga ditempat kamu juga sama ya.

Salam.

5 Komentar

hasbullah: oke di coba dan berhasil

Said Marzuki: Thanks, thats works for me

Fe: makasih banyak bangg, solusinya manjur sekali

Anonim:
In der norddeutschen Stadt Hamburg gewinnt das Thema KRITIS-Prüfnachweise nach Paragraph 8a BSIG zunehmend an Bedeutung. Unternehmen, die kritische Infrastrukturen betreiben, sind verpflichtet, Sicherheitsmaßnahmen zu implementieren und regelmäßig zu überprüfen. Die Anforderungen des BSIG stellen sicher, dass diese Systeme vor Cyberangriffen geschützt sind. Insbesondere müssen Betreiber von KRITIS-Anlagen spezifische Nachweise erbringen, um ihre Sicherheitsstandards zu bestätigen. Ein Beispiel hierfür ist die Notwendigkeit einer umfassenden Cybersecurity Weiterbildung für Mitarbeiter in diesen Bereichen. Um sich über aktuelle Entwicklungen und Angebote in diesem Bereich zu informieren, lohnt sich ein Besuch auf https://csvisor.de/. Der Fokus liegt dabei nicht nur auf der Einhaltung gesetzlicher Vorgaben, sondern auch auf der kontinuierlichen Verbesserung der Sicherheitskultur im Unternehmen.