• 29-04-2010, 17:15:16
    #1
    Konuma girmeden önce herkeze hayırlı günler diliyorum.

    Kullandığım bir script var ve bu scripte özel karakterli kayıt olunabilmesi için

    [a-zA-Z0-9_/-] kodunu [a-zA-Z0-9$_.+!*,;/?:@&~=%{-ç-ğ-ş-?] olarak değiştirdim.

    Fakat şöyle bir sorun var. Eklediğim kod ile kayıt olurlar iken boşlukta kullanabiliyorlar bu yüzdende hata ile karşılaşılıyor. Eklediğim kodtan neyi eksilterek boşluk kullanımını engelliyebilirim. Yardımcı olabilirseniz çok memnun kalacağım.
  • 29-04-2010, 17:16:11
    #2
    Üyeliği durduruldu
    Siz tam olarak hangi karakterlerin kullanılmasını istiyorsunuz ?
  • 29-04-2010, 17:22:43
    #3
    Eklediğim kod sayesinde bütün karakterler kullanılıyor fakat ben Boşluk kullanılmasını istemiyorum. wizi emre şeklinde kabul etmiyecek illaki wizi_emre wizi-emre olarak kabul edecek.
  • 29-04-2010, 17:26:26
    #4
    Eposta Aktivasyonu Gerekmekte
    Örnek 5 - Boşluk ayıklama
    Bu örnekte dizgedeki fazladan boşluklar temizlenmektedir.


    <?php
    $str
    = 'foo o';
    $str = preg_replace('/\s\s+/', ' ', $str);
    // 'foo o' basılacak
    echo $str;
    ?>


    http://www.php.net/manual/tr/function.preg-replace.php
  • 29-04-2010, 17:26:32
    #5
    Üyeliği durduruldu
    Bütün karakterleri kullandırıp sadece boşluk kullandırmayacaksanız.

    if(preg_match('| |',$ka)) echo 'Boşluk kullanmayın';
    Bunu kullanabilirsiniz
  • 29-04-2010, 17:42:03
    #6
    Kusura bakmayın fazla bilgim yok ama bu diziye bu şekilde mi eklenecek kod.

    	  // MAKE SURE USERNAME IS ALPHANUMERIC
    	  if( ereg('[a-zA-Z0-9$_.+!*,;/?:@&~=%{-ç-ğ-ş-?]', $username) && $setting['setting_username'] )
     	  if(preg_match('| |',$ka)) echo 'Boşluk kullanmayın';  
         $this->is_error = 694;
  • 29-04-2010, 18:28:04
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşım ereg kullanma ilerde sıkıntı yaşarsın, alışkanlıktan bazen unutup yazıyoruz bizde

    $m = 'ilaşp9ğo0 *93*,<<>.$#½&%{}=klş ğü  "\ \'2';
    $m = preg_replace('/[\s\t\'\"]/si','',$m);
    echo $m;
    kullanılmasını istemediğin karakterleri [] arasına eklersin
  • 29-04-2010, 18:54:48
    #8
    [a-zA-Z0-9$_.+!*,;/?:@&~=%{-ç-ğ-ş-?] kodunda yazım hatası buldum.

    Bu yüzden de sistemde açık gerçekleşiyor isteyen istediği karakter ile kayıt oluyor. Bu kod

    [^A-Za-z0-9_.+!*,;/?:@&~=%] şeklinde eklendiğinde [ ] arasına istediğimizi yazdığımızda sisetm bu karakteri kabul etmiş oluyor. Eklenmeyen karakterler kabul edilmiyor.
  • 29-04-2010, 20:15:35
    #9
    wizi_emre adlı üyeden alıntı: mesajı görüntüle
    [a-zA-Z0-9$_.+!*,;/?:@&~=%{-ç-ğ-ş-?] kodunda yazım hatası buldum.

    Bu yüzden de sistemde açık gerçekleşiyor isteyen istediği karakter ile kayıt oluyor. Bu kod

    [^A-Za-z0-9_.+!*,;/?:@&~=%] şeklinde eklendiğinde [ ] arasına istediğimizi yazdığımızda sisetm bu karakteri kabul etmiş oluyor. Eklenmeyen karakterler kabul edilmiyor.
    Arkadaşım bir üstteki mesajımı okudun mu ?

    ^iÅŸareti ile baÅŸlayan pattern bu karakterler olmadan demektir.

    preg_replace('/[\s\t\'\"]/si','',$m);
    demek $m değişkeninde ki boşluk ve tab karakterlerini sil demektir. preg_replace adı üzerinde replace ederken, preg_match verilen patterne göre sonuç olup olmadığını kontrol eder.