CodeIgniter, web uygulamaları geliştirmek için kullanılan popüler bir PHP çerçevesidir. Oturum yönetimi, kullanıcıların giriş yapma durumunu takip etmek ve geçici verileri saklamak için önemlidir. CodeIgniter, oturum yönetimini kolay ve etkili bir şekilde sağlamak için dahili olarak bir oturum kütüphanesi sunar. Bu makalede, CodeIgniter’ın oturum kullanımını anlatacağız ve bazı örneklerle konuyu pekiştireceğiz.
İçerik Haritası
CodeIgniter Oturum (Session) Kullanımı
Session Başlatılması
CodeIgniter’da oturumları kullanmaya başlamak için önce oturum kütüphanesini yüklemeliyiz. Bu kütüphane, oturum yönetimi için gerekli işlevleri içerir. Kütüphaneyi yüklemek için autoload.php
veya ihtiyaç duyduğunuz herhangi bir Controller veya Model içinde manuel olarak yükleyebilirsiniz:
$this->load->library('session');
Oturumu başlattıktan sonra, oturum verilerini saklamak ve almak için kullanabileceğiniz bazı işlevler mevcuttur.
Session Oturum Verisi Ekleme
Oturum verileri, geçici olarak kullanıcı bilgilerini saklamak veya farklı sayfalar arasında veri taşımak için kullanışlıdır. Oturum verisi eklemek için set_userdata
yöntemini kullanabiliriz:
$data = array( 'username' => 'kullanici123', 'email' => '[email protected]' ); $this->session->set_userdata($data);
Session Oturum Verisi Alma
Oturum verilerini aldığınızda, kullanıcının oturum durumuna ve diğer bilgilere erişebilirsiniz. Oturum verilerini almak için userdata
yöntemini kullanabilirsiniz:
$username = $this->session->userdata('username'); $email = $this->session->userdata('email');
Session Oturumu Sonlandırma
Kullanıcı çıkış yaptığında veya oturumun süresi dolduğunda oturumu sonlandırmak önemlidir. Oturumu sonlandırmak için unset_userdata
veya sess_destroy
yöntemlerini kullanabilirsiniz:
// Belirli bir oturum verisini silme $this->session->unset_userdata('username'); // Tüm oturum verilerini silme $this->session->sess_destroy();
Örnek Senaryo: Kullanıcı Girişi
Aşağıda, basit bir kullanıcı girişi senaryosunu ele alalım. Kullanıcı adı ve şifre ile giriş yapılmasını sağlayan bir Controller örneği:
class Auth extends CI_Controller { public function login() { // Kullanıcı adı ve şifre kontrolü if ($username == $input_username && $password == $input_password) { // Oturum verilerini ayarlama $user_data = array( 'username' => $username, 'logged_in' => TRUE ); $this->session->set_userdata($user_data); redirect('dashboard'); } else { // Hata mesajı gösterme $this->session->set_flashdata('error', 'Geçersiz kullanıcı adı veya şifre.'); redirect('login'); } } public function logout() { // Oturumu sonlandırma $this->session->sess_destroy(); redirect('login'); } }
Bu makalede, CodeIgniter’da oturum yönetiminin temel kullanımını anlattık. Oturum verisi eklemek, almak ve oturumu sonlandırmak gibi işlemleri gerçekleştirebilirsiniz. Bu örnekler, CodeIgniter projelerinizde oturum yönetimini daha iyi anlamanıza yardımcı olacaktır.
Session Verilerinin Kontrolü ve Kullanımı
Oturum verileri, kullanıcıların giriş yapma durumunu kontrol etmek ve kişiselleştirilmiş içerik sunmak için oldukça önemlidir. CodeIgniter’da oturum verilerini kontrol etmek için userdata
yöntemi kullanılır. Örneğin, kullanıcının giriş yapmış olup olmadığını kontrol etmek için aşağıdaki gibi bir kod kullanabilirsiniz:
if ($this->session->userdata('logged_in')) { // Kullanıcı giriş yapmış // İlgili işlemleri gerçekleştir } else { // Kullanıcı giriş yapmamış, giriş yapması gerekiyor // Giriş sayfasına yönlendir }
Flash Verileri Kullanma
Flash verileri, bir sayfadan diğerine geçici veri iletmek için kullanılır. Örneğin, bir formun başarıyla gönderilip gönderilmediğini kullanıcıya bildirmek için kullanılabilir. Flash verilerini ayarlamak ve kullanmak için set_flashdata
ve flashdata
yöntemlerini kullanabilirsiniz:
// Flash verisi ayarlama $this->session->set_flashdata('success', 'Form başarıyla gönderildi.'); // Flash verisini görüntüleme $message = $this->session->flashdata('success');
Session Verilerinin Süresi
CodeIgniter’da oturum verilerinin süresini ayarlamak için config.php
dosyasını düzenleyebilirsiniz. Bu dosyada oturum özellikleri bulunur. Örneğin, oturum süresini 30 dakika olarak ayarlamak için:
$config['sess_expiration'] = 1800; // 30 dakika (saniye cinsinden)
Güvenlik İpuçları
Oturum yönetimi güvenlik açısından çok önemlidir. CodeIgniter, oturumları korumak için bir dizi güvenlik önlemi sunar. Örneğin, oturum verilerini veritabanında saklamak, oturum kimlik bilgilerini şifrelemek ve oturum süresini kısa tutmak gibi adımlar alabilirsiniz.