29 Kasım 2017 Çarşamba

Windows Oracle VM VirtualBox-Extension Pack-Kali Kurulumu

İlk olarak Buradan VirtualBox indireceğimiz sayfayı açıyoruz.Görüntüsü aşağıdaki gibi olacak. Burada kırmızı dikdörtgen içine alıp 1 yazdığım kısımda sizin işletim sisteminiz ne ise ona göre seçip indirme işlemini yapıyorsunuz.Bendeki Windows  sizde kendinize göre seçip indirme işlemini yapınız.Bunu indirdikten sonra 2 numara ile işaretlediğim yerdeki Virtual Box Extension Pack dosyasını da indiriyoruz.Bunu indirme sebebimiz sanal makinemizin daha performanslı çalışmasını sağlamaktır.Bunu kurduktan sonra usb depolama aygıtlarını rahat bir şekilde Sanal Makinenizde kullana bilirsiniz.


Son olarak kurmak istediğiniz işletim sistemini indiriyorsunuz ben kali kuracağım onun için buradan kali nin sanal makine için  olan versiyonunu indiriyorum.Biz virtual Box a kali yükleyeceğimiz için Kali Linux Virtual Box sekmesinden işletim sisteminiz bitine göre seçip indirme işlemini yapıyorsunuz. Bendeki 64 bit.



Tüm indirme işlemlerini tamamladıktan sonra şimdi kuruluma geçebiliriz. İndirdiklerimiz aşağıdaki resim gibi.Biz ilk olarak 1 numaralı dan başlıyoruz ve sıra ile kurulumları yapacağız.

Virtual Box a çıft tıklayıp çalıştır butonuna basıyoruz.



Next te tıklıyoruz.


Next diyoruz.İsterseniz Virtual Box ın kurulacağı yeri alttan değiştire bilirsiniz.Ben değiştirmeyeceğim.

Yeni açılan pencereden de next diyoruz.Buradan istemediğiniz tikleri kaldırabilirsiniz.İşte başlangıç menüsüne ekle,masa üstüne ekle gibi seçenekler var .Ben yine hiç bir şey değiştirmiyorum.



açılan yen pencere de kurulum için Network Interface kurmanız gerektiğini söylüyor.Şimdi kurulsun mu diye soruyor.Bizde yes butonuna tıklıyoruz.


İndirmek için install butonuna tıklıyoruz.


İndirme işlemi sırasında sizden izin isteyecektir.Sizde izin verip yükle butonlarına basınız.Son olarak yükleme işlemi bittikten sonra finish butonuna basıyoruz.


Şimdi usb için gerekli  Extension Pack i yükleyelim.Bunun için Virtual Box ı açıp.File-Preferences ı tıklayalım.


Extension kısmındaki işaretli add new packed butonuna tıklıyoruz ve indirdiğimiz dosyamızın yerini buluyoruz.


Yerini bulduktan sonra dosyamızı seçip aç butonuna tıklıyoruz.aşağıdaki gibi bir pencere çıkacaktır.İnstall deyip devam ediyoruz.

Yüklemek  lisans kabul etmeniz gerekmekte bunun için sözleşmenin en altına inip I Agree butonuna basıyoruz.İlk açıldığında buton pasif gözükecektir.Sözleşmenin en altına inince buton aktifleşecektir.


Daha sonra yüklemek için izin isteyecektir.Evet ı tıklıyoruz.Yükleme işlemini tamamladıktan sonra Aşağıdaki gibi bir pencere çıkacaktır.Ok deyip kapatıyoruz.


Eğer Virtual Box ın dilini değiştirmek istiyorsanız yine file->preferences sekmesini açıyoruz.Burada Language sekmesine tıklayıp istediğiniz dili seçip ok tuşuna basabilirsiniz.


Şimdi kali yi kuralım İlk olarak aşağıdaki resimdeki gibi file->Import Appliance ı tıklıyoruz.



