Qui c'è un semplice esercizio dove vengono mostrati a video i dati dal database in una tabellina HTML.
Ogni riga ha anche un pulsante Modifica ed uno Elimina, che rintracciano l'ID di riferimento.
C'è anche un link per inserire un nuovo elemento.
Funziona tutto correttamente, tranne Modifica.
La cosa che mi lascia perplesso è che l'eliminazione funziona, ed utilizza la stessa ID di POST che utilizzerebbe la modifica. Il codice di 'modifica.php' è questo:Codice PHP:
//Ometto connessione e inclusioni varie
//Modifica//
if(isset($_POST['action']) and $_POST['action']=='Modifica')
{
include 'formadd.html.php';
exit();
include 'modifica.php';
header('Location: .');
exit();
}
//Elimina//
if(isset($_POST['action']) and $_POST['action']=='Elimina')
{
include 'elimina.php';
header('Location: .');
exit();
}
//inserimento nuovo annuncio//
if(isset($_GET['add']))
{
include 'formadd.html.php';
exit();
if(isset($_POST['descr']))
{
include 'inserimento.php';
header('Location: .');
exit();
}
}
//Ometto Visualizzazione risultati.
try
{
$sql='UPDATE avvist SET descriz=:descriz WHERE id=:id';
$s=$pdo->prepare($sql);
$s->bindValue(':descr', $_POST['descr']);
$s->bindValue(':id', $_POST['id']);
$s->execute();
}
// catch ecc
Ho provato anche a modificare manualmente sia la id che la descriz con valori discreti e togliendo quindi sia variabili post che prepare/bindvalue ed utilizzando il metodo exec();. Niente. Non considera proprio i valori, insomma ne deduco che se neanche funziona con valori discreti non includa a prescindere 'modifica.php'. Il file è nella stessa cartella e nominato correttamente anche per l'estensione.
Non so che altro pensare se non ad altre funzionalità di exit() che non conosco, anche perchè non esegue neanche header location (fatto prove con istruzioni in un blocco successivo che usassero variabili POST, che sarebbero state cancellate se header location fosse stato eseguito, invece le istruzioni provate funzionavano, facendo emergere la non esecuzione di header location).
Cos'ha che non va?
Grazie