Codeigniter Dersleri – 22 – Yönetici Girişi ve Yönetici Alanı – Session – 2
Herkese merhabalar,
Bir önceki dersimize kaldığımız yerden devam ediyoruz. Bugün login işlemini bitirmemizden dolayı yeni kullanıcı kaydı işlemini yapacağız. Bunun için views altında signup_form.php dosyası oluşturalım ve içerisine formumuzu yerleştirelim
<h1>Hesap Yarat</h1> <fieldset id="signup_form"> <legend>Kişisel Bilgiler</legend> <?php echo form_open('login/create_member'); echo form_input('first_name',set_value('first_name','Adın')); echo form_input('last_name',set_value('last_name','Soyadın')); echo form_input('email_address',set_value('email_address','Email Adresin')); ?> </fieldset> <fieldset id="signup_form"> <legend>Kullanıcı Bilgileri</legend> <?php echo form_open('login/create_member'); echo form_input('user_name',set_value('user_name','Kullanıcı Adın')); echo form_input('password',set_value('password','Şifre')); echo form_input('password2',set_value('password2','Şifre Tekrar')); echo form_submit('submit','Hesap Yarat'); ?> <?php echo validation_errors('<p class="error">');?> </fieldset> |
Peki bu dosyayı nasıl çağıracağız? Bunun için login.php dosyasına şöyle bir fonksiyon ekliyoruz.
function signup() { $data['main_content'] = 'signup_form'; $this->load->view('includes/template',$data); } |
Formumuzu oluşturduk ancak kaydet dediğinde gideceği create_member fonksiyonunu daha oluşturmadık. login.php dosyamıza şöyle bir fonksiyon ekleyelim
function create_member() { $this->load->library('form_validation');//girilen bilgilerin doğruluğunu kontrol etmemize yardımcı olan fonksiyonları yüklüyoruz. $this->form_validation->set_rules('first_name','Name','trim|required');//bu ve alttaki fonksiyonlar ise kural oluşturmamıza yardımcı olarak girilen bilgilerin bu kurala uygun olmasını sağlıyor $this->form_validation->set_rules('last_name','Last Name','trim|required'); $this->form_validation->set_rules('email_address','Email Address','trim|required|valid_email'); $this->form_validation->set_rules('user_name','Username','trim|required|min_length[4]'); $this->form_validation->set_rules('password','Password','trim|required|min_length[4]|max_length[32]'); $this->form_validation->set_rules('password2','Password Confirmation','trim|required|matches[password]'); if($this->form_validation->run()== FALSE )//eğer girilen değerler yukarıdaki kurallara uymuyor ise tekrar forma dönüyoruz. { $this->signup(); } else//girilen bilgiler doğruysa model dosyamızı çağırıyoruz. { $this->load->model('membership_model'); if($query = $this->membership_model->create_member()) { $data['main_content']= 'signup_successful'; $this->load->view('includes/template',$data); } else { $this->load->view('signup_form'); } } } |
Burada “form_validation->set_rules(‘last_name’,’Last Name’,’trim|required’)” gibi fonksiyonlar görüyoruz. Bunun anlamı, kullanıcının girdiği değerleri kendi oluşturduğumuz kurallara göre işliyoruz. Örneğin bu satırda “trim” ile girilen değerin yanındaki boşlukları siliyoruz ve, yanlışlıkla girilen boşluk değerinden dolayı hata çıkmasını önlüyoruz. “required” ile de, bu alanın doldurulmasının zorunlu olduğunu söylüyoruz. Ayrıca “valid_email” ile geçerli bir email adresi istiyoruz. “min_length[4]” ile en az 4 karakter; “max_length[32]” ile de en fazla 32 karakter girilebileceğini belirliyoruz. “matches[password]” ile password field ındaki değer ile aynı olması gerektiğini set ediyoruz.
Şimdi kullanıcının kayıt edileceği model dosyamızı hazırlayalım. Bunun için var olan model dosyamıza yani membership_model.php dosyamıza fonksiyon ekleyeceğiz.
function create_member() { //database e eklenecek değerleri belirliyoruz. $new_member_insert_data = array( 'firstname' => $this->input->post('first_name'), 'lastname' => $this->input->post('last_name'), 'email' => $this->input->post('email_address'), 'username' => $this->input->post('user_name'), 'password' => md5($this->input->post('password')) ); $insert = $this->db->insert('membership',$new_member_insert_data);//insert işlemi gerçekleştiriyoruz. return $insert;//true veya false değeri dönüyor } |
Son olarak başarılı kayıtta gösterilecek sayfayı hazırlayalım. views altına signup_successful.php dosyasını oluşturuyoruz. ve şu şekilde dolduruyoruz.
1 2 | <h1> Tebrikler! </h1> <p> Hesabınınız Oluşturuldu. <?php echo anchor('login','Giriş Yap'); ?></p> |
Şimdi son olarak css dosyamızı oluşturalım
codeigniter klasörü altın application yanına css klasörü oluşturalım ve içine style.css dosyasını açalım. İçerisine şunları yazalım
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | body{ background:#6699FF; margin:0; padding:0; font-family:Arial, Helvetica, sans-serif; } #login_form{ width:300px; background:#00FF99 url(../img/login_bg.jpg); border:1px solid white; margin: 250px auto 0; padding: 1em; -moz-border-radius:3px; -webkit-border-radius:3px; } #signup_form{ width:300px; background:#00FF99 url(../img/login_bg.jpg); border:1px solid white; margin: 25px auto 0; padding: 1em; -moz-border-radius:3px; -webkit-border-radius:3px; } h1,h2,h3,h4,h5{ margin-top: 0; font-family:Arial, Helvetica, sans-serif; text-align:center; } input[type=text],input[type=password]{ display:block; margin:0 0 1em 0; width:280px; border:5px; -moz-border-radius:1px; -webkit-border-radius:1 px; padding:1em; } input[type=submit],form a{ border:none; margin-right:1em; padding:6px; text-decoration:none; font-size:12px; -moz-border-radius:4px; -webkit-border-radius:4px; background:#9900CC; color:white; box-shadow:0 1px 0 white; -moz-box-shadow:0 1px 0 white; -webkit-box-shadow: 0 1px 0 white; } input[type=submit]:hover,form a:hover{ background:#9900FF; cursor:pointer; } .error{ color:#393939; font-size:15px; } fieldset{ width:300px; margin:auto; margin-bottom:2em; display:block; } h1{ text-shadow:0 1px 0 white; } #tutInfo{ background:#e3e3e3; border-top:1px solid white; position:absolute; bottom:0; width:100%; padding:.7em .7em .7em 2em; } |
Son kez ayarlardan hızlıca tekrar bahsetmek istiyorum.
config klasörü altında autoload.php dosyasında yapılacak değişiklikler:
1 2 3 | $autoload['libraries'] = array('session','database'); $autoload['helper'] = array('url','form'); |
config.php dosyasında yapılacak değişiklikler:
1 2 3 4 5 | $config['base_url'] = 'http://localhost/CodeIgniter_2.0.2'; $config['sess_encrypt_cookie'] = TRUE; $config['global_xss_filtering'] = FALSE; |
bu değişiklikleride yaptıktan sonra projemiz tamamen çalışır hale geldi, eksiklikleri lütfen bana iletin. Projenin kaynak kodlarını buradan indirebilirsiniz. İyi günler
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Codeigniter Dersleri – 21 – Yönetici Girişi ve Yönetici Alanı – Session
Sonraki: Git Nedir? Git Kullanımı – Git Komutları >>>
Teşekkür ederiz, elinize sağlık. Ancak;
login controller’da,
$this->load->signup()
Bunu nerede tanımlamıştık?
Eğer sorunuz, signup() fonksiyonunu nereden çağırıyoruz ise, views klasörü altındaki login_form.php dosyasında
echo anchor('login/signup','Yeni Kayıt');//Yeni Kullanıcı Kayıt Butonu
şeklinde kullandık.Yahya Adlı Arkadaş login.php dosyasında create_member() adlı fonksiyon içersinden $this->signup(); şeklinde çağırılan fonksiyonu soruyor sanırım. Çünkü bu fonksiyon gözden kaçmış yazılmamış.. ancak login.php dosyası içeriside aşşağıdaki gibi fonksiyonu eklerseniz çalışacaktır.
function signup()
{
$data[‘main_content’] = ‘signup_form’;
$this->load->view(‘includes/template’,$data);
}
Not: Sayın Admin Çalışmalarınız dan ve Çabalarınızdan Ötürü Sizi Kutluyorum!
Teşekkürler erdinc, belirttiğiniz kodu yazıya ekledim.
Merhabalar,
Codeigniter ile sayenizde haşır neşir olmaya başladım. Yazılarınızı takip ettim. Ancak bir iki soru kafama takıldı bu Yönetici Sayfası ile ilgili.
a) Her ne kadar session (oturum nesnesi) kullanmış olsak da kullanıcı yetki seviyeleri veya yetkilendirme ve kısıtlama mümkün mü? (Yani bu konu ile ilgili kütüphane var mı yoksa kendimiz mi birşeyler düşünmek zorunda kalıyoruz?
b) Gösterdiğiniz örnekte gelen ziyaretçi anında üye olabiliyor, yani bunun bir kontrol mekanizması olması gerekmez miydi? Eğer öyle birşey olmasını isteseydik nasıl bir çözümleme yapmak gerekirdi?
Emeğiniz için ayrıca teşekkür eder saygılar sunarım.
S. Başköy,
İkinci sorunuzdan başlayayım, örnekte amaç sadece üyelik sisteminin nasıl yapılabileceği ve session kullanımıyla ilişkilendirilmesi. Böyle olunca ayrıntılı denetim yok. Çözüm olarak, formdan gelen bilgileri daha çok denetime tabi tutabilirsiniz. Örneğin password de hem harf kem karakter olmalı gibi. Ayrıca kayıt olan kişinin email adresi databasede var mı diye kontrol edilebilir. Kayıt olurken kaydının tamamlanması ve aktifleştirilmesi için email yollanabilir. Böyle kontrol mekanizmaları oluşturulabilir.
İlk sorunuza gelecek olursak, Eğer yanlış anlamadı isem, google da “user auth codeigniter” şeklinde aratabilirsiniz. Kendin yapmak istersen tabiki böyle bir şey yapmak mümkündür.
Kullanıcı yetkilendirme kütüphanesine (User authorization library) örnek : http://www.jasonashdown.co.uk/cl_auth_doc/
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
İstatistikler
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar