<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Kayıt Formu</title> </head> <body> <p>Aşağıdaki formu doldurarak kayıt olabilirsiniz</p> <div id="container"> <form action="<?=base_url()?>Anasayfa/kaydet" method="post"> <table> <tr> <td>Kullanıcı Adı</td> <td><input type="text" name="kadi"></td> </tr> <tr> <td>Şifre</td> <td><input type="password" name="sifre"></td> </tr> <tr> <td>Eposta</td> <td><input type="text" name="eposta"></td> </tr> </table> <input type="submit" value="Kaydol"> </form> <div> </div> </body> </html>Yukarıdaki formda anlaşılmayacak pek bir şey yok. Base url kullanımında eğer sorun yaşarsanız Application/Config/autoload.php sayfasına gelin ve ;
$autoload['helper'] = array();bölümünü aşağıdaki gibi güncelleyin.
$autoload['helper'] = array('url');Burada url sınıfını kullanacağımızı belirtiyoruz. Şimdi bu formumuz bir controller ve bir metodun sayesinde bizi bir model dosyası yardımıyla kayıt işlemine sokacak. Anasayfa controller’i içine kaydet metodu çalışmış olacak. Şimdi Controller sayfamızın kodlarına bakalım. (Gerekli bütün açıklamalar mevcuttur.)
<?php defined('BASEPATH') OR exit('No direct script access allowed'); //Sayfaya doğrudan erişimi engeller function __construct() { parent::__construct(); } class Anasayfa extends CI_Controller { //index metodu sayfa ilk yüklendiğinde çalışacak metoddur. //Burada formun olduğu görünüm sayfasını yüklüyoruz. public function index(){ $this->load->view('anasayfa_view.php'); } public function kaydet() { /* Kaydet metodu ile formdan gelen verileri array şeklinde alıp birer değişkenlere atıyoruz. */ $form_data = array( 'name' => $this->input->post('kadi'), 'pass' => $this->input->post('sifre'), 'eposta' => $this->input->post('eposta') ); // Model sınıfımızı yüklüyoruz.(Onu şuan oluşturmadık.) $this->load->model('verimodel'); $sonuc = $this->verimodel->ekle($form_data); /* Sonuçlar yani gelen veriler verimodel adındaki bir model sayfasındaki ekle metodunu harekete geçirecek. Formdan gelen verileri de burada yolladık. */ if($sonuc=1){ echo'Kayıt Başarılı'; }else{ echo'Sorun var'; } } }Şimdi geriye bir model dosyası ve bir metod kaldı. Sayfamızı aşağıdaki gibi oluşturalım.
<?php class verimodel extends CI_Model{ function __construct(){ parent:: __construct(); $this->load->database(); //database sınıfını yüklüyoruz } /*formdan gelen verileri ekle fonksiyonu ile aldık artık ekleme işlemini yapabiliriz. */ function ekle($form_data){ $this->db->insert('users',$form_data); /*$this->db->insert('users',$form_data); bu kullanım şeklini bilmiyorsanız bir basicdb sınıfını araştırmanızda fayda var. */ } }Evet böylece bir kayıt işlemi gerçekleştirmiş olduk. Controller sayfasında ekle metoduna verileri yollarken $form_data değişkenini kullanmıştık.Burada da aldık ve işledik. Burada herhangi bir güvenlik önlemi alınmamıştır çünkü buna şimdilik gerek yok.