OK, ho apportato alcune modifiche al codice e cercato di renderlo più leggero. Ho letto la guida PHP/MySQL che segnali in firma, in particolare dove viene spiegato l'inserimento dei dati da un form.
Ho apportato queste modifiche:
1. ho dichiarato le variabili $_GET in quanto la pagina serve anche a modificare un dato già inserito precedentemente.
$id = $_GET['id'];
$nome_marca = $_GET['nome_marca'];
2. Ho inserito la variabile $_POST per la variabile da inserire tramite form
in particolare ho cambiato questa parte di codice
if($nome_marca_form){
$nome_marca_form = str_replace("\<","<",$nome_marca_form);
$nome_marca_form = str_replace("\>",">",$nome_marca_form);
$nome_marca_form = str_replace("'","'",$nome_marca_form);
$nome_marca_form = str_replace("\"",""",$nome_marca_form);
con questa:
if(isset($_POST['nome_marca_form'])){
$nome_marca_form = addslashes(filter_var($_POST['nome_marca_form'], FILTER_SANITIZE_STRING));
è corretta? il filter_var e addslashes sembra che facciano quello che faceva prima str_replace.
Sicuramente c'è altro da modificare in quanto lo script una volta inserito una nuova marca mi rimanda alla pagina show_marche.php ma non appare nessuna marca aggiunta. Come se non salvasse la variabile nel db.
if(!$id){
$query = "INSERT INTO marche (nome_marca) VALUES ('$_POST[nome_marca_form]')";
}
Cosa c'è altro da modificare?
grazie