Codice PHP:
error_reporting(-1);
ini_set('display_startup_errors', '1');
ini_set('display_errors', '1');
$mmusage = memory_get_usage();
//se da fonte esterna $_GET, $_POST
$id = null;
if(isset($_GET['id']) && is_string($_GET['id'])) {
if(strlen($_GET['id']) && trim($_GET['id'], '0123456789') === '' && (($id = (int) $_GET['id']) < 0 || $id > 7901)) {
$id = null;
}
}
if($id !== null) {
if($id == 0){
//ovviamente dovrò inizializzare solo se id è diverso da null, qui va anche la connessione al database
//altrimenti nulla
$query="SELECT * FROM comuni ORDER BY comune";
}else{
$query="SELECT * FROM comuni WHERE provincia = '" . $id . "'" . ' ORDER BY comune';
}
$result = $connessione->query($query);
$indice = 0;
while($row1 = $result->fetch_array(MYSQLI_ASSOC))
{
$testo[$indice] = $row1['comune'];
$valore[$indice] = $row1['id'];
$indice = $indice + 1;
}
$indice = $indice - 1;
$arr = array('indice' => $indice,
'elenco' => array('testo' => $testo,
'valore' => $valore));
$data = json_encode($arr);
$testo = null;
$valore = null;
$row1 = null;
$arr = null;
unset($testo, $valore, $row1, $arr);
echo strlen($data) . "\n";
echo $indice . "\n";
echo errors_get_last() . "\n";
echo json_last_error() . "\n";
echo $mmusage . "\n";
echo memory_get_usage();
}
Che output produce?
Disattiva Opcache se abilitato.
Dovresti anche considerare di impostare error_reporting = -1 nel tuo php.ini e display_errors = On con display_startup_errors = On se sei in modalità di sviluppo per vedere tutti gli errori fatali / di analisi o impostare error_log sul file desiderato per registrare gli errori invece di display_errors in produzione (questo richiede log_errors da accendere).
Mentre sul server di produzione via lato server (inteso script php) potrai impostare error_reporting(0); e opzionalmente ini_set.