Açılan pencereden işaretli butona tıklayıp kali nin olduğu klasöre gidip kaliyi seçip aç diyoruz.


Daha sonra next diyoruz.Açılan pencerede en alta inip işaretli yerdeki  virtual disk image  i seçip import diyoruz.Yükleme işleminin bittikten sonra kalimiz kurulmuş olacak .


Son olarak kalimizin ayarlarını yapalım. Kali ye sağ tıklayıp Settings  sekmesine gidelim.


Açılan pencereden General sekmesinden Kalinizin ismini değiştirebilirsiniz.


System kısmında ram ve cpu ayarlarınızı yapabilirsiniz.Ben herhangi bir değişiklik yapmayacağım bilgisayarımın ram i ve cpu su zaten düşük olduğundan en düşük ayar ile kaydettim sizde kendi bilgisayarınıza göre ram ve  cpu ayarını yapınız.


Kalimizin internete bağlanması için yine kalimize sağ tıklayıp preferences e tıklayıp açılan sekmede Network e tıklıyoruz.Açılan kısımda Nat Network u seçip name kısmında da Natnetwork u seçiyoruz.Sizde name kısmı boş gelecektir.Bunu çözmek Virtual Box da File->Preferences->Network kısmına geliyoruz.




Açılan pencerede işaretli kısımdaki add new Nat butonuna tıklıyoruz.


Ekleme işlemi tamamlandı şimdi kalimize gidip name kısmını seçebiliriz.Son olarak kalimizi seçip start düğmesine basıyoruz.Sizden kalinin açılması için kullanıcı adı ve şifre isteyecektir bunun için kullanıcı adına "root" şifreye de "toor" yazıp giriş yapıyoruz.


Son olarak kalimizin şifresini değiştirelim .Bunun için terminali açıyoruz.Terminale "passwd" yazıp enter ı basıyoruz .Bizden yeni şifre isteyecektir.Yeni şifremizi giriyoruz.Daha sonra şifreyi tekrar isteyecektir.Aynı şifreyi girip enter ı basıyoruz böylece şifremiz değişmiş olacaktır.Şifre yazıyorken şifreniz yazılmıyor gibi gözükecektir ama aslında yazıyor sadece biz göremiyorsunuz.Eğer şifreniz başarı bir şekilde değiştirdiyseniz aşağıdaki gibi bir görüntü olacaktır.


Umarım faydalı olmuştur bir sonraki dersimizde görüşmek üzere :)














27 Kasım 2017 Pazartesi

Codeigniter-bootbox kullanımı-15

Merhaba arkadaşlar bu dersimizde yapmış olduğumuz örneğimize Bootbox ekleme işlemini yapacağız.Bunu yapmamızın sebebi örneğin kullanıcı silmek istediğimizde bize bir dialong penceresi çıkacak ve kullanıcıyı silmek istiyor musunuz diye soracak.
ilk olarak buradan butbox js dosyasını indirip assets klasörümüze yapıştırıyoruz.Projemizde indirdiğimiz dosyası script kodu olarak ekliyoruz.
<script src="<?php echo base_url("assets/bootbox.min.js")?>"></script>

Daha sonra silme butonundaki linkimizi aşağıdaki gibi ayarlıyoruz.

<a class="removeBtn"  dataURL="<?php echo base_url("welcome/delete_kullanici/$kbilgi->id") ?>">Sil</a>




