2010/3/24 Nuri AKMAN <[email protected]>: > Merhaba Barış Bey, > > Bir program modülüm var. Bunu bir kaç sayfam çağırıyor ve kullanıyor. Ancak, > bazen bu modül bağımsız olarak ajax kullanımım sırasında da çağırılabiliyor. > Bu durumda da "headers already sent" mesajı alıyorum. Bunu engellemek için > parametre göndererek bir kontrol koymadan önce sizlere outputstarted() gibi > bir hazır komut olup olmadığını sormak istediğim için bu konu açıldı. > > Ancak, konunun açılışından hareketle; programlamaya C, web'e de CGI'dan > başlanmalı görüşü ile mesajımın manası değişti. > > Selamlar, > Nuri Akman > > Headers already sent mesaji su durmda ortaya cikar: Siz ekrana bir seyler basmissinizdir daha sonra header komutu ile bir header gondermek istemissinizdir. Ekrana bir sey basinca headerlar gittigi icin sonradan gondermeye calistiginiz header gonderilemez. O yuzden bu hata cikar. Cozmek icin Ekrana bir sey gondermeden once tum headerlari gondermek gereklidir. Modulunuzun veya programinizin neresinde bu olayin cereyan ettigini bulmalisiniz. Cozmek icin soyle bir yol da denenebilir : bahsettiginiz modul icerisinde header ('') kodlarini kaldirabilirsiniz. Bu durumda o headerlar gonderilmez ve hata da ortaya cikmaz. Tabii bunu ancak o headerlara ihtiyaciniz yoksa yapabilirsiniz. Aksi halde daha onceden nerede ekrana bir seylerin yazildigini bulup onlari headerlar gonderildikten sonra yazdirmaniz lazim.
Ya da output buffering yapabilirsiniz. Ya da php ile ekrana yazdiracaklarinizi bir degisken icinde tutup is bittikten sonra o degiskeni ekrana basabilirsiniz.( buna da ne buffering desek? buffering with variables? ) .... _______________________________________________ Linux-programlama mailing list [email protected] https://liste.linux.org.tr/mailman/listinfo/linux-programlama Liste kurallari: http://liste.linux.org.tr/kurallar.php
