Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekierowanie komunikatow diagnostycznych
bartyk
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


Witam,


Powoli pewnie macie mnie już dość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Chcę mieć możliwość wyświetlania komunikatów diagnostycznych (własnych) w osobnym okienku. Mówiąc inaczej odpalam skrypt w jednym okienku i w nim otrzymuje jakieś wyniki. Natomiast komunikaty związane z przebiegiem samego skryptu chcę mieć w drugim okienku.

Mam nadzieję, że rozumiecie o czym piszę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Jak zwykle będę wdzięczny za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
bela
post
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


zrob wlasny error handler i uzyj funkcji trigger_error

przeczytaj manuala zanim dasz kolejnego posta w tym temacie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
M4chu
post
Post #3





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Watpie, zeby w manualu znalazl to czego szuka (bo moim zdaniem nie szuka obslugi bledow a ich wyswietlania)

Smarty ma bardzo fajna obsluge debugowania - przy kazdym wywolaniu strony pojawia sie (lub jesli sie juz pojawilo, to sie odswieza) okienko a w nim rzadane dane.

Kod (skrocony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
  1. <script language=javascript>
  2. if( self.name == '' ) {
  3. var title = 'Console';
  4. }
  5. else {
  6. var title = 'Console_' + self.name;
  7. }
  8. _smarty_console = window.open("",title.value,"width=680,height=600,resizable,scrollbars=yes");
  9. _smarty_console.document.write("<HTML><HEAD><TITLE>Smarty Debug Console</TITLE></HEAD><BODY bgcolor=#ffffff>");
  10. _smarty_console.document.write("Smarty Debug Console");
  11. _smarty_console.document.write("</table>");
  12. _smarty_console.document.write("</BODY></HTML>");
  13. _smarty_console.document.close();
Go to the top of the page
+Quote Post
bela
post
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


@M4chu: sam ta zajrzyj a nie sie wymądrzasz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) wiem bo byłem i skorzystałem, obsluga i wyswietlanie sie wiąze ze sobą

  1. <?php
  2. class ErrorHandler {
  3. private $errors = array();
  4.  
  5. private $errorType = array(
  6. 1 => 'php Error',
  7. 2 => 'php Warning',
  8. 4 => 'Parsing Error',
  9. 8 => 'php Notice',
  10. 16  => 'Core Error',
  11. 32  => 'Core Warning',
  12. 64  => 'Compile Error',
  13. 128 => 'Compile Warning',
  14. 256 => 'User Error',
  15. 512 => 'User Warning',
  16. 1024 => 'User Notice',
  17. 2047 => 'E_ALL',
  18. 2048 => 'E_STRICT'
  19. );
  20.  
  21. public function __construct() {
  22. set_error_handler(array($this, 'handler'));
  23. }
  24.  
  25. public function handler($errno, $errstr, $errfile, $errline) {
  26. $errfile = basename($errfile);
  27. foreach($this->errorType as $key => $type) {
  28. if($errno == $key){
  29. $errno = $type;
  30. }
  31. }
  32. $this->errors[] = &#092;"<b>$errno</b> \" . $errfile . \"/\" . $errline . \": \" . $errstr . \"<br />n\";
  33. }
  34.  
  35. public function printErrors() {
  36. foreach($this->errors as $error) {
  37. print($error);
  38. }
  39. }
  40.  
  41. }
  42. ?>


masz tu przykladowy eh

Ten post edytował bela_666 24.11.2004, 14:41:10
Go to the top of the page
+Quote Post
M4chu
post
Post #5





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


@bela: tak sie sklada, ze juz wczesniej zajrzalem i sposobu na otwarcie okienka tam nie znalazlem (a przynajmniej nie w obsludze bledow) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował M4chu 24.11.2004, 20:11:34
Go to the top of the page
+Quote Post
bela
post
Post #6


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


a java script to od czego jest, co ?
Go to the top of the page
+Quote Post
M4chu
post
Post #7





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


