Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wysyłanie pustego pliku do przeglądarki przy obsłudze wyjątków
albrzykowski
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 3
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Witam,

Mam następujący problem, mam własną klasę do obsługi bazy danych i drugą raportującą błędy na zasadzie zapisania informacji o błędzie w bazie.

Oto fragment kodu gdzie skrypt zaczyna się dziwnie zachowywać (opiszę poniżej):
  1. <?php
  2. public function execute($query){
  3.                $this->result = mysql_query($query);
  4.                if($this->result!=FALSE){
  5.                        return $this->result;
  6.                }
  7.                else{
  8.                        throw new ExceptionHandler(_(__CLASS__.': query error: '.$query),3);
  9.                        return FALSE;
  10.                }
  11.  }
  12. ?>


Jeśli w zapytaniu pojawi się błąd, np. zwykła literówka na zasadzie brak ', wtedy zamiast uzyskania błędu w przeglądarce, lub zapisania go przez ExceptionHandler, serwer wysyła mi pusty plik PHP do sićgnięcia przez przeglądarkę (plik typu: application/x-httpd-php).

Jeśli zarzucę obsługę błedów własną klasą i klasycznie zrobie tak:
  1. <?php
  2. public function execute($query){
  3.                $this->result = mysql_query($query) or die(mysql_error);
  4. ?>

Skrypt zachowuje się już w bardziej oczekiwany sposób, tj. wyrzuca błąd i zatrzymuje się.

Proszę o sugestie i z góry dziękuję.

Ten post edytował albrzykowski 18.03.2009, 19:20:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
albrzykowski
post
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 3
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Hej,

Przygotowałem specjalnie błąd:

w kontrolerze dodaje newsa:
  1. <?php
  2. $this->content->update('newses','title,excerpt,content,published','''.$newsTitle.'''::''.$newsExcerpt.''::''.$newsContent.''::''.$newsPublished.''',array('id'=>'='.$newsId));
  3. ?>

To :: rozgranicza pola dla metody update modelu (tylko dodaje żeby było wiadomo)
I błąd jest zaraz po $newsTitle o jeden pojedynczy cudzysłów za wiele.

metoda update wywołuje wewnetrzną metodę execute którą już wcześniej opisałem:
  1. <?php
  2. public function execute($query){
  3.        $this->result = mysql_query($query);    
  4.        if($this->result!=FALSE){
  5.            return $this->result;
  6.        }
  7.        else{
  8.            throw new ExceptionHandler(_(__CLASS__.': query error: '.$query),3);
  9.            return FALSE;
  10.        }
  11.    }
  12. ?>


I w momencie próby zapisania newsa skrypt nie zgłasza nic tylko dostaje do pobrania plik PHP... pusty.
Może powinienem obsłużyć lepiej raportpowanie i zamknąć odpowiednie partie kodu w try{} i catch{} tylko nie zabardzo wiem jak to ugryźć.

Dzięki i pozdrawiam!!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 03:06