Ik heb dit in de index.php

error_reporting(1);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL & ~E_WARNING);

Nu wil ik dit in een <div></div> wegzetten, zodat ik die regels, er iets fout is, dat ik het in boven in de page zie.
Maar dat lukt mij niet, heb ik via een maat van mij, een een stukje hulp gekregen voor een eigen error reporting te maken.

function errorHandler(int $type, string $msg, ?string $file = NULL, ?int $line = NULL) {
echo $type.' : '. $msg.' in : '. $file.' on line : '. $line;
}
$warning = set_error_handler('errorHandler' , E_ALL);

en heb ik in de ingelade page, dit gemaakt.

if($error == 1){ 
include('./inc/Errors.php');
echo "<div class='warningbox'>Still under construction<br />".$warning."</div>";
}

Maar echter als er een fout is op een page. Dan laat hij het zien op de page die geincluded wordt.
En niet in de warningbox waar ik het juist wil hebben.
De $warnig wordt wel uitgespuugd, maar niet in de div element.
Hoe kan dat? Ligt dat aan de error reporting zelf? of heb ik iets over het hoofd gezien? of is het niet mogenlijk om het in een div element te plaatsen?
Maar omdat PHP ook veel met exceptions werkt, raad ik ook aan om een Exceptionhandler te bouwen.
Vrijwel zelfde principe, maar wat uitgebreider.
Dit lijkt me wel wat. evben uitzoeken hoe het werkt

<?php
function exception_error_handler($severity, $message, $file, $line) {
    if (!(error_reporting() & $severity)) {
        // This error code is not included in error_reporting
        return;
    }
    throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");

/* Trigger exception */
strpos();
?>

Reageren