rotfl! nie wiem, moze i za wyraznie sie nie wyrazam, ale:
- (do 1 postu) nie wymadrzam sie tylko pisze to o co gosc pytal (czyt. okienko), bartyk nic nie pisal, ze nie wiem jak zrobic obsluge bledow, tylko nie wie jak zrobic to w oknie
- chyba nie myslales, ze na serio szukalem okienek w manualu php? lol.
- 'a java script to od czego jest' - patrz moj pierwszy post (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
bartyk
post
Post #8





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


@bela: kwestia obsługi błedów nie jest dla mnie problem, tak jak napisał M4chu mój problem polega na przekierowaniu tych komunikatów do nowego okienka.

@M4chu: czyli muszę zainstalować smarty. Problem może się pojawić "u klienta" jeśli nie ma on smarty'ego (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
yeti
post
Post #9





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 12.09.2003

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


A potrzebujesz mieć informacje wyświetlane w "czasie rzeczywistym" czy okienko otwierane po załadowaniu skryptu z kompletem informacji od debugera?
Go to the top of the page
+Quote Post
bartyk
post
Post #10





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


@yeti: byłoby lepiej "w rzeczywistym" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
chociaż z drugiej strony ...

Tak przy okazji: czy jest jakiś sposób (oprócz "ręcznego" analizowania kodu) aby stwierdzić, czy jakaś zmienna jest w ogóle używana?
Go to the top of the page
+Quote Post
yeti
post
Post #11





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 12.09.2003

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


Po 17 skończę robotę i spróbuję wygrzebać mój stary kod do tego. Z grubsza działa to tak:
1. przechwytujesz błędy i zapisujesz do tablicy
2. w ustawionych miejscach wrzucasz do tablicy określone zmienne i ich wartości
3. w ustawionych miejscach wrzucasz do tablicy określone komunikaty debugera
(może to być jedna tablica albo dwie oddzielne)

na koniec pracy skryptu zapisujesz obie tablice do pliku (np. debug.htm) i wywołujesz window.open(debug.htm) z odpowiednimi parametrami.

Tak to wygląda w skrócie. Może są optymalniejsze i bardziej eleganckie metody, ale jak na moje potrzeby ta sprawdza się całkiem nieźle.
Go to the top of the page
+Quote Post
bartyk
post
Post #12





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


będę baaaaardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
M4chu
post
Post #13





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


@Bartyk: Oczywiscie, ze nie musisz, ten kod ktory podalem robi okienko, a to co w nim chcesz miec to juz Twoj problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ja kozystam z podobnego mechanizmu jak yeti:
mam klase debug, w niej metode write($wiadomosc, $plik, $linia), ktora wrzuca te dane do tablicy; w okreslonych miejscach skryptu wywyluje ta metode, aby pozniej w tym oknie wyswietlic nagromadzone dane.
Go to the top of the page
+Quote Post
yeti
post
Post #14





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 12.09.2003

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


Cytat(bartyk @ 2004-11-25 12:20:12)
będę baaaaardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Oj, chyba nie będziesz (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ponieważ zarzuciłem jakiś czas temu debugowanie w osobnym oknie (nie lubie popUpów i blokuję je starannie) i zapisuję informacje debugera jako komentarze HTMLa to nie pamiętam, gdzie siedzi stara klasa debugera. Ale na podstawie wcześniejszego przepisu nie ma problemu żeby to zrobić (zapis do tablicy, wygenerowannie pliku, otwarcie pliku w oknie). Jeśli nie będziesz mógł dać rady daj znać na priv. Skrobnę w sobotę i Ci podeślę.
Go to the top of the page
+Quote Post
bela
post
Post #15


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


  1. <? /**
  2.  * function showDebug
  3.  * @english Make a Popup window with debug information
  4.  * @polish Tworzy okno popup 
  5.  * @todo wykonac osobny model dla debuggera
  6.  * @access public
  7.  * @return string
  8.  */
  9. public function showDebug() {
  10.  
  11. echo &#092;"<script type=\"text/javascript\">
  12. if( self.name == '' ) {
  13. var title = 'Console';
  14. } else {
  15.  var title = 'Console_' + self.name;
  16. }
  17. _debug_console = dbdebug = window.open('', 'debug', 'width=600, height=500, menubar=no, scrollbars=yes');
  18. _debug_console.document.write('<html><head><title>DbDebug Console</title></head><body>');&#092;";
  19. echo ' _debug_console.document.write('<div style=&#092;"paddind: 3px; margin: 3px; background: #ffffff; font-size: 12px; font-famil: Tahoma;\">'); ';
  20. foreach ($this->aDbDebug as $debug) {
  21. echo '_debug_console.document.write('<div style=&#092;"width: 100%;\">Query: '.str_replace(array(\"rn\", \"n\", \"r\", \"t\", \" \"), ' ',$this->highlight($debug['query'])).'<br />'); ';
  22. echo '_debug_console.document.write('<span style=&#092;"color: blue;\">In: '.addslashes($debug['file']).' at line: '.addslashes($debug['line']).'</span><br />'); ';
  23. echo '_debug_console.document.write('Time: '.$debug['time'].'<br/>'); ';
  24. echo '_debug_console.document.write('Error: <span style=&#092;"color: red\">'.addslashes($debug['error']).'</span></div><hr />'); ';
  25. }
  26. echo ' _debug_console.document.write('</div></body></html>'); ';
  27. echo '</script>';
  28. }?>


gdzies z otchłani wyciągnełem kawałek klasy Sh4dowa do obslugi DB
Go to the top of the page
+Quote Post
bartyk
post
Post #16





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 8.11.2004

Ostrzeżenie: (10%)
X----


Wielkie dzięki. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 06:38