Pazar, 18 Ocak 2009

CodeIgniter'da Kullanıcıları Yetkilendirme - Örnek III

 

Daha önce yazdığım iki yetkilendirme yazısının ardından bu yazımda çalışan bir örnek vererek yetkilendirmenin nasıl yapıldığını size anlatmaya çalışacağım.

Öncelikle kurulum için buradaki dosyayı bilgisayarınıza indiriyorsunuz. Bu ZIP dosyası için CodeIgniter 1.7.0 versiyonunda çalışan bir application dizini ve veritabanı şeması mevcuttur.

application/config dizini altında database.php ve config.php dosyası içine girerek size uygun veritabanı ve site url adresi ayaralarını yapıyorsunuz. Daha sonra MySql veritabanına database.php dosyasında tanımladığınız tabloyu oluşturup, ZIP dosyası içindeki veritabanı şemasını içeri aktarıyorsunuz (import ediyorsunuz).

Veritabanı içinde users isimli tablo, demo kullanıcı bilgilerini içermektedir. http://sitenizin_adresi/login adresini tarayıcınıza girince ekrana gelen login sayfasında kullanıcı adı yerine "admin" ve şifre yerine de "sifre" değerini girince sizi admin/uye adresine yönlendirecektir. Eğer login olmadan http://sitenizin_adresi/admin/uye adresine gitmeye çalışırsanız yine login formunu göreceksiniz.

Bu örnek temel bir uygulamanın nasıl olacağı konusunda sizlere bilgi vermek amacı ile yazılmıştır. Uygulamayı çalıştırmak için temel CodeIgniter bilgilerine sahip olmanız gereklidir. Uygulamayı geliştirmek size kalmış. Kolay gelsin.

@28 Ekim 2009 : Login olduktan sonra tekrar giriş form gelmesi önlendi. Logout controller dosyası eklendi. Session bilgileri veritabanına alındı.

Yorumlar

Selamlar,
Sitenizi görünce tebrik etmeden geçemedim. Bu tür konularda, nette, özgün türkçe içerik görünce gerçekten çok mutlu oluyorum.
Ben de kendi sitemde vakit buldukça CI ve genel programlama konusunda birşeyler yazmaya çalışıyorum.
Vakit bulursanız beklerim;
http://www.ibonette.com

Çalışmalarınızda başarılar dilerim.
Saygılar,
İbrahim

gerçekten güzel bir yazı ve örnek için teşekkürler.

Tebrikler üstat yine güzel bir yazı

oncelikle cok guzel bir ornek uygulama buyuk ihtimalle ci ile ugraan butun web programcilarinin kutuphanelerinde bulundurmasi gereken bir uygulama olmus.

Bu uygulamada anlam veremedigim bi hata aldim belki ci ya daha yeni basladigimdan anlam verememisimdir.

login butonuna tikladiktan sonra

Not Found

The requested URL /CIYetki/login/index was not found on this server.

tarzinda bir hata aliyorum.

ama butun dosyalar mevcut hatanin nedeni nedir...

@Kerim Candemir: .htaccess dosyasında kendi kurulumunuza uygun gerekli ayarları yaptığınızı tekrar kontrol ediniz.

uygulamada .htaccess dosyasi kullanmadim...

@Kerim Candemir: burada anlattığım üzere htaccess dosyasını kullanmayı deneyiniz.

Ellerinize sağlık. Gayet başarılı bir örnek. Ayrıca bilginiz olsun CI 1.7.1'de de sorunsuz çalışıyor.

Merhaba;
Öncelikle verdiğiniz bilgiler için teşekkürler. Ben örneği uygulamaya çalıştım fakat kullanıcı adı ve şifreyi girip Gönder butonuna bastığımda
The requested URL /site_adresi/login was not found on this server.
hatasını alıyorum. .htaccess dosyasında söylediğiniz gibi ayarları yaptım fakat aynı hata devam ediyor. Başka ne yapmam gerekiyor acaba?

http://localhost/CI yazınca kullanıcı adı, şifre olan sayfa geliyor fakat gönder butonuna bastığımda yada adres olarak http://localhost/CI/login girdiğimde

Not Found

The requested URL /ci/login was not found on this server.

hatası çıkıyor.

CodeIgniter de çok yeniyim bu sorunu bir türlü çözemedim. Lütfen yardım.

@Mesut: Bu uygulamayı çalıştırmadan önce .htaccess dosyan ile config.php dosyasındaki ilgili değerlerin sitene göre doğru ayarlanması gereklidir. Bu ayarların nasıl yapılacağı konusunda sitede gerekli bilgiler mevcut. Sorunun devamı halinde Google Group a sorununu gönderirsen daha hızlı cevap alabilirsin.

Bu yazı ile ilgili olarak Google Groupta cod3r isimli kullanıcının bildirdiği sorunu giderdim. Kütüphaneyi tekrar yükledim.

Çıkış linkine tıkladığımda

Fatal error: Call to undefined function: redirect() in C:\...\apps\controllers\logout.php on line 14

şeklinde bir hata aldım. hata ile ilgili yaptığım arama sonucunda redirect() kullanmadan önce

$this->load->helper('url');

kodunu yazmam gerektiğini öğrendim. Bu kodu yazmadan redirect() methodunu kullanabilmem için yapmam gereken bir ayar var mı?

Sorumun cevabını buldum autoload.php içinde

$autoload['helper'] = array('url');

yetiyormuş. Teşekkürler..

Yorum Ekle