Sedang mengalami error login SLiMS secara tiba-tiba, padahal sebelumnya aplikasi dapat diakses dengan normal dan tidak ada perubahan pada username maupun password? Masalah ini cukup sering terjadi, terutama setelah pembaruan versi atau perubahan pada konfigurasi aplikasi, sehingga pengguna tidak dapat masuk ke halaman administrator.
Saat proses login dilakukan, SLiMS biasanya menampilkan pesan seperti “Username not exist in database”, “Something wrong”, atau pesan serupa yang mengindikasikan seolah-olah data pengguna tidak ditemukan. Padahal, setelah dilakukan pemeriksaan, akun pengguna masih tersimpan di dalam database dan kredensial yang digunakan juga sudah benar.
Pada umumnya, masalah tersebut bukan disebabkan oleh hilangnya data pengguna, melainkan karena aplikasi gagal menjalankan query ke database. Akibatnya, proses autentikasi tidak dapat mengambil informasi pengguna sehingga SLiMS menampilkan pesan yang kurang sesuai dengan penyebab sebenarnya. Pada artikel ini, kami akan membahas penyebab error tersebut beserta langkah-langkah perbaikannya pada SLiMS versi 9.6 dan 9.7.
Penyebab Error Login SLiMS versi 9
Pada sebagian kasus, error login SLiMS versi 9 bukan disebabkan oleh username atau password yang salah, maupun hilangnya data pengguna di database. Masalah ini umumnya muncul karena adanya perubahan cara MySQL atau MariaDB memproses sintaks query yang digunakan oleh aplikasi.
Salah satu penyebabnya adalah keberadaan kolom bawaan bernama 2fa pada tabel pengguna SLiMS. Kolom tersebut diawali dengan angka, sehingga pada beberapa versi MySQL/MariaDB maupun konfigurasi server yang lebih baru, nama kolom harus ditulis menggunakan karakter pembatas backtick (`) agar dapat diproses dengan benar.
Namun, pada beberapa versi SLiMS, query yang dibentuk oleh framework inti belum membungkus nama kolom tersebut dengan backtick. Akibatnya, database menganggap sintaks yang dikirim tidak valid sehingga query gagal dijalankan.
Ketika query gagal dieksekusi, proses autentikasi tidak dapat mengambil data pengguna dari database. Inilah yang menyebabkan SLiMS menampilkan pesan seperti “Username not exist in database” atau “Something wrong”, meskipun akun pengguna sebenarnya masih tersimpan dengan baik dan tidak mengalami perubahan.
Cara Mengatasi Error Login SLiMS
Perbaikan dilakukan dengan mengubah referensi kolom dari u.2fa menjadi u.`2fa` pada file-file autentikasi, sehingga query kembali valid dan proses login dapat berjalan normal tanpa mengubah struktur database maupun data pengguna.
Perlu di ketahui bahwasannya lokasi file auth akan berbeda di tiap versi SLiMS, pada artikel ini kami contohkan pada dua versi SLiMS yaitu versi 9.6 dan versi 9.7
Langkah 1. Mengaktifkan mode development
- Login ke cpanel hosting dan akses file manager. Panduan login cpanel silakan bisa mengikuti artikel berikut: cara login cpanel
- Cari file sysconfig.inc.php di path /home/usercpanel/public_html/sysconfig.inc.php .
- Klik kanan pada file > edit. Lalu, cari baris script berikut:
define('ENVIRONMENT', $env??'production');- Ubah menjadi mode development
define('ENVIRONMENT', $env??'development');- Simpan perubahan yang dilakukan.
- Coba login kembali untuk mendapatkan detail error yang tampil seperti contoh gambar berikut :

Langkah 2. Perbaikan SLiMS versi 9.6
Pada versi SLiMS 9.6 lokasi file auth terdapat di path ../lib/admin_logon.inc.php.
- Pastikan sudah melakukan backup pada file yang akan dirubah.
- Perbaikan dilakukan pada file admin_logon.inc.php antara baris 259-263
$_sql_librarian_login = sprintf("SELECT
u.user_id, u.username, u.passwd,
u.realname, u.groups, u.user_image, u.2fa
FROM user AS u
WHERE u.username='%s'", $this->obj_db->escape_string($this->username));- Ubah menjadi script berikut:
$_sql_librarian_login = sprintf("SELECT
u.user_id, u.username, u.passwd,
u.realname, u.groups, u.user_image, u.`2fa`
FROM user AS u
WHERE u.username='%s'", $this->obj_db->escape_string($this->username));- Perbaikan dilakukan pada file admin_logon.inc.php antara baris 300-305.
$_sql_librarian_login = sprintf("SELECT
u.user_id, u.username,
u.realname, u.groups, u.2fa
FROM user AS u
WHERE u.username='%s'
AND u.passwd=MD5('%s')", $this->obj_db->escape_string($this->username), $this->obj_db->escape_string($this->password));- Ubah menjadi script berikut:
$_sql_librarian_login = sprintf("SELECT
u.user_id, u.username,
u.realname, u.groups, u.`2fa`
FROM user AS u
WHERE u.username='%s'
AND u.passwd=MD5('%s')", $this->obj_db->escape_string($this->username), $this->obj_db->escape_string($this->password));- Simpan perubahan yang sudah dilakukan di sisi script.
- Dicoba login kembali.
Langkah 3. Perbaikan pada SLiMS versi 9.7
Pada versi SLiMS 9.7 file yang perlu diperbaiki yaitu Native.php dan Validator.php.
Step 1. Perbaikan File Native.php
- Pastikan sudah melakukan backup pada file yang akan dirubah.
- Lokasi file Native.php terdapat pada path url berikut :
../lib/Auth/Methods/Native.php- Perbaikan dilakukan antara baris 259-263 pada function adminAuthenticate().
$user = DB::query(<<<SQL
SELECT
u.user_id as uid, u.username as uname, u.passwd,
u.realname as realname, u.groups, u.user_image as upict, u.2fa
FROM user AS u
WHERE u.username=?
SQL, [$this->username]);- Ubah menjadi script berikut:
$user = DB::query(<<<SQL
SELECT
u.user_id as uid, u.username as uname, u.passwd,
u.realname as realname, u.groups, u.user_image as upict, u.2fa
FROM user AS u
WHERE u.username=?
SQL, [$this->username]);- Simpan perubahan yang sudah dilakukan di sisi script.
Step 2. Perbaikan File Validator.php
- Pastikan sudah melakukan backup pada file yang akan dirubah.
- Lokasi file Validator.php terdapat pada path url berikut:
../lib/Auth/Validator.php- Perbaikan dilakukan antara baris 177-182 pada function findUserByToken().
$sql = 'SELECT u.user_id AS uid, u.username AS uname, u.passwd,
u.realname AS realname, u.groups, u.user_image AS upict, u.2fa
FROM user AS u
INNER JOIN user_tokens AS ut ON ut.user_id = u.user_id
WHERE ut.selector = :selector AND ut.expires_at > now()
LIMIT 1';- Ubah menjadi script berikut:
$sql = 'SELECT u.user_id AS uid, u.username AS uname, u.passwd,
u.realname AS realname, u.groups, u.user_image AS upict, u.`2fa`
FROM user AS u
INNER JOIN user_tokens AS ut ON ut.user_id = u.user_id
WHERE ut.selector = :selector AND ut.expires_at > now()
LIMIT 1';- Perbaikan dilakukan antara baris 197-200 pada function findUserByUsername().
$sql = 'SELECT u.user_id AS uid, u.username AS uname, u.passwd,
u.realname AS realname, u.groups, u.user_image AS upict, u.2fa
FROM user AS u WHERE u.username = :username';- Ubah menjadi script berikut:
$sql = 'SELECT u.user_id AS uid, u.username AS uname, u.passwd,
u.realname AS realname, u.groups, u.user_image AS upict, u.`2fa`
FROM user AS u WHERE u.username = :username';- Simpan perubahan yang sudah dilakukan di sisi script.
- Dicoba login kembali.
Note*
Setelah proses perbaikan atau development selesai pastikan mengembalikan environtment website menjadi mode production kembali agar pesan error tidak tampil di halaman browser.
Pengujian Setelah Perbaikan
Setelah melakukan perbaikan pada file SLiMS sesuai versi yang digunakan, lakukan beberapa pengujian berikut untuk memastikan proses login telah kembali normal.
- Coba login kembali menggunakan akun administrator atau pengguna yang sebelumnya mengalami kendala.
- Periksa pesan error yang muncul. Jika development mode masih aktif, pastikan tidak ada lagi pesan error yang berkaitan dengan proses autentikasi atau query database.
- Pastikan dashboard SLiMS dapat diakses setelah proses login berhasil.
- Nonaktifkan kembali development mode setelah proses pengujian selesai agar informasi error tidak ditampilkan kepada pengguna lain.
Apabila seluruh pengujian di atas berhasil dilewati, maka proses perbaikan error login pada SLiMS telah berhasil dilakukan.
Troubleshooting Jika Login Masih Gagal
Jika setelah melakukan perbaikan Anda masih tidak dapat login ke SLiMS, lakukan beberapa pemeriksaan berikut.
- Pastikan file Native.php atau Validator.php yang diedit sudah sesuai dengan versi SLiMS yang digunakan.
- Periksa kembali apakah seluruh perubahan telah disimpan dan tidak terdapat kesalahan penulisan (syntax error) pada file yang diedit.
- Bersihkan cache browser, kemudian coba login kembali menggunakan mode penyamaran (Incognito).
- Apabila server menggunakan OPcache, lakukan restart layanan PHP atau web server agar perubahan file dapat diterapkan.
- Pastikan versi PHP, MySQL, atau MariaDB yang digunakan masih kompatibel dengan versi SLiMS yang dijalankan.
Jika seluruh langkah di atas telah dilakukan tetapi masalah masih muncul, Anda dapat mengaktifkan kembali development mode untuk melihat pesan error yang lebih spesifik sebagai bahan proses troubleshooting.
Tabel Ringkasan Error Login SLiMS dan Solusinya
Error login pada SLiMS dapat disebabkan oleh beberapa faktor, mulai dari query database yang tidak kompatibel hingga konfigurasi server yang belum sesuai. Tabel berikut merangkum pesan error yang umum ditemui, kemungkinan penyebabnya, serta solusi yang dapat dilakukan.
| Gejala | Kemungkinan Penyebab | Solusi |
|---|---|---|
| Username not exist in database | Query gagal membaca data pengguna akibat kolom 2fa | Lakukan perbaikan file sesuai versi SLiMS |
| Something wrong | Query database gagal dijalankan | Aktifkan development mode untuk melihat detail error, kemudian lakukan perbaikan |
| Halaman login tetap muncul setelah memasukkan akun | Perubahan file belum diterapkan | Bersihkan cache browser atau restart layanan PHP/OPcache |
| Muncul syntax error setelah mengedit file | Kesalahan penulisan kode saat proses perbaikan | Periksa kembali file yang diedit atau kembalikan dari hasil backup |
FAQ
berikut adalah beberapa pertanyaan popular tentang kendala error login Slims pada versi 9.
Apakah perbaikan ini akan menghapus data anggota atau koleksi perpustakaan?
Tidak. Perbaikan hanya dilakukan pada file aplikasi SLiMS sehingga tidak mengubah data yang tersimpan di dalam database.
Apakah solusi ini dapat diterapkan pada semua versi SLiMS?
Tidak. Panduan ini ditujukan khusus untuk SLiMS versi 9.6 dan 9.7. Jika menggunakan versi lain, sesuaikan dengan struktur file dan dokumentasi resmi SLiMS.
Mengapa login masih gagal setelah file diperbaiki?
Pastikan Anda telah melakukan perubahan pada file yang sesuai dengan versi SLiMS, menyimpan seluruh perubahan, serta membersihkan cache browser atau me-restart layanan PHP apabila menggunakan OPcache.
Apakah development mode perlu dinonaktifkan setelah perbaikan selesai?
Ya. Setelah proses troubleshooting selesai dan login kembali normal, sebaiknya nonaktifkan development mode agar informasi error tidak ditampilkan kepada pengguna dan aplikasi tetap berjalan dalam mode produksi.
Penutup
Error login pada SLiMS versi 9 umumnya bukan disebabkan oleh username atau password yang salah, melainkan karena perubahan cara MySQL atau MariaDB memproses query pada beberapa versi aplikasi. Dengan mengidentifikasi penyebabnya terlebih dahulu, Anda dapat melakukan perbaikan pada file yang sesuai dengan versi SLiMS yang digunakan tanpa perlu menginstal ulang aplikasi atau mengubah data yang ada di dalam database.
Setelah proses perbaikan selesai, jangan lupa melakukan pengujian untuk memastikan login kembali normal dan menonaktifkan development mode agar aplikasi kembali berjalan dalam mode produksi. Dengan langkah yang tepat, masalah error login SLiMS dapat diatasi dengan aman sehingga aktivitas pengelolaan perpustakaan dapat berjalan kembali tanpa kendala.


