Webmaster Forumu

Geri git   Webmaster Forumu > Webmaster Genel > Programlama > PHP

PHP PHP & PHP Hızlandırıcılar


Cevapla
 
LinkBack Seçenekler Stil
  #1 (permalink)   eTicaret 
Alt 2009-04-14, 20:30
murdock - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Mar 2005
Mesajlar: 871
eTicaret: %100/26
Rep Puanı: 1
murdock will become famous soon enough
Standart Yasak kelimeleri tam anlamıyla engelleme

Merhaba, benim site içi mesajlaşma sistemimde küfür argo reklam gibi yasak kelmeleri mesaj atarken engellemek istiyorum.Birçok yol denedim ama üyeler mesela salak kelimesini s a l a k veya SALAK veya s-a-l-a-k gibi kullanıyor bu yüzdende engelin bir faydası olmuyor mağlesef.Hem bu olayı rahatlıkla çözebileceğim hemde onlara uyarı çıkarabileceğim şekilde bir kod istiyorum.

irc serverlarda mesela s*a*l*a*k şeklinde filtreye ekleyince biri s-a-l-a-k olarakda eklese engelliyor ama bunu phpde bulamadım.

gönderilen yazı $txt den alınacak ve yasak kelime varsa arada boşluk tire vs.. veya büyük küçük s-A-lak gibide olsa engelleyecek bir filtre düzenlenebilirmi? Bu konuda bilgili arkadaşlar yardım edebilirse sevinirim.
Alıntı ile Cevapla
Ucuz ürün ihaleleri
  #2 (permalink)   eTicaret 
Alt 2009-04-14, 21:34
Angelo - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2004
Nerden: AZ
Mesajlar: 4.619
eTicaret: %100/11
Rep Puanı: 120
Angelo will become famous soon enoughAngelo will become famous soon enough
Standart

PHP- Kodu:
$words explode(' ',$txt);
$c count($words) - 1;

$filter = array('-','_','*');
$change = array('','','');
$ban = array('salak','dombili');

  for (
$i=0$i<=$c$i++) {
  
$current_word str_replace($filter,$change,$words[$i]);
   
     foreach (
$ban as $banwords) {
       if (
eregi($banwords,$current_word)) {
       
$words[$i] = '******';
       break;
       }
     }

   }

$words implode(' ',$words);
echo 
$words
Filtre çoğaltılabilir. Bu metodda space filtreye eklenemez, yani "sal ak" yakalanmayacaktır.
S*alak d-ombili gibi kullanımları yakalar.

Space için daha gelişmiş regular expression kullanımı gerekli.
__________________
peace love union respect
Alıntı ile Cevapla
  #3 (permalink)   eTicaret 
Alt 2009-04-14, 22:15
murdock - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Mar 2005
Mesajlar: 871
eTicaret: %100/26
Rep Puanı: 1
murdock will become famous soon enough
Standart

Ben aşağıdakini geliştirdim uğraşıp.Sanırım bu kodla filtereye eklediğim tüm kelimeleri filtreyebilicem.Eksik veya hatam varmı?


PHP- Kodu:
$text "ya niye salaklık yapıyorsun";
$url=strtolower($text);

$url str_replace('Ö''o'$url);
$url str_replace('İ''i'$url);
$url str_replace('Ü''u'$url);
$url str_replace('Ğ''g'$url);
$url str_replace('Ş''s'$url);
$url str_replace('Ç''c'$url);

$url str_replace('ö''o'$url);
$url str_replace('ı''i'$url);
$url str_replace('ü''u'$url);
$url str_replace('ğ''g'$url);
$url str_replace('ş''s'$url);
$url str_replace('ç''c'$url);

$url str_replace(' '''$url);
$url str_replace('-'''$url);
$url str_replace('.'''$url);
$url str_replace('_'''$url);
$url str_replace('/'''$url);
$url str_replace('+'''$url);
$url str_replace('"'''$url);
$url str_replace(','''$url);
$url str_replace('*'''$url);


$yasak=array("salak""aptal""esek");


for(
$i=0$i<count($yasak); $i++) {
if (
stristr($url$yasak[$i])) { 

$hata "Mesajınızda yasaklanmış bir kelime bulundu!<br>Argo,reklam vb. rahatsız edici mesajlar oyundan uzaklaştırılma sebebidir.";

}else{
}
 

if(
$hata != ""){

    
$tim time() + 600;

echo 
"<font color=red>$hata<br><br>10 dakika ceza aldınız.10 dakika boyunca mesaj gönderemeyeceksiniz.</font>";
exit();

Alıntı ile Cevapla
  #4 (permalink)   eTicaret 
Alt 2009-04-14, 22:42
Angelo - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2004
Nerden: AZ
Mesajlar: 4.619
eTicaret: %100/11
Rep Puanı: 120
Angelo will become famous soon enoughAngelo will become famous soon enough
Standart

Doğru ama beklediğin sonuç ne, kelimeyi sansürleyip geri kalanını bastırmak üzere düşündüm ben. Tümüyle mesajı engelleyeceksen zaten sorun yok, spaceleri, sembolleri kaldirip karsilastirma yaparsin, match ederse engellersin. Sen bosluklari bastan kaldirdigin icin cumleyi tekrar kisinin yazdigi sekle geri donduremezsin.
__________________
peace love union respect
Alıntı ile Cevapla
  #5 (permalink)   eTicaret 
Alt 2009-04-14, 23:00
murdock - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Mar 2005
Mesajlar: 871
eTicaret: %100/26
Rep Puanı: 1
murdock will become famous soon enough
Standart

haklısın belki tam anlatamadım.istediğim o kelimeyi silip göndermesin olayı değil.tam anlamıyla belirttiğim argoları yakalayıp göndermesini engellesin.önceden kısmen engelliyordu ama şöyle bir durum çıkıyordu ve yine sıkıntı yaşanıyordu.. adam yazmış mesela *** çocuğu.. sonra şikayet geliyor anlıyor tabi.neyse hallettim sanırım yinede teşekkür ederim yardımın için.
Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
ADSL modemde istenmeyen kelimeleri engelleme aves Ağ Network 3 2009-04-09 22:20
Yeni Reklam Kelimeleri beceriksiz_acemi Google Adsense 2 2008-03-13 11:25
insanizm.com / Tam anlamıyla bir kültür sitesi insanizm.com Yeni Site Tanıtımları 6 2005-07-05 14:05


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 14:42 .


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.3.2
iyinet
Hosting sponsor Netinternet Datacenter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241