Silme linkine tıklandığında diyalog çıkması için önceki örneğimizdeki  $(document).ready(function() fonksiyonun içine aşağıdaki script codlarımızı ekliyoruz.

   $(".removeBtn").click(function () {



        var dataURL = $(this).attr("dataURL");

        var  remove = bootbox.confirm("Silmek istiyor musunuz ?", function(result) {

            if (result == true) {

                window.location.href = dataURL;

            }

        });

    });




Şimdi projemizi çalıştırıyoruz.

Aşağıdaki gibi hatalarla karşılaştık.
Bustrupt eklememiz gerektiğini söylüyor bizde projemize aşağıdaki  kodları ekliyoruz.

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">



<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

Şimdi projemizi çalıştırıyoruz.Bu sefer jquery bulunamadı diye bi hata verdi ama bizde "jquery.min.js" dosyamız zaten var ve önceki projemizde eklemiştik.Bu sorunu çözmek için
"bootstrap.min.js" script inin üzerine "jquery.min.js" scriptini taşıyoruz.


Projeyi tekrar çalıştırıyoruz.



Bu sefer versiyon hatası verdi .Versiyonumuzu yükseltmemiz gerektiği hatasını verdi.Bu hatayı çözmek için en yüksek versiyonu indirdim ama yine aynı hatayı verdi.Meğer tek sıkıntı kaydettiğimiz jquery.min.js dosyasının adına versiyon numarasını eklememiz gerekiyormuş.Dosya adını "jquery-2.2.3.min.js" olarak değiştirip.scriptimizin adını aşağıdaki gibi değiştiriyoruz.

   <script src="<?php echo base_url("assets/jquery-2.2.3.min.js")?>"></script>




Şimdi projemizi çalıştırıyoruz.Bu seferde fancybox hata verdi :)

Bunu çözmek için  buradan  fancybox dosylarımız indirip içinden "jquery.fancybox.min.css", "jquery.fancybox.js" dosyaları kopyalayıp bizim assets içindeki dosyalarla  değiştiriyoruz.

<link rel="stylesheet" href="<?php echo base_url("assets/jquery.fancybox.min.css")?>">

<script src="<?php echo base_url("assets/jquery.fancybox.js")?>"></script>





Şimdi projemizi çalıştırıyoruz.Hatalarımız gitti.


Son olarak "bootstrap.min.js" ,"bootstrap.min.css" dosyalarında projemizde yazan linklerden indirip projemizin assers klasörüne ekleyip adreslerini değiştiriyoruz.welcome_message.php  viewimizin son hali aşagıdaki gibi olacaktır.
<!DOCTYPE html>

<html lang="en">

<head>





  <meta charset="utf-8">

  <title>Welcome to CodeIgniter</title>



<link rel="stylesheet" href="<?php echo base_url("assets/bootstrap.min.css")?>">


   <script src="<?php echo base_url("assets/jquery-2.2.3.min.js")?>"></script>

<script src="<?php echo base_url("assets/bootstrap.min.js")?>"></script>






   <script src="<?php echo base_url("assets/bootbox.min.js")?>"></script>



<link rel="stylesheet" href="<?php echo base_url("assets/jquery.fancybox.min.css")?>">

<script src="<?php echo base_url("assets/jquery.fancybox.js")?>"></script>



<script type="text/javascript">

  $(document).ready(function() {

        //https://github.com/fancyapps/fancyBox

         $(".fancybox").fancybox({





        });



          $(".removeBtn").click(function () {



        var dataURL = $(this).attr("dataURL");

        var  remove = bootbox.confirm("Silmek istiyor musunuz ?", function(result) {

            if (result == true) {

                window.location.href = dataURL;

            }

        });

    });



  });

  </script>





 

</head>

<body>



<div id="container">

 <h1>Merhaba Dünya!</h1>



<form role="form" action="<?php echo base_url("welcome/add_Kullanici") ?>" method="post">

 

  <input type="text" name="kullanici_adi"> <br>



  <input type="text" name="kullanici_soyadi"> <br>

 <button type="submit" >Gönder</button>



</form>

</div>

<br><br>

