Ciao
Come ho già anticipato nella mia discussione precedente sto sviluppando un sistema per caricare, ridimensionare e visualizzare le immagini con jquery, php e mysql.
Sono già a buon punto. Però mi sono accorto di un problema.
Una volta riempiti i campi necessari per l'operazione di upload e cliccato sul pulsante
submitI dati e l'immagine relativa vengono caricati regolarmente; però se l'utente ri-clicca sul pulsante submit
vengono caricati di nuovo la stessa immagine con gli stessi dati. Vorrei evitare questo problema (azzerando tutto e
in pratica se l'utente dovesse sbadatamente rifare un submit in più fare in modo che non succeda neinte o venga avvertito).
Cosa dovrei fare?
Questo il codice (ancora non definitivo devo implementare le funzioni per il controllo dell'imput ecc ecc)
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
Titolo:<br />
<input name="titolo" type="text" size="20" maxlength="25"><br />
Descrizione:<br />
<textarea name="descrizione" cols="20" rows="4"></textarea><br />
Immagine:<br />
<input type="file" name="imagefile"><br />
<input type="submit" name="Submit" value="Submit">
<br /><br />
<?php
if(isset($_POST['Submit'])){
// faccio un po' di inclusioni...
@include 'config.php';
@require 'function.php';
@require 'function_res.php';
// Creo una array con i formati accettati
$tipi_consentiti = array("image/gif","image/jpeg","image/png");
// verifico che il formato del file sia tra quelli accettati
if ((@in_array($_FILES['imagefile']['type'], $tipi_consentiti))&& ($_FILES["imagefile"]["size"] < 4000000)){
// copio il file nella cartella delle immagini
@copy ($_FILES['imagefile']['tmp_name'], $path_imgp . $_FILES['imagefile']['name']);
// recupero i dati dal form
$titolo = @addslashes($_POST['titolo']);
$descrizione = @addslashes($_POST['descrizione']);
$nome = @addslashes($_FILES['imagefile']['name']);
$path = $path_imgp . stripslashes($nome);
$tipo = @addslashes($_FILES['imagefile']['type']);
// creo ridimensionamento
@makeresize($path_imgp,$path,$nome,$tipo);
// creo la miniatura
@makeThumb($path_imgt,$path,$nome,$tipo);
$min= "tb_" . $nome;
// aggiorno il database
$query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,thumb) VALUES('$titolo','$descrizione','$nome','$tipo','$min')";
$res = @mysql_query($query) or die (mysql_error());
@mysql_close($cn);
// Stampo a video un po' di informazioni
echo "Nome: ".$_FILES['imagefile']['name']."<br />";
echo "Dimensione: ".$_FILES['imagefile']['size']."<br />";
echo "Tipo: ".$_FILES['imagefile']['type']."<br />";
echo "Byte: ".$_FILES['imagefile']['size']."<br />";
echo "Copia eseguita con successo.";
}else{
// stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
echo "Impossibile eseguire l'upload. Formato non consentito o immagine troppo grande!";
}
}
?>
</form>
Grazie