|
Gereksiz büyük harfleri engelleme..
(gösterim sayısı: 580)
|
| Yazan |
Konu içeriği |
|
esoyun
[Hakan]
Kayıt Tarihi: 05.07.2008
İleti Sayısı: 29
Şehir: Eskişehir
Durum: Forumda Değil
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Konu Tarihi: 12.07.2008- 13:06
Bu eklentide, Mesaj içeriğinde veya mesaj başlığında gereksiz kullanılan büyük harfleri engelleme amaçlanmıştır.
Değişiklikleri yapmadan evvel, değişiklik yapılacak dosyalarınızın yedeklerini alınız.
Değişiklik yapılacak dosyalar,
gerecler.php
mesaj_yaz_yap.php
Önce gerecler.php dosyasını açın ve en altta,
bulun ve alttaki kod ile değiştirin..
function BuyukHarfKontrolEt($yazi) {
$sinir = 30; // %30 oranında büyük harfe izin verir.Fazlasında hepsini küçük harfe dönüştürür.İstediğiniz oranı yazabilirsiniz...
$turkce_buyuk_harflerin_kucukleri = array('İ'=>'i', 'I'=>'ı', 'Ş'=>'ş', 'Ü'=>'ü', 'Ö'=>'ö', 'Ğ'=>'ğ', 'Ç'=>'ç');
preg_match_all("([a-z])",$yazi, $sayi,PREG_SET_ORDER);
$yazi_karakter = strlen($yazi);
$bulunan_kucuk_harf = count($sayi);
$yuzde = ceil(($bulunan_kucuk_harf*100)/$yazi_karakter);
if ($yuzde>$sinir) {
return $yazi;
} else {
$yazi = strtr($yazi, $turkce_buyuk_harflerin_kucukleri);
$yazi = strtolower($yazi);
$first_space = '';
$first_word = '';
$first_space = strpos($yazi, ' ');
$first_word = substr($$yazi, 0, $first_space - 1);
$yazi = str_replace($first_word, ucfirst($first_word), $yazi);
return $yazi;
}
}
?>
sonra dosyayı kaydedip kapatın.
Şimdi, mesaj_yaz_yap.php dosyasını açın ve,
// ZARARLI KODLAR TEMİZLENİYOR //
bulun ve hemen bir satır altına,
if ($_POST['mesaj_baslik'] == '') $_POST['mesaj_baslik'] = 'Cvp:';
$_POST['mesaj_baslik'] = BuyukHarfKontrolEt($_POST['mesaj_baslik']);
$_POST['mesaj_icerik'] = BuyukHarfKontrolEt($_POST['mesaj_icerik']);
ekleyin, dosyayı kaydedin ve kapatın.
Bu yaptıklarımız sadece foruma gönderilen ilk mesajlar içindir.İsterseniz bunu özel mesajlar için de kullanabilirsiniz.
|
www.esoyun.com
__________________ Bu ileti en son esoyun
tarafından 12.07.2008- 17:09 tarihinde, toplamda 6 kez değiştirilmiştir.
|
|
Cvp:
Cevap: 1
|
| Yazan |
Cevap içeriği |
|

PRNRMLWBMSTR
[PaRaNoRMaLWeBMasTeR]
Kayıt Tarihi: 06.06.2008
İleti Sayısı: 222
Şehir: İstanbul
Durum: Forumda Değil
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 14:14
hmm güzel eklenti
teşekkürler
|
|
|
|
Cvp:
Cevap: 2
|
| Yazan |
Cevap içeriği |
|

yonetici
[Adem YILMAZ]
phpKF Ekip Başkanı
Kayıt Tarihi: 30.11.2006
İleti Sayısı: 1.468
Şehir: İstanbul
Durum: Gizli
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 14:17
Teşekkürler, fakat bu kodları denediniz mi, şu hatayı veriyor:
Warning: Division by zero in C:\AppServ\www\phpkf\gerecler.php on line 295
Ayrıca // YENİ BAŞLIK VERİTABANINA GİRİLİYOR // altına eklendiğinde sadece yeni başlık açıldığında bu geçerli olur, cevaplara uygulanmaz.
hem yeni konu açarken, hem de cevap yazarken işlemesi için
// ZARARLI KODLAR TEMİZLENİYOR //
altına girilmesi gerekiyor.
Ve mesajların değiştirilme olasılığını da düşünerek, aynı kodun mesaj_degistir.php dosyasında da uygulanması lazım.
|
|
|
|
Cvp:
Cevap: 3
|
| Yazan |
Cevap içeriği |
|

esoyun
[Hakan]
Kayıt Tarihi: 05.07.2008
İleti Sayısı: 29
Şehir: Eskişehir
Durum: Forumda Değil
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 14:34
|
|
www.esoyun.com
|
|
Cvp:
Cevap: 4
|
| Yazan |
Cevap içeriği |
|

PRNRMLWBMSTR
[PaRaNoRMaLWeBMasTeR]
Kayıt Tarihi: 06.06.2008
İleti Sayısı: 222
Şehir: İstanbul
Durum: Forumda Değil
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 15:00
ewt şimdi bende denedim bendede aynı hatayı verdi ..
|
|
|
|
Cvp:
Cevap: 5
|
| Yazan |
Cevap içeriği |
|