<div>

 



 <?php foreach ($kullnaicilar as $kbilgi) { 

   ?>

   <li>



 <a class="thumbnail fancybox" rel="ligthbox" href="<?php echo base_url("resim") . "/" .$kbilgi->resim_url ?>">

    <img

               width="80"

         src="<?php echo base_url("resim") . "/" .$kbilgi->resim_url ?>">



         </a>    

<div><?php echo $kbilgi->k_ad." ".$kbilgi->k_soyad  ?> <a class="removeBtn"  dataURL="<?php echo base_url("welcome/delete_kullanici/$kbilgi->id") ?>">Sil</a>| <a href="<?php echo base_url("welcome/update_kullaniciPage/$kbilgi->id") ?>">Güncelle</a>|

          <a href="<?php echo base_url("welcome/newresim/$kbilgi->id") ?>">Resim Ekle</a>

</div>

    

   </li>

    

<?php } ?>

</div>







</body>

</html>




Şimdi projemizden bir kişi silmek istediğimizde bir uyarı mesajı çıkmakta.


Umarım faydalı olmuştur siz direk projenin son halini buradan indirip kullana bilirsiniz.Ben ekleme sırasında karşılaştığım hataları ve çözümleri size göstermek için yazdım.Bir sonraki dersimizde görüşmek üzere.














26 Kasım 2017 Pazar

Codeigniter-fancybox kullanımı-14

FancyBox ile projenizde ki resimleri bir pencere ve slayt şeklinde gösterebilirsiniz.Bizde yapmış olduğumuz örneğe bu özelliği ekleyeceğiz.İlk olarak projemizde welcome_message.php viewimizdeki <head> tagları arasına alltaki script ve link bloglarını ekliyoruz.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://fancybox.net/js/fancybox-1.3.4/jquery.fancybox-1.3.4.js"></script>
<link rel="stylesheet" href="http://fancybox.net/js/fancybox-1.3.4/jquery.fancybox-1.3.4.css" media="screen">
<script type="text/javascript">
  $(document).ready(function() {  
        //https://github.com/fancyapps/fancyBox
         $(".fancybox").fancybox({
        });
  
  });
  </script>

Son olarak kişilerimizin resimlerini gösterdiğimiz img e link ekliyoruz.Aşağıdaki gibi ayarlıyoruz.
<a class="thumbnail fancybox" rel="ligthbox" href="<?php echo base_url("resim") . "/" .$kbilgi->resim_url ?>">
<img 
               width="80"
         src="<?php echo base_url("resim") . "/" .$kbilgi->resim_url ?>"> 
         </a> 

Evet kullanıcı resmine tıkladığımızda ki ekran görüntümüz.

Şimdi projemizin her defasında internete bağlanıp fancybox ı yüklemesini istemeyiz bunun için .js ve css kodlarınızı projemize indirip ekleyelim. style ve script linkerimizi kopyalıp tarayıcımıza açıp sağ tuşla tıklayıp farkı kaydet seceneğini secerek projemizin ana dizininde assets adı altında bi klasör oluşturup buraya ekliyoruz.Daha sonra projemizdeki css ve js linkerini kendi projemizdeki adreslerle aşağıdaki gibi değiştiriyoruz.

 <script src="<?php echo base_url("assets/jquery.min.js")?>"></script>
<script src="<?php echo base_url("assets/jquery.fancybox-1.3.4.js")?>"></script>
<link rel="stylesheet" href="<?php echo base_url("assets/jquery.fancybox-1.3.4.css")?>" media="screen">
<script type="text/javascript">
  $(document).ready(function() {  
        //https://github.com/fancyapps/fancyBox
         $(".fancybox").fancybox({
        });
  
  });
  </script>

Şimdi projemizi çalıştıralım.Projemizi çalıştırdığımızda hata mesajları ile karşılaştık.


Hataya baktığımızda bazı php uzantılı dosyaları bulamadığını görüyoruz.Bu resimleri eklemek için buradan dosyaları indiriyoruz ve hatada yazılan resimleri projemizdeki assets klasörüne kopyalıyoruz. Şimdi projemizi tekrar çalıştırıyoruz.Hatalarımız aşağıda gözüktüğü gibi gitti.

Umarım faydalı olmuştur.Projenin son halini buradan indirebilirsiniz.

