Codeigniter etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Codeigniter etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Şubat 2014 Pazar

Codeigniter ile Bir Tablodan Veri Çekme

Codeigniter ile veritabanındaki herhangi bir tablodan veri çekmek için bir fonksiyon yazalım. Bu fonksiyon parametre olarak çekilecek kayıt sayısını (limit) alsın. Ayrıca fonksiyon son eklenen kayıtları (order_by) getirsin. Bu durumda Model'imiz ve bu model içindeki fonksiyonumuz aşağıdaki gibi olacaktır.
/*
* Model ismi : Video
* Fonksiyon ismi : getVideos
*/

class Video extends CI_Model {

   public function getVideos($limit) {

        $this->db->select('*');

        $this->db->from('videos');

        $this->db->where('video_status', '1');

        $this->db->order_by('id', 'desc');

        $this->db->limit($limit);


        return $this->db->get()->result();
    }


}

Yazdığımız bu fonksiyon geriye dizi döndürecektir. Bu dizinin her bir elemanı bir Obje'dir. Controller içinde bu fonksiyonu çağırmak için öncelikle yazdığımız Model sınıfını yüklememiz gerekir. Fonksiyondan geriye dönen değeri bir dizi değişkenine atayıp, dönen veriyi göstermek istediğimiz View'e parametre olarak vermeliyiz.

class Show extends CI_Controller {


   public function videos(){

     $this->load->model('video');

     $limit = 100;

     $data['videos'] = $this->video->getVideos($limit);

     if( $data != NULL ) {

       $this->load->view('show_videos', $data);

     }

}

12 Şubat 2014 Çarşamba

Codeigniter Kullanıcı Kaydı


Codeigniter ile veritabanı işlemleri için model sınıfları oluşturmak gerekir. Yeni bir kullanıcının bilgilerini veritabanına kaydettiğimizi düşünelim. Öncelikle kullanıcı bilgilerini bir dizide toplamalıyız. Bu işlemi tabiki controller içinde yapmalıyız.

/*
* Profile adından controller oluşturalım
*/

class Profile extends CI_Controller {

    public function __construct() {

        parent::__construct();

    }


    public function signup($userData) {

/*
* Üyelik formundan gelen bilgileri 
* diziye aktaralım
*/

        $data["fullname"] = $this->input->post('fullname',TRUE);

        $data["username"] = $this->input->post('username',TRUE);

        $data["password"] = sha1 ( $this->input->post('password',TRUE) );

        $data["date"] = time();

        $data["status"] = '1;

/*
* Model sınıfını yükleyelim
*/

        $this->load->model('user');

/*
* Model sınıfının newUser metonu çağıralım
*/
        $this->user->newUser($userData);
    }

 }   


Bu durumda model sınıfı içinde bu işlemi yapacak bir metot tanımlamamız gerekir. Bu metot parametre olarak ise kullanıcı bilgilerinin olduğu diziyi almalıdır. Kullanıcıyı veri tabanına kaydeden metodumuzun içeriği aşağıdaki gibi olacaktır.
class User extends CI_Model {

    public function __construct() {

        parent::__construct();

    }

/*
*
* @param array $userData
*
* @return boolean
*
*/
    public function newUser($userData) {

        $this->db->insert('users', $userData);

        if ($this->db->insert_id() > 0) {

            return TRUE;

        } else {

            return FALSE;

        }

    }

}

9 Şubat 2014 Pazar

Codeigniter Hepler Oluşturma

Codeigniter içinde  bulunan veya bizim oluşturacağımız kendi helper'larımızı projenin herhangi bir yerinde, bu bir Model, bir Controller veya bir View olabilir, obje oluşturmadan doğrudan fonksiyonu çağırarak kullanabiliriz.

Codeigniter ile kendimize ait helper dosyaları oluşturabilmek için öncelikle application/helpers klasörü altında dosya_helper.php gibi bir PHP dosyası oluşturalım. Bu helper'ımızda dosya işlemleri ile ilgili fonksiyonlarımızı tutacağız. İlk fonksiyonumuz, bir dosyayı satır satır okuyan ve bu dosyadaki herhangi bir satırı random olarak geri döndüren bir fonksiyon olsun.

Fonksiyonumuz readRandomLineFromFile aşağıdaki gibi olacaktır.

function readRandomLineFromFile($filePath) {

    $handle = fopen($filePath, "r");

    $data = array();

    $lineCount = 0;

    if ($handle) {

        while (($line = fgets($handle)) !== false) {

            $data[] = $line;

            $lineCount++;

        }

    } else {

        return false;

    }

    return $data[rand(0, $lineCount)];

}


Artık dosya adında bir helper'ımız ve bunun içinde readRandomLineFromFile adında bir fonksiyonumuz var. Bu dosya helper'ımızı application/config/autoload.php dosyasında aşağıdaki gibi projemize dahil etmeliyiz.

//Heplerın ismi array içine yazılır

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

//

Projemizin herhangi bir yerinde helper'ımızı aşağıdaki gibi çağırabiliriz.

//Dosyanın bulunduğu klasörü belirtiyoruz

$path = 'public/texts/videolar.txt';

$text = readRandomLineFromFile($path);

/*
* Fonksiyonun döndürdüğü satırı
* istediğimiz gibi kullanabiliriz
*/
echo $text;

//

8 Şubat 2014 Cumartesi

Codeigniter ile Kayıtlı Kullanıcı Bilgilerine Ulaşma

Codeigniter ile veritabanı işlemlerini gerçekleştirmek için $this->db objesi kullanılır. Bu obje ile application/config/database.php dosyasında tanımladığımız veritabanı içindeki tablolara ulaşabilir ve bu tablolar üzerinde insert - select - update - delete işlemleri yapabiliriz.

Örneğin , kullanıcı girişinin olduğu bir web sitemizde, kullanıcıdan kullanıcı adı (username) ve parola (password) bilgilerini alarak, veritabanındaki bir tablodan (users) bu kullanıcının tüm bilgilerini çektiğimizi düşünelim.

Bunun için öncelikle bir Controller'ımız olması gerekiyor. User olarak adlandıralım bunu. Controller'ımız içinde ise bu kullanıcının yapabileceği işlemler için fonksiyonlar - metotlar tanımlamamız gerekir. User Controller'ı içindeki metodumuz ise login() olsun.

Controller sınıfımız yapı olarak aşağıdaki gibi olacaktır.

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}

