Postingan lainnya
Cara agar setiap route hanya dapat diakses melalui login untuk codeigniter
Selamat sore para master, saya mau tanya tentang cara akalin agar akses route tidak boleh sembarangan namun harus login dahulu (session dalam keadaan aktif). kira-kira apa yang harus diperhatikan dan yang paling penting adalah codenya. tks
2 Jawaban:
Jawaban Terpilih
Untuk beberapa metode didalam controller
<pre> function __construct() { parent::__construct(); if ( ! $this->session->userdata('logged_in')) { // Allow some methods? $allowed = array( 'metode1', 'metode2', ); if ( ! in_array($this->router->fetch_method(), $allowed) { redirect('login'); } } } </pre>
Refrensi <a href=' https://stackoverflow.com/questions/5920115/codeigniter-checking-if-user-logged-in-for-multiple-pages '> https://stackoverflow.com/questions/5920115/codeigniter-checking-if-user-logged-in-for-multiple-pages </a>
[update] Pastikan kamu sudah bisa login sebelumnya dengan codeigniter, userdata('logged_in') sesuaikan dengan setuserdata yang kamu simpan, <a href=' https://sekolahkoding.com/track/belajar-codeigniter '>ada juga tutorilal codeigniter di sekolahkoding</a>
in_array metode adalah metode PHP biasa, mengecek apakah nama metode yang dibungkus di $allowed ada di controller ini, kalau ada maka redirect login kalau belum login
Tanggapan
cara menggunakannya bagaimana ya mas?
terima kasih mas Hilman, sudah sering dan sangat membantu. hanya kekurangannya tambah 1 lagi tanda kurung penutup setelah allowed, jadinya ...$allowed)) sekali lagi thanks...
dengan senang hati, sama sama
Mas @hilmanrdn, sedikit ada trouble yang baru ditemukan, jadinya semua dianggap tidak login. Kemudian bisa dijelaskan mengenai $allowed (metode1 dan metode2 itu seperti apa? tks
jawabannya sudah diupdate baca keterangannya di atas
function __construct() { parent::__construct(); if ( ! $this->session->userdata('logged_in')) { // Allow some methods? $allowed = array( 'metode1', 'metode2', ); if ( ! in_array($this->router->fetch_method(), $allowed) { redirect('login'); } } }