25 Kasım 2017 Cumartesi

Php ile Yönetim Panelli Web Site Yapımı

Bu projeyi youtube da Emrah Yüksel hocamın anlattığı video serisindeki örneği izleyerek yaptım. Projede hatır template kullanarak php,pdo,mysq ile yönetim panelli web sitesini yaptık.Bu projede
 *Admin Paneli
      -Hakkımızda
      -Slider işlemleri
      -Dinamik menü işlemleri
      -İçerik işlemleri
      -Ayarlar Bölümü
             -Genel Ayarlar
              -İletişim Ayarları
              -Api  Ayarları
              -Sosyal Ayarlar
              -Mail Ayarları
*Site ön  yüzü
   -Menü
    -Ana Sayfa
    -Slider
    -İletişim Sayfası
   -Haberler
   -Haber detay
   -Sayfalama
   -Seo url
   -Seo Anahtar Kelime
   -Site içi arama
*Kullanıcı giriş

Sitenin Görselleri

             
          
             

                

                 


Sitenin kodlarına buradan ulaşabilirsiniz.


Codeigniter-File Uploading Class ve Resim Ekleme-Silme-13

Merhabalar ilk olarak resim bilgilerini tutmak için kullanıcı tablosuna resim_ad ve resim_url sütunlarını ekliyoruz.Resimlerin kaydedileceği "resim" diye bir klasör oluşturuyoruz.Bu klasörü projemizin "C:\xampp\htdocs\ci_blog" kısmına oluşturuyoruz.Tablomuzu aşşağıdaki gibi değiştiriyoruz.







listemizdeki kişilerin yanına Resim Ekle diye bir link ekleyip tıklantığında gideceği yeri  href="<?php echo base_url("welcome/newresim/$kbilgi->id") ?>" şeklinde yazalım.Burda welcome controlerı içindeki newresim metodunu çağırıyoruz ve parametre olarak kullanıcı id sini gönderiyoruz.Bu newresim metodu kısaca bizim dosyadan resim seçip ekle butonunun olduğu sayfayı yükleyip,view e kullanıcının id sini göndermektedir.


Resim ekle linkine tıklandığında dosyadan resim seçebileceği ve kaydet butonunun olduğu bir new_resim.php adında sayfa oluşturuyoruz.Görüntüsü aşağıdaki gibidir.Formun actionuna contolerımızdaki resim ekleme işlemini yapacağımız url yi yazıyoruz ve yine parametre olarak kullanıcı id sini gönderiyoruz.



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
</head>
<body>
<div id="container">
 <div >
  <form role="form" enctype="multipart/form-data" method="post" action="<?php echo base_url("welcome/add/$id");?>">
                    <label class="" for="first-name">Resim Seç<span class="required">*</span>
                    </label>
                    <input type="file"  required="required" name="resim" >
         <button type="submit" >Ekle</button>
                </form>
                </div>
</div>
</body>
</html>
----------

Şimdi welcome controler daki newresim metodumuzu yazalım.

   public function newresim($id){
            $data["id"] =$id;
            $this->load->view("new_resim",$data);
                  }