class User extends CI_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function index() {
        
    }

    public function login() {

    }
}

Şimdi login metodu içinde kullanıcının bir form ile girdiği bilgileri alıp, veritabanından kullanıcı bilgilerini çekelim. Öncelikle verileri çekeceğimiz bir Model sınıfı oluşturalım.

class User_model extends CI_Model{
    
    public function __construct() {
        parent::__construct();
    }

}

Sonra bu Model sınıfını Controller sınıfına dahil edelim ve kullanıcı bilgilerini alalım.
 
    public function login() {
        $this->load->model('user_model');

        /*
         * Formdan POST ile gelen kullanıcı adı ve şifre
         * değişkenlere aktarılıyor
         */

        $u_name = $this->input->post('username', TRUE);
        $u_pass = $this->input->post('password', TRUE);
    }

Şimdi Model sınıfında getUser( ) metodu tanımlayalım. Veritabanında kullanıcı şifresini sha1 algoritamasına göre sakladığımızı düşünelim. Bunun için kullanıcının girdiği şifreyi hemen sha1 algoritamasından geçirmeliyiz. Daha sonra SQL cümleleriyle kullanıcı bilgilerini users tablosundan çekiyoruz.

class User_model extends CI_Model{
    
    public function __construct() {
        parent::__construct();
    }
    
    public function getUser($userName, $password){
        
        $password = sha1($password);
        
        $this->db->select('*');
        $this->db->from('users');
        $this->db->where('user_username',$userName);
        $this->db->where('user_password',$password);
                
        return $this->db->get()->result();
    }

}

Tanımladığımız getUser( ) metodu bize dizi döndürecektir. Dönen bu değerleri Controller içindeki login( ) metodunda bir değişkene aktarıp, oluşturacağımız View sayfasına bu değişkendeki verileri göndereceğiz.
 
    public function login() {
        $this->load->model('user_model');
        $u_name = $this->input->post('username', TRUE);
        $u_pass = $this->input->post('password', TRUE);

        //Model sınıfının getUser metodu çağrılıyor

        $data['info'] = $this->user_model->getUser($u_name, $u_pass);
        $this->load->view('user_info_view', $data);
    }

Kullanıcı bilgilerini göstereceğimiz user_info_view dosyasında ise aşağıdaki gibi kullanıcı bilgilerine ulaşabiliriz.
/*
* Veritabanından gelen data dizi şeklinde
* olduğu için döngü ile kullanıcıya ulaşılır.
* Ayrıca kullanıcı bilgisi bir objedir.
*/

foreach ($info as $user) {
    $id = $user->id;
    $name = $user->name;
    $username = $user->username;
    $email = $user->email;
    $user_role = $user->role;
}       

Kullanıcı bilgilerini bir tabloya ya da div içine yazarak gösterebiliriz.

6 Şubat 2014 Perşembe

CodeIgniter Nedir?


Codeigniter PHP dili ile web uygulaması geliştirmek isteyenler için oluşturulmuş bir frameworktür. Web uygulamalarındaki kütüpheneleri size hazır olarak sunarak uygulama geliştirmenizi hızlandırır. 

Codeigniter, yazmış olduğunuz kod sayısını azaltarak aynı işi daha kısa sürede ve daha temiz kod yazarak yapmanızı sağlar. Birçok framework'de olduğu gibi Codeigniter, MVC (Model - View - Controller) tasarım desenini kullanıyor. Veritabanı ile ilgili işlemleri Model sınıfları, Tasarım ile ilgili işlemleri View dosyaları, uygulamanın çalışmasını ise Controller sınıfları sağlıyor.