Output_buffering ve php.ini ile ilgili sorun

2 Cevap php

(: polopolo, geçmek: Samara kullanıcı) sonucu bir boş sayfa log-in bu site de çalışırken. Ben sorun başlıkları gönderme ve php.ini dosyasında * ouput_buffering * ile olduğunu biliyorum. Ben başka bir ev sahibi de aynı sorun vardı ama ben * On * output_buffering = değişti sorun giderilmiştir. Bu mevcut ana bilgisayarda çalışmıyor ve neden acaba? Herhangi bir öneriniz?

-phpinfo geçerli sitenin.


Edit: Problem solved. I reverse-engineered the code and found some additional spaces after the php closing tag, before the sending of the headers. The code wasn't written by me and I instinctively ignored this option as the whole system worked already on another server. But my colleague did some changes I was unaware of...The lesson learned: teamwork is important and don't let anybody do the thinking for you. Still it is a mystery to me how come after trying everything to display errors and especially the "Cannot modify headers" they didn't display properly. I did everything you advised me to do- display errors, log them and so on...anyway thanks.

2 Cevap

Muhtemelen, oturum açtıktan sonra hemen vurmak sayfa bir yönlendirme yapar.

Bir yönlendirme yapıyor tepki ile bir HTTP üstbilgisi çıktısı gerektirir. Sorun PHP zaten belgenin body çıkış başladı eğer, değil o çıktı sona eren bir başlık onlar başlıklarını çünkü vücut başladı zaman.

Çıktı tamponlama çıktı tamponu kızardı (veya PHP çıkar) kadar body belgenin herhangi bir bölümü çıktılanmasının PHP engeller. Bu herhangi bir zamanda çıkış başlıklarına yapmanızı sağlar.

Şimdi, eğer kendi sitesi / sunucu sabit sorun çıktı tamponlamasını dönüm, ama başka bir taraftan, bu aslında aynı sorun olmadığını açık bir göstergesi - Eğer farklı bir sorunla karşılaşmış.

PHP hataları günlüğe, böylece PHP hata günlüğünü kontrol edilmelidir. Eğer kısıtlı bir geliştirici sadece site (siz değildir) bu incelemekte (ve sadece) varsa, bu işlenirken gibi sayfada hataları göstermek, hangi PHP yapılandırmasında display_errors açabilirsiniz. Bu genellikle, çünkü hata iletisi bazı özel bilgileri ortaya hangi bir hata denemek ve neden saldırganlar için potansiyeli, kamuya açık sunucularda güvensiz bir ayar olarak kabul edilir.

Ben uzman değilim ve bir şey yapmak gibi ben ne çıktı tamponlama anlayamıyorum, belki kodda bazı hatalar vardır?

. Eğer aşağıdaki içeriğe sahip bir htaccess dosyası oluşturabilirsiniz:

php_flag display_errors on
php_value error_reporting 30719

O sitenin kök klasörüne yerleştirin ve daha sonra herhangi bir çıkış hata olup olmadığını görmek için tekrar oturum açmaya?