Set_error_handler tarafından yakalanmış edilemez hatalar için PHP özel hata sayfa gösteriliyor

0 Cevap php

Ben kısmen işlenmiş sayfasını atmak ve PHP bir hata sayfası göstermek mümkün olmak istiyorum.

Zaten set_error_handler() , but it can only trap certain types of errors biliyorum. Ben tarafından yakalanan edilemez bir hata türü set_error_handler() yükseltilmiş zaman bir hata sayfası göstermek için nasıl bilmek istiyorum.

Ne yazık ki, Apache 2.2 üzerinde PHP 5.3.2 ile çalıştırdığınızda aşağıdaki kod, ben bunu yapmak için beklediğiniz yapmaz gibi görünüyor:

<?php

// Start the output buffer
ob_start();

// Output something into the buffer.
// I only want this to be displayed if I call one of the 
// ob_flush functions or echo the buffer myself later.
echo "yep";

// Call a function I know not to exist in order to raise 
// an error which cannot be trapped by set_error_handler() 
// and would, if display_errors was On, output "Fatal 
// error: Call to undefined function fwee()..." 
function_which_does_not_exist();

// This will never be executed.
$out = ob_get_clean();

Senaryonun çıkışı:

yep

(Display_errors () açıksa hata bilgi ve sadece hata bilgi ya da kusmak) I çıkışı hiçbir şey beklediğiniz kalırlardı.

Ben MacPorts tarafından sağlanan apache sürümünü kullanarak (Üzerinde olduğunda ve 200) PHP 5.3.2 display_errors kapalı olduğunda tarayıcıya bir 500 hatası göndermek olmadığını LiveHTTPHeaders kullanarak doğruladı, ancak PHP 5.3 kullanırken sadece hiç 200'ler tükürür. XAMPP 1.

Ben (404 için aynı yaparak çalışıyor onaylandıktan) apache konfigürasyonunda ErrorDocument 500 "test" ayarı denedim ama PHP script tüm içeriği olsa bile, özel bir hata gösterir asla sadece header('HTTP/1.1 500 Internal Server Error');

Eminim kısmen işlenmiş sayfa basit bir hata ile değiştirilir yapmak için başka ne emin değilim.

Ben de bu çerçevede Yii olur teyit edebilirsiniz. Ben okuyan bir çizgi var blog demo "hakkında" sayfası için görünümü düzenlerseniz <?php echo function_which_does_not_exist() ?>, ben kısmen işlenmiş bir sayfa olsun.

0 Cevap