welcome controler daki  modelle bağlantı kurup resim ekleme işleminin yapıldığı add metodumuzu yazalım.

 public function add($id){
                //resim ekleneceği klasör
                   $config['upload_path']          = 'resim/';
                //eklenecek resimin tipi
                $config['allowed_types']        = 'gif|jpg|png';
                //ekleme işleminde resmin adını şifreli bir şekilde kaydetmek için
                 $config['encrypt_name']     = true;
                //upload kütüphanesini oluşturduğumuz confige göre yüklüyoruz
                $this->load->library('upload', $config);
//dosya yükleme işlemini yapıyoruz
                if ( ! $this->upload->do_upload("resim"))
                {
                  //eğer yükleme işlemi başarısız olursa 
                  //hata dizimizi oluşturuyoz ve hatamızı alıyoruz
                        $error = array('error' => $this->upload->display_errors());
                  //hataları yazdırıyotuz
                     print_r($error);
                }
                else{
    //resim yükleme işlemi başarılı olursa
     //yüklenen resmin blgilerini alıyoruz
              $data = array('upload_data' =>$this->upload->data());
              //yüklenen resmin adını alıyoruz
              $img_id = $data["upload_data"]['file_name'];
             //veri tabanına yükleme işlemi yapmak için gerekli bilgilerin olduğu diziyi oluşturuyoruz
              $date=array(
              "resim_ad"=>$_FILES["resim"]['name'],
              "resim_url"=>$img_id
                 );
//veritabanında kişinin resim bilgilerini güncellemek için metodumuzu çağırıyoruz.
                 $result=$this->kullanici_model->update(array("id"=>$id),$date);
//veritabanında güncelleme işlemi başarılı ise
                if($result){
                  //controlerımızın adını yazıp yönlendirme yapıyoruz
                 redirect("welcome");
                           }
                      else{
                //yükleme işlmei başarısız ise tekrar resim seçme sayfasını çağırıyoruz    
                   redirect("welcome/newresim/$id");
                         }
}
}

Son olarak eklenen resimleri kişimizin bilgileri ile birlikte gösterelim.Bunun için welcome_message.php viewimize img ekliyoruz.img in src sine de resim klasörümüzdeki yolu yazıyoruz.Kullanıcı bilgilerini zaten çektiğimiz için contorlerda herhangi bir değişiklik yapmamıza gerek yok.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Welcome to CodeIgniter</title>
</head>
<body>
<div id="container">
<h1>Merhaba Dünya!</h1>
<form role="form" action="<?php echo base_url("welcome/add_Kullanici") ?>" method="post">
  <input type="text" name="kullanici_adi"> <br>
  <input type="text" name="kullanici_soyadi"> <br>
 <button type="submit" >Gönder</button>
</form>
</div>
<br><br>
<div>
<?php foreach ($kullnaicilar as $kbilgi) {
?>
<li> <img 
               width="80"
         src="<?php echo base_url("resim") . "/" .$kbilgi->resim_url ?>">      
<div><?php echo $kbilgi->k_ad." ".$kbilgi->k_soyad  ?> <a href="<?php echo base_url("welcome/delete_kullanici/$kbilgi->id") ?>">Sil</a>| <a href="<?php echo base_url("welcome/update_kullaniciPage/$kbilgi->id") ?>">Güncelle</a>|
          <a href="<?php echo base_url("welcome/newresim/$kbilgi->id") ?>">Resim Ekle</a>
</div>
  </li>
<?php } ?>
</div>
</body>
</html>

Ekran çıktımız.



Son olarakte kişi silme işleminde klasöre kaydettiğimiz resmi de silelim.Bunun için delete_kullnaici metodunu aşağıdaki gibi değiştiriyoruz.

  public function delete_kullanici($id){
//ilk olarak silinecek kullanıcı id isne göre kullanıcıyı getiriyoruz
      $kullanici = $this->kullanici_model->get(array("id" => $id));
//kullanıcının resminin url sini alıyoruz
    $file_name = FCPATH ."resim/$kullanici->resim_url";
//resmmi unlink ile kaldırıyoruz
    if(unlink($file_name)){
//eğer resim dosyadan silindi ise veritabanından resmi siliyoruz
        $delete=$this->kullanici_model->delete(array("id"=>$id));
//veritabanından silme işlemi başarıle ile gerçekleştirilirse
if($delete){
       //gelen verileri tutacak sınıf nesnesi üretiyoruz
            $data=new stdClass();
            //gelen verileri nesnemize atıyoruz
           $data->kullnaicilar=$this->kullanici_model->getAll();
           //view i çağırıp gelen verileri view e gönderiyoruz
              $this->load->view('welcome_message',$data);
}
    }     
        }

Model ve controler sınıfımızın son halleri.

