Salve,
ho creato un tool per il debug che può essere usato al posto del metodo che avevo ripotato qui
Il tool permette di visualizzare gli errori di una pagina PHP (o HTML misto) senza dover editare il file per aggiornare il nome della pagina da analizzare.
Codice PHP:
<?php
$files = glob("./*.{htm,html,php}", GLOB_BRACE);
$hidden = array("DebugErrorPHP.php");
function EmulateEval($code){
$tmp = tmpfile();
$tmpf = stream_get_meta_data ($tmp);
$tmpf = $tmpf ['uri'];
fwrite($tmp, $code);
$ret = include($tmpf);
fclose($tmp);
return $ret;
}
if(isset($_POST['select1'])){
$select1 = $_POST['select1'];
$cnt = 0;
foreach($files as $file) {
$file = basename($file);
if(in_array($file, $hidden)) {
continue;
}
$cnt++;
if($select1 == 'value'.$cnt){
echo '<p style="display:flex; justify-content:center; font-size:20px;">Versione PHP: <b>'.substr(phpversion(),0,3).'</b></p>';
echo '<p style="display:flex; justify-content:center; font-size:20px;">File corrente: <b>'.$file.'</b></p>';
$code = "<div style='overflow-y:scroll; width:100%; height:250px;'>";
$code .= "<?php ini_set('display_errors', '1');ini_set('display_startup_errors', '1');error_reporting(E_ALL);require('".$file."');?>";
$code .= "</div>";
EmulateEval($code);
}
}
}
?>
<form style="display:flex; justify-content:center;" action="" method="post">
<select style="font-size:20px;" name="select1">
<?php
$cnt = 0;
//$files = glob("./*");
foreach($files as $file) {
$file = basename($file);
if(in_array($file, $hidden)) {
continue;
}
$cnt++;
echo '<option value="value'.$cnt.'">'.$file.'</option>';
}
?>
</select>
<input style="font-size:20px;" type="submit" name="submit" value="Vai">
<input style="font-size:20px;" type="button" onclick="location.reload();" value="Ricarica">
</form>
Basta copiarlo in una nuova pagina php, ad es, DebugErrorPHP.php. Quindi eseguire dal browser il file di debug.
Nel caso si disponga di più applicativi web o siti nello stesso dmonio, ad esempio in sotto cartelle:
Il file per il debug (DebugErrorPHP.php), è bene metterlo nella sotto cartella relativa all'applicativo web / sito che si vuole esaminare. Così da non avere in elenco tutti i fle di ogni applicativo web / sito presenti nel dominio.
Cordaili saluti.