PHP Form verileri kontrol sınıfı ( bitmedi! )

YazarrAli

Çalışkan Üye
Katılım
10 Mar 2018
Mesajlar
134
Beğeniler
0
Merhaba arkadaşlar , bugünlerde geliştirmekte olduğum bir sistem için yazdığım form verileri kontrol sınıfını sizlerle paylaşmak istedim , bazen arşivimden bazı dosyaları elimden geldiğince seyrek olarak eklemeye çalışıyorum , bu sefer form verilerini kontrol etmemizi sağlayan GUMP sınıfını örnek alarak geliştirmekte olduğum bir sınıfı sizlerle paylaşacağım ;
Kod:
<?php  

include_once(__DIR__.DIRECTORY_SEPARATOR.'guvenlik.sinif.php'); 
Class form_verileri_sinifi { 
     
    /* Bu sınıf formlardan gelen , kullanıcının girdiği verileri kontrol eden sınıftır. 
       Kullanıcının bir email , bir url , bir değişkenin post etmesi sonucunda oluşacak 
       verileri kontrol eder süzgeçinden geçirir ve öyle işler , bu sayede olası hack'in önüne 
       geçilir. 
    */ 
    Public $raporlar; 
    private static $istenmeyen_kelimeler; 
    private static $bekletme_suresi; 
    private static $maksimum_deneme_sayisi; 
    private static $tekrar_deneme_suresi; 
    private static $girdi_kayit_suresi = 5*24*60*60; #24saat. 
    Public $kontrol_elemani_ismi; 
    Protected $deneme_bekletiliyor = 0; 
    Private static $dogru_yanlis_dizisi = array('1','true',true,1,'0','false',false,0,'evet','hayir','acik','kapali'); 
    Public $baslangic_parametreleri = array('form_etiket'=>'global', 
                                            'deneme_kontrolu'=>true, 
                                            'dogrulama_kontrolu'=>true, 
                                            'bekletme'=>true, 
                                            'tutulacak_girdiler'=>array('get'=>'form_id','post'=>'nick')); 
    Public $girdiler; 
     
    Public Function __construct(){ 
    Global $site_ayarlari; 
         
         
        #istenmeyen_kelimeler. 
        self::$istenmeyen_kelimeler = explode(',',$site_ayarlari->getir('istenmeyen_kelimeler')); 
         
        #her denemede bekletme süresi ( saniye bazında ) 
        self::$bekletme_suresi = $site_ayarlari->getir('g_bekletme_suresi'); 
        #maksimum_giris_denemesi. 
        self::$maksimum_deneme_sayisi = $site_ayarlari->getir('g_maksimum_deneme'); 
        #tekrar_deneme_süresi. ( dakika bazında ) 
        self::$tekrar_deneme_suresi   = $site_ayarlari->getir('g_tekrar_deneme_suresi')*60; 
         
         
    } 
     
    Public Function form_baslat($parametreler = array()){ 
         
        @session_start(); 
        if(count($parametreler) > 0){ 
             
            #yazılanları değiştiriyoruz. @o3karahan. 
            foreach($parametreler as $param_etiket => $param_deger){ 
                #değiştirme işlemi tamamlandı. 
                $this->baslangic_parametreleri[$param_etiket] = $param_deger; 
                 
            } 
             
            #tutulacak girdiler formda girilen önceki değeri tutmaya yarar., açılıp kapatılabilir. 
            $this->girdileri_tut($this->baslangic_parametreleri['form_etiket'],$this->baslangic_parametreleri['tutulacak_girdiler']); 
            $this->girdileri_yukle($this->baslangic_parametreleri['form_etiket']); 
        } 
         
    } 

/*  

   Girdiler ile ilgili bölüm başlıyor , bu bölüm başlatılan formun 
   kullanıcı tarafından girilen verilerini tutar , bu tutma sonucu  
   kullanıcı sayfayı yenilediğinde tekrar bir önceki girdilerine rahat 
   bir şekilde ulaşabilir. 
    
   $tutulacak_girdiler = array('post'=>'email'); 
   $site_formlari->form_baslat(array('form_etiket'=>'kayit','tutulacak_girdiler'=>$tutulacak_girdiler)); 
   $site_formlari->girdi('email','Lütfen email adresinizi giriniz!'); 
    
   Eğer kullanici daha önceden email adında bir post yolladıysa bu verileri tutar 
   daha sonrasında çağırdığınızda yazar , bulamaz ise yoksa etiketindeki 
   "Lütfen..." kelimesini bastırır. 
    
   $tutulacak_girdiler = array('email'=>'get','x'=>'get'); 
   $site_formlari->form_baslat(array('form_etiket'=>'kayit','tutulacak_girdiler'=>$tutulacak_girdiler)); 
   echo $site_formlari->girdi('email','Lütfen email adresinizi giriniz!'); 

*/     
    Private Function girdileri_tut($form_etiket = "global",$girdiler = array()){ 
    Global $site_guvenligi; 
    $form_etiket = $this->baslangic_parametreleri['form_etiket']; 
        if(count($girdiler) > 0){ 
            $cookie = ""; 
            foreach($girdiler as $girdi_etiket => $girdi_tipi){ 
            #Site güvenliği nesnemin içinde guvenli_post ve guvenli_get adında girdilerim var.     
                if(method_exists($site_guvenligi,'guvenli_'.$girdi_tipi)){ 
                #getiriyoruz.     
                    $girdi = call_user_func(array($site_guvenligi,'guvenli_'.$girdi_tipi), $girdi_etiket); 
                    #kayıt ediyorum. 
                    if($girdi !== false){ 
                        $cookie .= $girdi_etiket.'-'.$girdi.'.'; 
                    } 
                } 
                 
            } 
            #cookie ayarlıyoruz. 
            $form_cookie_etiket = $site_guvenligi->cookie_etiket_sifrele('F_'.$form_etiket.'_G'); 
            setcookie( $form_cookie_etiket , $site_guvenligi->cookie_sifrele($cookie), time() + self::$girdi_kayit_suresi , '/'); 
        } 
    } 
     
    Private Function girdileri_yukle($form_etiket = "global"){ 
    Global  $site_guvenligi; 
    $form_etiket = $this->baslangic_parametreleri['form_etiket']; 
    $form_cookie_etiket = $site_guvenligi->cookie_etiket_sifrele('F_'.$form_etiket.'_G'); 
        if(isset($_COOKIE[$form_cookie_etiket])){ 
            $parcalanacak     = $site_guvenligi->cookie_sifre_boz(htmlspecialchars_decode($_COOKIE[$form_cookie_etiket])); 
            $birinci_kademe = explode('.',$parcalanacak); 
             
            if(count($birinci_kademe) > 0){ 
                 
                foreach($birinci_kademe as $parcalanacak){ 
                     
                    $ikinci_kademe = explode('-',$parcalanacak); 
                    $girdi_etiket  = (!empty($ikinci_kademe[0]) ? $ikinci_kademe[0] : null); 
                    $girdi           = (!empty($ikinci_kademe[1]) ? $ikinci_kademe[1] : null); 
                    $this->girdiler[$form_etiket][$girdi_etiket] = $girdi; 
                     
                } 
                 
            } 
             
        } 
    } 
     
    Public Function girdi($girdi_etiket,$yoksa){ 
    $form_etiket = $this->baslangic_parametreleri['form_etiket']; 
        if(isset($this->girdiler[$form_etiket][$girdi_etiket])){ 
             
            return $this->girdiler[$form_etiket][$girdi_etiket]; 
             
        }else{ 
             
            return $yoksa; 
             
        } 
         
    } 
     
/*  

   Tekrar deneme bölümündeki komutlar ile kullanıcının forma girdiği  
   verileri tekrar denemesinin bir sınır şartı ile gerçekleşmesi sağlanır. 
   Bu sayede kullanıcının bir şifre kırma , bir sistem yorma amacı engellenmiş 
   olur , aynı zamanda bekletme süresi de bu komutların içinde yer alır. 
    
   $site_formlari->form_baslat(); 
   $site_formlari->deneme_kontrolu(array('get','email')); 
    
*/     
     
    Public Function deneme_kontrolu($deneme_etiket=array()){ 
    Global $site_guvenligi,$site_dili; 
     
        $deneme_tipi     = $deneme_etiket[0]; 
        $deneme_etiket  = $deneme_etiket[1]; 
         
        if(method_exists($site_guvenligi,'guvenli_'.$deneme_tipi)){ 
        #getiriyoruz.     
        $deneme = call_user_func(array($site_guvenligi,'guvenli_'.$deneme_tipi), $deneme_etiket); 
        #kayıt ediyorum. 
        if($deneme !== false){ 
             
            #SESSİON'lar önemli. 
            $yasak_suresi            = 0; 
            $deneme_sayisi             = (isset($_SESSION['g_deneme_sayisi']) ? $_SESSION['g_deneme_sayisi'] : 0); 
            $son_deneme_zamani         = (isset($_SESSION['g_s_deneme_zamani']) ? $_SESSION['g_s_deneme_zamani'] : null); 
            $deneme_hakki             = self::$maksimum_deneme_sayisi; 
            $tekrar_deneme_suresi     = self::$tekrar_deneme_suresi; 
            $bekletme_suresi        = self::$bekletme_suresi; 
            $bekletildi_mi            = 0; 
            #Mantıksal kontroller. 
            if($this->baslangic_parametreleri['bekletme']){ 
                #bekletme kontrolü. 
                if(!empty($son_deneme_zamani)){ 
                    $beklenilen_zaman = time() - $son_deneme_zamani; 
                     
                    if($beklenilen_zaman < $bekletme_suresi and !isset($_SESSION['yasak_suresi'])){ 
                    $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_bekletme_suresi',array('s'=>$bekletme_suresi)),'ilkibuyuk');     
                        $this->raporlar[] = array( 
                         
                        'rapor_durumu' => 0, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => 'deneme', 
                        'rapor_yazisi' => $hata_yazisi 
                         
                        ); 
                        $bekletildi_mi = 1; 
                    } 
                     
                     
                } 
                 
            } 
             
            #Mantıksal kontroller. 
            if($this->baslangic_parametreleri['deneme_kontrolu'] and !$bekletildi_mi){ 
                if($deneme_sayisi == $deneme_hakki){ 
                     
                    #Yasak süresi bekirleniyor. 
                    $yasak_suresi = time() + $tekrar_deneme_suresi; 
                    $_SESSION['yasak_suresi'] = $yasak_suresi; 
                    $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_deneme_yasaklandi',array('h'=>$deneme_hakki,'s'=>$bekletme_suresi)),'ilkibuyuk'); 
                        $this->raporlar[] = array( 
                         
                        'rapor_durumu' => 0, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_etiket' => __FUNCTION__, 
                        'rapor_yazisi' => $hata_yazisi 
                         
                        ); 
                     
                } 
                if(isset($_SESSION['yasak_suresi'])){ 
                $kalan_sure = $_SESSION['yasak_suresi'] - time(); 
                 
                    if($kalan_sure > 0 and ($deneme_sayisi !== $deneme_hakki)){ 
                         
                        $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_deneme_yasaklandi',array('h'=>$deneme_hakki,'s'=>floor($kalan_sure/60))),'ilkibuyuk'); 
                        $this->raporlar[] = array( 
                             
                            'rapor_durumu' => 0, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                            'rapor_fonsiyon' => __FUNCTION__, 
                            'rapor_etiket' => 'deneme', 
                            'rapor_yazisi' => $hata_yazisi 
                             
                            ); 
                             
                        $this->deneme_bekletiliyor = 1; 
                         
                    }else{ 
                    #resetliyoruz. 
                        unset($_SESSION['yasak_suresi']); 
                        $_SESSION['g_deneme_sayisi'] = 0; 
                         
                    } 
                     
                } 
             
            } 
             
            #Son işlemler. 
            $_SESSION['g_s_deneme_zamani'] = time(); 
            if(isset($_SESSION['g_deneme_sayisi'])){ 
                $_SESSION['g_deneme_sayisi'] = $_SESSION['g_deneme_sayisi']+1; 
            }else{ 
                 
                $_SESSION['g_deneme_sayisi'] = 1; 
                 
            } 
        } 
    } 
} 


/*      
    Filtre ve kontrol_et komutları asıl elemanlardır , bu komutlar sayesinde form girdileri_tut 
    bir süzgeçten geçirilir , bu süzgecin sonrasında raporlara bu durum eklenir. Eğer filtreleme 
    ve kontrol olumlu ise raporlar 3. statüde olumlu bir şekilde eklenir , aksi halde olumsuz 
    sonuçlar raporlara işlenir. Ya bismillah! 
    $parametreler = dizi. #GUMP'a benzetildi. 
    $veri = get_etiket , post_etiket; 
*/ 

    Public Function kontrol_et($p_g=array(),$parametreler=array()){ 
     
        if(!$this->deneme_bekletiliyor){ 
            #Parçalama işlemi yapıyorum. 
            foreach($parametreler as $etiket => $islemler){ 
                $this->kontrol_elemani_etiketi = $etiket; 
                $this->kontrol_elemani_ismi = $islemler[0]; 
                $birinci_kademe = explode('|',$islemler[1]); 
                foreach($birinci_kademe as $islem){ 
                $parametre = null;     
                 
                if(strpos($islem,':')){ 
                    #Kontrol parametresi varsa. 
                    $ikinci_kademe = explode(':',$islem); 
                    $islem = $ikinci_kademe[0]; 
                    $parametre = $ikinci_kademe[1]; 
                } 
                         
                if(method_exists($this,'kontrol_'.$islem)){ 
                #getiriyoruz.     
                $kontrol = call_user_func_array(array($this,'kontrol_'.$islem),array($p_g,$etiket,$parametre)); 
                }     
                     
                } 
                 
                 
            } 
        }     
    } 
     
    Protected Function kontrol_sifre($p_g,$etiket,$parametre="sayi_buyukharf_kucukharf_uzunluksarti"){ 
    Global $site_dili; 
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        $regex = "/^"; 
        $parametreler = explode('_',$parametre); 
        foreach($parametreler as $parametre){ 
            Switch($parametre){ 
                case 'buyukharf': 
                $regex .= "(?=.*[A-Z])"; 
                break; 
                 
                case 'kucukharf': 
                $regex .= "(?=.*[a-z])"; 
                break; 
                 
                case 'sayi': 
                $regex .= "(?=.*\d)"; 
                break; 
                 
                case 'ozelkarakter': 
                $regex .= "(?=.*[@#\-_$%^&+=§!\?])"; 
                break; 
                 
                case 'uzunluksarti': 
                $regex .= "(?=.*[A-Z])[0-9A-Za-z@#\-_$%^&+=§!\?]{6,12}"; 
                break; 
                 
            } 
             
        } 
         
         
        $regex .="$/"; 
        if(!preg_match($regex,$p_g[$etiket])){ 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
        /* 
            Aşağıdaki regex kullanılacak; 
            ^                                        # start of line 
            (?=(?:.*[A-Z]){2,})                      # 2 upper case letters 
            (?=(?:.*[a-z]){2,})                      # 2 lower case letters 
            (?=( ?:.*\d){2,})                         # 2 digits 
            (?=(?:.*[!@#$%^&*()\-_=+{};:,<.>]){2,})  # 2 special characters 
            (.{8,})                                  # length 8 or more 
            $                                        # EOL  
         
         
         
        */ 
    } 
    Protected Function kontrol_isim($p_g,$etiket,$parametre=null){ 
    Global $site_dili;     
     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        $regex = "/^([a-zÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖßÙÚÛÜ***221;àáâãäåçèéêëìíîïñ***240;òóôõöùúûü***253;ÿ '-])+$/i"; 
        if (!preg_match($regex, $p_g[$etiket]) !== false) { 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
         
    } 
     
    Protected Function kontrol_ipadresi($p_g,$etiket,$parametre=null){ 
    Global $site_dili;     
     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        if (!filter_var($p_g[$etiket], FILTER_VALIDATE_IP)) { 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
         
    } 
     
    Protected Function kontrol_dogruyanlis($p_g,$etiket,$parametre=null){ 
    Global $site_dili;     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket]) && $p_g[$etiket] !== 0) { 
            return; 
        } 
        if (in_array($p_g[$etiket], self::$dogru_yanlis_dizisi, true )) { 
            return; 
        } 
         
        $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
        $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
         
    } 
     
    Protected Function kontrol_sayi($p_g,$etiket,$parametre=null){ 
    Global $site_dili;     
     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        if (!filter_var($p_g[$etiket], FILTER_VALIDATE_INT)) { 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
         
    } 
     
    Protected Function kontrol_url($p_g,$etiket,$parametre=null){ 
    Global $site_dili;     
     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        if (!filter_var($p_g[$etiket], FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED | FILTER_FLAG_PATH_REQUIRED)) { 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
         
    } 
    Protected Function kontrol_email($p_g,$etiket,$parametre=null){ 
    Global $site_dili;     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        if (!filter_var($p_g[$etiket], FILTER_VALIDATE_EMAIL)) { 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
         
    } 
    Protected Function kontrol_telefonnumarasi($p_g,$etiket,$parametre = null){ 
    Global $site_dili; 
     
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
        $regex = '/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i'; 
        if (!preg_match($regex, $p_g[$etiket])) { 
        $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kabuledilemez',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
        } 
         
    } 
     
    Protected Function kontrol_kullanicietiket($p_g,$etiket,$parametre = null){ 
    Global $site_dili; 
        if (!isset($p_g[$etiket]) || empty($p_g[$etiket])) { 
            return; 
        } 
         
        if(!preg_match('/^[A-Za-z][A-Za-z0-9_-]{5,14}$/',$p_g[$etiket])){ 
             
            $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_kullanicietiket',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
            $this->raporlar[] = array( 
                             
                        'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                        'rapor_fonsiyon' => __FUNCTION__, 
                        'rapor_etiket' => $etiket, 
                        'rapor_yazisi' => $hata_yazisi 
                             
            ); 
             
        } 
         
    } 
     
    Protected Function kontrol_gerekli($p_g,$etiket,$parametre = null){ 
    Global $site_dili; 
        /* Değerlerin 0 olması , 0.0 ,ve false olması mümkün. */ 
        if (isset($p_g[$etiket]) && ($p_g[$etiket] === false || $p_g[$etiket] === 0 || $p_g[$etiket] === 0.0 || $p_g[$etiket] === '0' || !empty($p_g[$etiket]))) { 
            return true; 
        } 
        $hata_yazisi = $site_dili->hazirla($site_dili->getir('f_v_gerekli',array('i'=>$this->kontrol_elemani_ismi)),'ilkibuyuk'); 
        $this->raporlar[] = array( 
                             
                            'rapor_durumu' => 1, #0 kritik , 1 kontrol. 2. filtre 3.olumlu 
                            'rapor_fonsiyon' => __FUNCTION__, 
                            'rapor_etiket' => $etiket, 
                            'rapor_yazisi' => $hata_yazisi 
                             
        ); 
         
    } 

/*  

    Rapor komutları , fonksiyonların içinde oluşan kontrol sonuçlarının , hataların ve olumlu sonuçlarının 
    rapor edildiği bir fonksiyondur. rapor_et komutu ile işlem sonucu rapor edilir rapor komutu ile ise işlemlerin 
    sonuçları alınır. Bu sonuca göre işlem yapılır veyahut yapılmaz. 

*/     

     

} 

/* Kullanımı. 
$site_formlari = new form_verileri_sinifi(); 
$site_formlari->form_baslat(array('deneme_kontrolu'=>true)); 
$site_formlari->deneme_kontrolu(array('get','user_email')); 
$array = array( 

            'user_email'=>array('Email','gerekli|email'), 
            'user_name'=>array('Ad','gerekli|kullanicietiket|maksimum_uzunluk:20|minimum_uzunluk:5'), 
            'user_password'=>array('Şifre','gerekli|sifre:sayi_buyukharf_kucukharf_ozelkarakter_uzunluksarti'), 
            'user_phone'=>array('telefon numarası','gerekli|telefonnumarasi'), 
            'user_url'=>array('website adresi','gerekli|url'), 
            'user_okul'=>array('okul_id','gerekli|sayi'), 
            'user_var'=>array('varmı','gerekli|sayi|dogruyanlis') 
             
             
            ); 
$site_formlari->kontrol_et($_GET,$array); 
var_dump($site_formlari->raporlar); 
*/ 

?>
En sonda örnek bir kullanım yer almakta bu kullanımda kullanıcının get değerlerine göre bir kontrol yapıyor $_POST değerlerine göre de yapılabilir burada bir form başlatıyoruz , verileri tutabiliyoruz , girdileri_tut ile form verilerini bir COOKIE olarka kayıt edip sayfa yenilendiğinde kalmasını sağlıyor , bunun haricinde deneme ve bekletme kontrolleri var , birçok kontrol komutu var ve çoğaltmaya çalışıyorum , şu anda sorunsuz gözüküyor fakat sizlerinde kontrol etmesini , açıklar varsa söylemesini isterim , ayrıca son olarak tüm raporlar $site_formlari->raporlar değişkeninde toplanıyor , bunuda bir rapor fonksiyonuna dökmeyi planlıyorum , ayrıca sınıf içinde projede kullandığım site_guvenligi ve site_dili sınıflarını kullanmaktayım bunlar yüzünden kullanmanız biraz sıkıntı olabilir biraz kodtan anlayan birisi $site_guvenliği adı altında bir nesne oluşturup guvenli_post ve guvenli_get adı altında 2 fonksiyon altına return yapabilir. site_dili nesnesi için ise $site_dili->hazirla , $site_dili->getir komutlarını yine return olarak yapabilir ve hataları fixleyebilir , sınıfın bitmiş halini de paylaşmaya çalışacağım eğer tatmin olursam , bu kodu $site_dili ve $site_guvenliği sınıflarından bağımsız çalışmaya hazır hale getireceğim.
 

Şu anda bu konu'yu okuyan kullanıcılar

Benzer konular

Üst