piszę prosta aplikację w php i mam problem z obsługa blędow zapomoca bloku try catch przy zastosowaniu na poczatku skryptu ob_start("ob_gzhandler"), kiedy uzywam tylko funkcji ob_start() wszystko działa poprawnie, a gdy używam kompresji gzip przegladarka wyrzyca mi blad dekompresji zawartosci kiedy w skrypt wyrzuci jakis wyjatek.
dokladny opis bledy z FF:
Błąd kodowania zawartości
Otwierana strona nie może zostać wyświetlona, ponieważ używa nieprawidłowych lub nieobsługiwanych metod kompresji.
w chrome dostaje cos takiego:
Błąd 330 (net::ERR_CONTENT_DECODING_FAILED): Nieznany błąd.
oto zarys kodu:
CODE
<?php
if(ob_start("ob_gzhandler")) {
header("Content-Type: text/html; charset=utf-8");
header("Accept-Encoding: gzip, deflate");
header("Content-Encoding: gzip");
}
else {
ob_start();
header("Content-Type: text/html; charset=utf-8");
}
require_once (classes.php");
try {
//kod strony
// jezeli tutaj wystapi wyjatek calosc sie wykrzaczy
// np throw new Exception("test");
ob_end_flush();
}
catch(Exception $e) {
ob_end_clean();
echo $e->getMessage();
}
?>
if(ob_start("ob_gzhandler")) {
header("Content-Type: text/html; charset=utf-8");
header("Accept-Encoding: gzip, deflate");
header("Content-Encoding: gzip");
}
else {
ob_start();
header("Content-Type: text/html; charset=utf-8");
}
require_once (classes.php");
try {
//kod strony
// jezeli tutaj wystapi wyjatek calosc sie wykrzaczy
// np throw new Exception("test");
ob_end_flush();
}
catch(Exception $e) {
ob_end_clean();
echo $e->getMessage();
}
?>
Czy ktoś miał kiedyś podobny problem i miałby ochotę pomóc?
A może to poprostu jest niemożliwe...?
Z góry dziękuje.