Giriş yapmadınız.

Duyuru

TÜRKÇE KİTAP DUYURUSU:
Laravel 5 : Laravel 5.1 Güzelliği (Türkçe)
Vue.js 2 : Vue.js 2 Majesteleri (Türkçe)

#1 02.01.2017 03:19:19

ersen
Üye
Kayıtlı: 11.05.2016
Mesajlar: 12

Laravel Küfür Filtresi, Belki İhtiyaç Olabilir

Web sitesi yaparken kullanıcıdan yorum, vb. alınacaksa veya forum gibi bir yapı var ise mutlaka küfürlü sözlere karşı önlem alınması bilinen bir gerçek. İnternette yaptığım araştırmada tam manasıyla küfür listesi ve iyi bir fonksiyon bulamadım. Bende bulduğum küfürlü kelimeleri bir liste haline getirdim. Ayrıca http://altayalp.com/dosyalar/php-filter … releme.pdf adresinde Filtreleme ile ilgili çok faydalı bir yazı buldum ve burada geçen fonksiyonu naçizane özelleştirdim. Php ve Laravel konusunda bu forumda çok kaliteli, bilgili arkadaşlar var onlar mutlaka eksik ve hatalarım varsa görecek ve daha da geliştireceklerdir.
Şimdi bu fonksiyon olarak oluşturduğum ve adına kufur wink dediğim fonksiyonun içinde kullandığım başka fonksiyonları da ekledimki kullanmak isteyenlerin işine yarasın. Ayrıca bu fonksiyonu service provider a ekleyip Laravel İçin Validation haline getirdim ve benim projemde çalışıyor.

Laravel 5.2 kullanıyorum

kufursuz Validation

namespace App\Providers;

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //Kufur Denetimi
        Validator::extend('kufursuz', function($attribute, $value, $parameters, $validator) {
            return $value == kufur($value);
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
       //
    }
}
function degistir($str) {
    $kufur =[
"salak",
"manyak",
"aptal",
    ];
    return str_replace($kufur,'****',$str);
}

function replaceSpace($string)
{
    $string = preg_replace("/\s+/", " ", $string);
    $string = trim($string);
    return $string;
}

function kucuk_yap($gelen){

    $gelen=str_replace('Ç', 'ç', $gelen);
    $gelen=str_replace('Ğ', 'ğ', $gelen);
    $gelen=str_replace('I', 'ı', $gelen);
    $gelen=str_replace('İ', 'i', $gelen);
    $gelen=str_replace('Ö', 'ö', $gelen);
    $gelen=str_replace('Ş', 'ş', $gelen);
    $gelen=str_replace('Ü', 'ü', $gelen);
    $gelen=strtolower($gelen);

    return $gelen;
}

function kufur($str){
    $hamDeger = $str;
    //Gelen parametre önce 2'den fazla olan boşluklardan  temizlenir, sonra tamamen küçük harflere çevrilir.
    $str = kucuk_yap(replaceSpace($str));
    //Parametre içinde nokta "." karakteri varsa temizlenir.
    $str = str_replace('.','',$str);
    //Küçük Harfe Çevrilen değer filtredeki kelimelerle karşılaştırılır.


    $kufursuz = filter_var($str, FILTER_CALLBACK, array('options'=>'degistir'));
    //eğer fonksiyona gönderilen değerde küfür varsa filtrelenir, yoksa aynen geri döndürülür
    if($kufursuz !== $str){ //Buradaki $str küçük harfe çevrilmiş.       
        return $kufursuz;
    }else{
        return $hamDeger;
    }
}

Validation olarak kullanmak için;

$veri = $veriler;
$kurallar = array(
                'foto'                          => 'required|image|max:2048|dimensions:min_width=100,min_height=100',
                'ad'                            => 'kufursuz|required|regex:/^[\pL\s\-]+$/u|min:3|max:25',
                'soyad'                         => 'kufursuz|required|regex:/^[\pL\s\-]+$/u|min:3|max:40',
               );
$messages = array(
                'foto.required'                 => 'Fotoğrafınızı eklemeyi unutmayınız.',
                'foto.image'                    => 'Yanlızca .bmp, .gif, .jpeg veya .png uzantılı resim dosyaları kabul edilir.',
                'foto.max'                      => 'Fotoğrafınız 2 MB (2048 KB)\'dan daha büyük olmamalıdır.',
                'foto.dimensions'               => 'Fotoğrafınız en az 100px genişliğinde ve yüksekliğinde olmalıdır.',
                'ad.kufursuz'                   => 'Lütfen Argo Kelimeler Kullanmayınız',
                'ad.required'                   => 'Adınızı boş bırakmayınız.',
                'ad.regex'                      => 'Adınız sadece harflerden oluşmalıdır.',
                'ad.min'                        => 'Adınız 3 harften az olamaz.',
                'ad.max'                        => 'Adınız 25 karakterden fazla olamaz.',
                'soyad.kufursuz'                => 'Lütfen Argo Kelimeler Kullanmayınız',
                'soyad.required'                => 'Soyadınızı boş bırakmayınız',
               );

$gecerlikci = Validator::make($veri, $kurallar, $messages);
            if($gecerlikci->fails()) {
              // Validasyondan geçemezse yapılacak işlemler.
               }

Umarım İşinize yarar. Herkese kolay gelsin

Son düzenleyen ersen (03.01.2017 03:19:01)

Çevrimdışı

Forum alt kısmı