esoyun
[Hakan]
Kayıt Tarihi: 05.07.2008
İleti Sayısı: 29
Şehir: Eskişehir
Durum: Forumda Değil
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 15:14
Sorun şu ki bende hata vermiyor.Zaten hatayı bende verse buraya baştan eklemezdim.
Benim forumumda, büyük harf kontrolünü sadece konu açılırken yaptırıyorum ve hiçbir sorunla karşılaşmadım.
Belki kendime yaptığım diğer modlarla alakası olabilir diye, sıfırdan bir Phpkf kurup kendi anlattığım şekilde değişikliği yaptım ve gene hiçbir sorunla karşılaşmadım.
Gayet güzel çalışıyor.
Adem beyin bahsettiği hatada,
Warning: Division by zero in C:\AppServ\www\phpkf\gerecler.php on line 295
bu 295. satırı görebilirsek belki hatayı çözebiliriz.Bende ki 295. satır ile sizinki muhtemelen aynı değildir.
|
www.esoyun.com
__________________ Bu ileti en son esoyun
tarafından 12.07.2008- 15:15 tarihinde, toplamda 1 kez değiştirilmiştir.
|
|
Cvp:
Cevap: 6
|
| Yazan |
Cevap içeriği |
|

yonetici
[Adem YILMAZ]
phpKF Ekip Başkanı
Kayıt Tarihi: 30.11.2006
İleti Sayısı: 1.468
Şehir: İstanbul
Durum: Gizli
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 15:51
Hatadaki satırda şu var:
$yuzde = ceil(($bulunan_kucuk_harf*100)/$yazi_karakter);
Ama esas sorun $yazi_karakter değişkeninden gelen veride.
|
__________________ Bu ileti en son yonetici
tarafından 12.07.2008- 15:54 tarihinde, toplamda 1 kez değiştirilmiştir.
|
|
Cvp:
Cevap: 7
|
| Yazan |
Cevap içeriği |
|

esoyun
[Hakan]
Kayıt Tarihi: 05.07.2008
İleti Sayısı: 29
Şehir: Eskişehir
Durum: Forumda Değil
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 16:30
"$yazi" değişkeni fonksiyona atanmadığı için veya "$yazi_karakter" değişkenine veri aktarımı olmadığı için sıfıra bölme hatası oluştuğu görülüyor.Ama bu hataya ne sebep oluyor onu anlayabilmiş değilim.Aynı kodlar bende nasıl çalışıyor onuda anlayamadım.
Paylaşalım derken daha ilk eklentide böyle bir sorun çıktı.Anlaşılan o ki, diğer eklentilerimde de benzer veya farklı başka sorunlar çıkabilir.
Hata verebilecek bir eklenti için kimse boş yere uğraşmasın baabında bu konuyu silerseniz sevinirim Adem bey.
Teşekkürler,
|
www.esoyun.com
__________________ Bu ileti en son esoyun
tarafından 12.07.2008- 16:32 tarihinde, toplamda 1 kez değiştirilmiştir.
|
|
Cvp:
Cevap: 8
|
| Yazan |
Cevap içeriği |
|

yonetici
[Adem YILMAZ]
phpKF Ekip Başkanı
Kayıt Tarihi: 30.11.2006
İleti Sayısı: 1.468
Şehir: İstanbul
Durum: Gizli
E-Posta Gönder
Web Adresi
Özel ileti Gönder
|
Cevap Tarihi: 12.07.2008- 16:33
Sorunu anladım, cevap yazarken cevap başlığının boş olduğu durumlarda oluyor.
Başlık olmadığı için
$yazi_karakter = strlen($yazi);
sıfır döndürüyor ve ceil yuvarlama fonksiyonu hata veriyor.
Normalde sadece cevaplarda başlık girilme zorunluluğu yok. Ama cevaba başlık girilmediği zaman daha aşağıda Cvp: ekleniyor.
Fakat biz bunun daha üstünde fonksiyonu çalıştırdığımız için boş başlıkta hata aldık.
O kodu şöyle değiştirdiğinizde sorun çözülecektir:
if ($_POST['mesaj_baslik'] == '') $_POST['mesaj_baslik'] = 'Cvp:';
$_POST['mesaj_baslik'] = BuyukHarfKontrolEt($_POST['mesaj_baslik']);
$_POST['mesaj_icerik'] = BuyukHarfKontrolEt($_POST['mesaj_icerik']);
Yukarıdaki kodu ekler ve mesaj_degistir.php sayfasına da uyarlama kodunu eklerseniz, kullanmak isteyenler için güzel bir mod olacaktır.
Yalnız fonksiyon iletinin içinde abartılı derece büyük harf varsa istisnasız hepsini küçültüyor, bazılarına izin verse daha güzel olurdu.
Modu silmeye gerek yok eminim sorunu çözeceksiniz, bu ufak sorun sizi caydırmasın.
Sizden başka güzel modlarda bekliyoruz
Teşekkürler...
|
__________________ Bu ileti en son yonetici
tarafından 12.07.2008- 16:47 tarihinde, toplamda 4 kez değiştirilmiştir.
|