kullanici_model.php

<?php 
class kullanici_model extends CI_Model
{
//model yapıcı fonksiyonumuz
public function __construct()
    {
        parent::__construct();
   // ekleme yapacağımız tablomuzun adını burda ekliyoruz
    //her defasında yazmıyalım diye
        $this->table = "kullanici";
    }
//veritabanına ekleme işlemini yaptığımız metotumuz
//parametre olarak bir array alıyor
    public function insert($data=array()){
//ilk parametre eklenecek tablo,ikincisi eklenecek data
    $insert=$this->db->insert($this->table,$data);
    return $insert;
    }
     public function getAll(){
//veri tabanımızdan kullanici adlı tablodan tüm sonuçları getiren sorgu
        $select=$this->db->get($this->table)->result();
        return $select;
    }
//id ye göre kullanıcı getiren metot 
 public function get($where=array()){
//kullanıcıyı getiren satır sadece tek satır döndürür
$row = $this->db->where($where)->get($this->table)->row();
        return $row;
    }
     public function delete($where=array()){
//veri tabanından parametre olarak gelen id deki kişiyi silen kısım
//delete metodunda ilk parametre tablo ismi diğeri where kısmı kisi neye göre silinecekse o biz gelen id değerine göre sileceğiz.
        $delete=$this->db->delete($this->table,$where);
        return $delete;
    }
       public function update($where=array(),$data){
    //veri tabanından parametre olarak gelen id deki kişiyi güncelleyen kısım
     $this->db->where($where);
     $update=$this->db->update($this->table, $data); 
        return $update;
    }
}
 ?>


welcome.php contoler

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
//sınıfımızın yapıcı fonksiyonu
public function __construct()
    {
    //ilk önce üst sınıfın yapıcı fonksiyonu çağrılır
        parent::__construct();
        //model sınıfımızı yüklüyoruz.
        $this->load->model("kullanici_model");
    }
