Cevaplar
-
Geçen gün benzer bir durumla bende karşılaştım, fikir vermek açısından izlediğim yol şu oldu:
a.php > textareanın bulunduğu sayfa.
b.php > textareadan gelen değerin veritabanına işlendiği sayfa.
c.php > veritabanındaki verinin ekrana basıldığı sayfa.
a.php de bulunan textareanın adı deger olsun, veri post metodu ile yollandığında aşağıdaki şekilde alıp vtye kayıt ediyorum.
function temizle($veri){ if(!get_magic_quotes_gpc()){ $veri=addslashes($veri); } return $veri; } $deger=temizle(trim($_POST['deger']));
üstteki değer veritabanına kayıt edildiğinde eğer satır boşluğu varsa vtye \r\n şeklinde kayıt oluyor. Bu \r\n kodunun ekrana basacaksan nl2br kullanacaksın böylece \r\n karakteri <br> ye dönüşecek.Texareaya basacaksan nl2br kullanmadan yazdıracaksın böylece php \r\n'i boşluk olarak ifade edecek ve textarea bunu doğru anlayacak.
Burada 2 durum önemli. Vtdeki veriyi ekrana mı basıcan yoksa textareanın içine mi basıcan.
Eğer ekrana basacaksan echo nl2br(stripslashes($deger));
Textareaya basacaksan echo stripslashes($deger);
Yazdıklarıma dikkat edip uygularsan sorunun büyük ihtimal çözülecektir, çünkü aynısını geçen gün yaşadım bir günüm bunu anlamaya gitti. -
cevaplarınız için teşekkürler arkadaşlar. Dediklerinizi uyguluyorum ama sorun hala devam ediyor. problem pre ile alakalı değilmiş normal textareadan düz yazı giriyorum yine aynı problem oluşuyor.
Sorun galiba veriyi veri tabanına kaydederken oluşuyor.
Codeigniter framework kullanıyorum ve kendisi verileri sql injection a karşı filtreliyor.
Her düzenleme yaptığımda girdiğim yazıya fazladan <br>ekliyor ve sorgu şu hale geliyor.
asdfasdf\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\n\r\n\nasdfasdf
bir daha düzenle dediğimde yukarıdakine fazladan \n ekliyor böyle böyle her düzenlede yazı uçuyor :D-
Alexander
bir de şöyle birşey denedim.
normal bir php sayfasında textaredan gelen veriyi
echo nl2br($_POST['veri'])
düzgün bir şekilde yazdırıyor.
fakat aynı kodu codeigniter controller dosyasında yazdığımda her defasında bir tane fazladan br ekliyor.12 yıl önce yazılmış -
Lokupz
Kodları <br> ile Filtreliyor Demekki12 yıl önce yazılmış -
Alexander
peki bunu nasıl çözebiliriz. br ile filtrelemesi normal mi yoksa bir açıkmı?12 yıl önce yazılmış -
Alexander
arkadaşlar sorunu çözdüm. Eğer sizde ci 2.0'a geçtiyseniz ve windows üzerinde çalışıyorsanız aynı sorunla büyük ihtimalle karşılaşacaksınız.
Çözüm için appliccation->core dizini altına MY_Input.php adında yeni bir dosya oluşturuyoruz ve aşağıdaki kodları yapıştırıyoruz.
class MY_Input Extends CI_Input { public function __construct() { if(PHP_EOL == "\r\n") { $this->_standardize_newlines = FALSE; log_message('debug', 'Windows server: standardize newlines disabled.'); } parent::__construct(); } }
12 yıl önce yazılmış
-