Ik ben bezig met een error-handler functie, waarbij zowel door php als door mijn eigen code gegenereerde fouten in een variabele worden gezet ($error_bericht). Voor de behandeling van de php foutmeldingen heb ik de volgende code:
Wat ik dus zou verwachten is dat nu de foutmelding wordt uitgespuugd, maar in plaats daar van krijg ik een lege error_bericht. Wat ik uiteindelijk wil bereiken met het stoppen van de foutmelding in een variabele is dat ik die dan netjes in mijn templates kan verwerken dmv iets als {foutmelding}. Zodat als er een notice of een warning is dat dan niet gelijk mijn hele layout kapot gaat en daarnaast kan ik die variabele dan in andere functies aanvullen met foutmeldingen die niet door PHP gegeneerd zijn.
Ik zit er al de hele avond op te knagen maar het wilt maar niet lukken om die $error_bericht buiten de functie gevuld te krijgen met mijn foutmelding. Als ik hem binnen de functie print dan lukt het wel.
Op de site van PHP wordt ook niet ingegaan in het plaatsen van de foutmelding in een variabele. Daar gaat men er steeds van uit dat de foutmelding wordt geplaatst op de plek waar die voorkomt.
Ik gebruik PHP 5.0.5.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| <? error_reporting (E_ALL); $error_bericht = ""; function error_functie ($errno, $errstr, $errfile, $errline, $errcontext) { $error_type = array ( E_ERROR => "Error", E_WARNING => "Warning", E_PARSE => "Parsing Error", E_NOTICE => "Notice", E_CORE_ERROR => "Core Error", E_CORE_WARNING => "Core Warning", E_COMPILE_ERROR => "Compile Error", E_COMPILE_WARNING => "Compile Warning", E_USER_ERROR => "User Error", E_USER_WARNING => "User Warning", E_USER_NOTICE => "User Notice", E_STRICT => "Runtime Notice" ); global $error_bericht; $error_bericht .= $errstr; } set_error_handler ("error_functie"); print 5 / 0; //simpele divide by 0 foutmelding; echo $error_bericht; ?> |
Wat ik dus zou verwachten is dat nu de foutmelding wordt uitgespuugd, maar in plaats daar van krijg ik een lege error_bericht. Wat ik uiteindelijk wil bereiken met het stoppen van de foutmelding in een variabele is dat ik die dan netjes in mijn templates kan verwerken dmv iets als {foutmelding}. Zodat als er een notice of een warning is dat dan niet gelijk mijn hele layout kapot gaat en daarnaast kan ik die variabele dan in andere functies aanvullen met foutmeldingen die niet door PHP gegeneerd zijn.
Ik zit er al de hele avond op te knagen maar het wilt maar niet lukken om die $error_bericht buiten de functie gevuld te krijgen met mijn foutmelding. Als ik hem binnen de functie print dan lukt het wel.
Op de site van PHP wordt ook niet ingegaan in het plaatsen van de foutmelding in een variabele. Daar gaat men er steeds van uit dat de foutmelding wordt geplaatst op de plek waar die voorkomt.
Ik gebruik PHP 5.0.5.
[ Voor 14% gewijzigd door Plankje op 03-02-2006 00:17 ]