Codice PHP:
require_once('Connections/inserimento.php');
session_start();
// verifichiamo se $_SESSION e' valorizzato. Se lo e', trasferiamo il contenuto
// in $check altrimenti settiamo $check = vuoto. Se $_SESSION non esiste significa
// che e' la prima volta che viene eseguito lo script.
isset($_POST["MM_insert"]) ? $check = $_POST["MM_insert"] : $check = '';
// valorizziamo ora una variabile "$caso" con un dato casuale non ripetibile
// Questa variabile trasmessa in modo hidden dal form ci permettera' di riconoscere
// quando il dato in POST viene trasmesso da un refresh (sara' identico) oppure
// da un form (sara' diverso) e permettera' allo user di reinserire gli stessi dati
// ma da form e non per refresh della pagina. Se questa duplicazione non fosse ammessa
// sara' sufficiente rimuovere dal form la riga con:
// <input type = "hidden" name = "check" value = "$caso">
$caso = microtime();
// Prepariamo il form con la sintassi heredoc e lo mettiamo in $str .
// Assicuriamoci di non avere spazi dopo la fine della prima e dell'ultima riga.
// Un return secco.
<html>
<body>
<form action="<?php $_SERVER['PHP_SELF']; ?>" id="inserimento" name="inserimento" method="POST">
qui c'è il codie del form FORM
<input type="submit" name="Submit" value="Invia" />
</label>
</p>
<input type="hidden" name="MM_insert" value="$caso">
</form>
</body>
</html
// verifichiamo ora se $_POST esiste e che non sia vuoto. Sara' da fare per tutti i campi
// che devono essere compilati in modo obbligatorio. Se i campi non sono compilati o
// $_POST non esistente verremo inviati al FORM di immissione presente nell' ELSE.
if(isset($_POST['anno'], $_POST['coltura'], $_POST['produzione'], $_POST['PA'], $_POST['dose'], $_POST['PA2'], $_POST['dose2'], $_POST['PA3'], $_POST['dose3'], $_POST['epoca'], $_POST['epoca2'], $_POST['epoca3'], $_POST['gdt'], $_POST['fito'], $_POST['gdt2'], $_POST['fito2'], $_POST['gdt3'], $_POST['fito3'], $_POST['infestante'], $_POST['eff'] , $_POST['infestante2'], $_POST['eff2'], $_POST['infestante3'], $_POST['eff3'], $_POST['infestante4'], $_POST['eff4'], $_POST['infestante5'], $_POST['eff5'], $_POST['infestante6'], $_POST['eff6'], $_POST['infestante7'], $_POST['eff7'], $_POST['infestante8'], $_POST['eff8']))
{
// Se siamo arrivati qui significa che $_POST c'e' e i dati pure. Verifichiamo se l'hash
// prodotto da MD5($_POST) e' identico a quello passato con $_SESSION e trasferito in $chek.
// utilizziamo serialize() perche' essendo $_POST un array, riceveremmo un NOTICE .
if($check === MD5(serialize($_POST)) ) {
echo "
Dati gia immessi - ciao ciao";
echo "dati già immessi";
exit;
} else {
// Poiche' dobbiamo mantenere integro il contenuto di $_POST
// per poterlo confrontare, eventuali controlli sulle stringhe li faremo
// generando nuove variabili. Usiamo come esempio TRIM() ma potrebbe
// essere qualunque la funzione di controllo utilizzata.
$anno = trim($_POST['anno']);
$coltura = trim($_POST['coltura']);
$produzione = trim($_POST['produzione']);
$PA = trim($_POST['PA']);
$PA2 = trim($_POST['PA2']);
$PA3 = trim($_POST['PA3']);
$epoca = trim($_POST['epoca']);
$epoca2 = trim($_POST['epoca2']);
$epoca3 = trim($_POST['epoca3']);
$dose = trim($_POST['dose']);
$dose2 = trim($_POST['dose2']);
$dose3 = trim($_POST['dose3']);
$gdt = trim($_POST['gdt']);
$gdt2 = trim($_POST['gdt2']);
$gdt3 = trim($_POST['gdt3']);
$fito = trim($_POST['fito']);
$fito2 = trim($_POST['fito2']);
$fito3 = trim($_POST['fito3']);
$infestante = trim($_POST['infestante']);
$infestante2 = trim($_POST['infestante2']);
$infestante3 = trim($_POST['infestante3']);
$infestante4 = trim($_POST['infestante4']);
$infestante5 = trim($_POST['infestante5']);
$infestante6 = trim($_POST['infestante6']);
$infestante7 = trim($_POST['infestante7']);
$infestante8 = trim($_POST['infestante8']);
$eff = trim($_POST['eff']);
$eff2 = trim($_POST['eff2']);
$eff3 = trim($_POST['eff3']);
$eff4 = trim($_POST['eff4']);
$eff5 = trim($_POST['eff5']);
$eff6 = trim($_POST['eff6']);
$eff7 = trim($_POST['eff7']);
$eff8 = trim($_POST['eff8']);
// Ora inseriamo i dati nel db. Inserite la vostra connessione
mysql_select_db($database_inserimento, $inserimento);
// tesi
$query1 = mysql_query("INSERT INTO `elenco tesi` (id_tesi, Coltura, anno, Produzione_peso_secco) VALUES (NULL, $coltura, $anno, $produzione)");
$num = mysql_insert_id();
// Principi attivi
$query2 = mysql_query("INSERT INTO pa_tesi (Nome_PA, Dose, Rif_PA, Epoca) VALUES ($PA, $dose, $num, $epoca)");
$query3 = mysql_query("INSERT INTO pa_tesi (Nome_PA, Dose, Rif_PA, Epoca) VALUES ($PA2, $dose2, $num, $epoca2)");
$query4 = mysql_query("INSERT INTO pa_tesi (Nome_PA, Dose, Rif_PA, Epoca) VALUES ($PA3, $dose3, $num, $epoca3)");
// Fitotossicita
$query5 = mysql_query("INSERT INTO fitotossicita (Rif_fitotossicità, GDT, Fitotossicità) VALUES ($num, $gdt, $fito)");
}
if (!empty($gdt2) AND !empty($fito2)) {
$query6 = mysql_query("INSERT INTO fitotossicita (Rif_fitotossicità, GDT, Fitotossicità) VALUES ($num, $gdt2, $fito2)");
}
if (!empty($gdt3) AND !empty($fito3)) {
$query7 = mysql_query("INSERT INTO fitotossicita (Rif_fitotossicità, GDT, Fitotossicità) VALUES ($num, $gdt3, $fito3)");
//efficacia
$query8 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante, $eff)");
$query9 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante2, $eff2)");
$query10 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante3, $eff3)");
$query11 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante4, $eff4)");
$query12 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante5, $eff5)");
$query13 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante6, $eff6)");
$query14 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante7, $eff7)");
$query15 = mysql_query("INSERT INTO efficacia (rif_pa, infestante, efficacia) VALUES ($num, $infestante8, $eff8)");
// verifichiamo la riga inserita
$Result1 = mysql_query($query, $inserimento) or die(mysql_error());
cambiare parametri
$num = mysql_affected_rows();
// Se la riga e' inserita mandiamo un avviso e settiamo l'hash
// nell'array di sessione. Oppure avvisiamo del fallimento.
// in questo ultimo caso notate che l'hash non viene prodotto e
// che ripresentiamo comunque il form in entrambi i casi.
if($num == 1) {
echo "
Dati inseriti per inserire nuovi dati
<a href=\"prova3.php\">clicca qui</a></p>
";
$_SESSION['check'] = MD5(serialize($_POST));
exit;
}
else {
echo "
Dati NON inseriti - Riprova";
exit;
}
}
// nel caso non fosse settato $_POST perche' e' la prima volta che viene eseguita la pagina
// oppure $POST settato ma con dei campi vuoti. presentiamo o ripresentiamo il form.
} else {
}