public function index()
{
//url ye controlerımızn ismi yazıldığında ilk olarak index  metodu çağrılır.
    //bir standat sınıf nesnesi oluşturup mddelden gelen değerleri atıyoruz.
    $data=new stdClass();
    $data->kullnaicilar=$this->kullanici_model->getAll();
    //viewimizi çağırıp modelden gelen değerleri viewimize gönderiyoruz
$this->load->view('welcome_message',$data);
}
   public function add_Kullanici(){
        $ad=$this->input->post("kullanici_adi");
        $soyad=$this->input->post("kullanici_soyadi");
//gelen verileri bir diziye aktarıyoruz "k_ad","k_soyad" veritabanımızdaki kolon adları
        $data=array("k_ad" => $ad ,
                    "k_soyad" => $soyad 
        );
//aldığımız değerleri kayıt için model sınıfımızın insert metodunu çağırıyoruz 
//gelen sonucu bir değişkene atıyoruz.
       $insert=$this->kullanici_model->insert($data);
//insert başarılı ise gerçekleşmişse viewimizi çağırıyoruz
      if($insert){
          $this->load->view("kullanici");
         }
        }
        public function delete_kullanici($id){
//ilk olarak silinecek kullanıcı id isne göre kullanıcıyı getiriyoruz
      $kullanici = $this->kullanici_model->get(array("id" => $id));
//kullanıcının resminin url sini alıyoruz
    $file_name = FCPATH ."resim/$kullanici->resim_url";
//resmmi unlink ile kaldırıyoruz
    if(unlink($file_name)){
//eğer resim dosyadan silindi ise veritabanından resmi siliyoruz
        $delete=$this->kullanici_model->delete(array("id"=>$id));
//veritabanından silme işlemi başarıle ile gerçekleştirilirse
if($delete){
       //gelen verileri tutacak sınıf nesnesi üretiyoruz
            $data=new stdClass();
            //gelen verileri nesnemize atıyoruz
           $data->kullnaicilar=$this->kullanici_model->getAll();
           //view i çağırıp gelen verileri view e gönderiyoruz
              $this->load->view('welcome_message',$data);
}
    }     
        }
            public function update_kullaniciPage($id){
              //güncelleyeceğimiz kişinini bilhgilerini tutmak için nesne oluşutruyoruz
              $data=new stdClass();
        //id sini bildiğimiz kişinini bilgileri getiriyoruz
            $data->kullnaicilar=$this->kullanici_model->get(array("id"=>$id));
      //aldığımız bilgileri güncelleme sayfasını yükleyip bilgileri view e gönderiyoruz
              $this->load->view('kullanici_guncellePage',$data);
            }
         public function update_kullanici($id){
          $ad=$this->input->post("kullanici_adi");
          $soyad=$this->input->post("kullanici_soyadi");
//gelen verileri bir diziye aktarıyoruz "k_ad","k_soyad" veritabanımızdaki kolon adları
          $data=array("k_ad" => $ad ,
                    "k_soyad" => $soyad 
           );
          $update=$this->kullanici_model->update(array("id"=>$id),$data);
//UPDATE işlemi başarılı ise kullanıcıları çekip viewimizi çağırıyoruz
           if($update){
            //gelen verileri tutacak sınıf nesnesi üretiyoruz
            $data=new stdClass();
            //gelen verileri nesnemize atıyoruz
           $data->kullnaicilar=$this->kullanici_model->getAll();
           //view i çağırıp gelen verileri view e gönderiyoruz
              $this->load->view('welcome_message',$data);
            }
        }
        public function newresim($id){
            $data["id"] =$id;
            $this->load->view("new_resim",$data);
                  }
        public function add($id){
                //resim ekleneceği klasör
                   $config['upload_path']          = 'resim/';
                //eklenecek resimin tipi
                $config['allowed_types']        = 'gif|jpg|png';
                //ekleme işleminde resmin adını şifreli bir şekilde kaydetmek için
                  $config['encrypt_name']     = true;
                //upload kütüphanesini oluşturduğumuz confige göre yüklüyoruz
                $this->load->library('upload', $config);
//dosya yükleme işlemini yapıyoruz
                if ( ! $this->upload->do_upload("resim"))
                {
                  //eğer yükleme işlemi başarısız olursa 
                  //hata dizimizi oluşturuyoz ve hatamızı alıyoruz
                        $error = array('error' => $this->upload->display_errors());
                  //hataları yazdırıyotuz
                     print_r($error);
                }
                else{
    //resim yükleme işlemi başarılı olursa
     //yüklenen resmin blgilerini alıyoruz
              $data = array('upload_data' =>$this->upload->data());
              //yüklenen resmin adını alıyoruz
              $img_id = $data["upload_data"]['file_name'];
             //veri tabanına yükleme işlemi yapmak için gerekli bilgilerin olduğu diziyi oluşturuyoruz
              $date=array(
              "resim_ad"=>$_FILES["resim"]['name'],
              "resim_url"=>$img_id
                 );
//veritabanında kişinin resim bilgilerini güncellemek için metodumuzu çağırıyoruz.
                 $result=$this->kullanici_model->update(array("id"=>$id),$date);
//veritabanında güncelleme işlemi başarılı ise
                if($result){
                  //controlerımızın adını yazıp yönlendirme yapıyoruz
                 redirect("welcome");
                           }
                      else{
                //yükleme işlmei başarısız ise tekrar resim seçme sayfasını çağırıyoruz    
                   redirect("welcome/newresim/$id");
                         }
}
}}
?>


Umarım faydalı olmuştur.Örneğimizin kodlarını buradan indirebilirsiniz.Bir sonraki dersimizde görüşmek üzere.

NodeJS-Socket.io Real Time Chat Uygulaması

Bu chat uygulmasını Node js ve socket.io kullanarak gerçekleştirdim.Veri tabanı olarak MySql kullandım.Kişiler Real time olarak birbirleriyl...