Salve a tutti,
ho un problema con l'aggiornamento delle immagini articoli. Nei seguenti files visualizzo i campi e le immagini dell'articolo selezionato e permetto di modificare i campi testo così come le immagini.
articolim.php
Codice PHP:
<form action="modifica.php" method="post" enctype="multipart/form-data" name="form1">
<?php
include ("config.inc.php");
include ("connect.php");
//nome tabella database
$tabella = 'demoarticoli';
$id = $_GET['id'];
$query ="SELECT * FROM $tabella WHERE idart='$id'";
$result = mysql_query($query,$db);
while($row = mysql_fetch_array($result)) {
echo "[b]ID:[/b] $id";
$img1 = $row['immagine'];
$img2 = $row['immagine2'];
$img3 = $row['immagine3'];
$percorso = "TBASE/img/";
//$_FILES['userfile']['name']
?>
<input name="posted" type="hidden" id="posted" value="posted" />
<input name="id" type="hidden" value="<?php echo $row['idart']; ?>" />
</p>
<label>
</label>
</p>
<table width="800" border="0">
<tr>
<td width="169" bgcolor="#000033"><span class="Stile6 Stile3 Stile9">[b]articolo[/b]</span></td>
<td width="288" bgcolor="#000033"><span class="Stile6 Stile3 Stile9">[b]descrizione Promo[/b]</span></td>
<td colspan="2" bgcolor="#000033"><span class="Stile3 Stile6">
<label>
</label>
</span></td>
</tr>
<tr>
<td rowspan="3" valign="top" bgcolor="#999999"><input name="articolo" type="text" class="Stile6" id="articolo" value="<?php echo $row['articolo']; ?>" /></td>
<td rowspan="3" bgcolor="#999999"><span class="Stile3 Stile6">
<textarea color="yellow" name="descrizione" cols="40" rows="5" id="descrizione"><?php echo $row['descrizione']; ?></textarea>
</span></td>
<td width="133" bgcolor="#999999"><div align="right"><span class="Stile6 Stile3">[b]
<input type="checkbox" name="promozioni" id="promozioni" />
[/b]</span></div></td>
<td width="192" bgcolor="#999999"><span class="Stile6 Stile3 Stile9">[b]promozioni[/b]</span></td>
</tr>
<tr>
<td bgcolor="#999999"><div align="right"><span class="Stile6 Stile3">[b]
<input type="checkbox" name="novita" id="novita" />
[/b]</span></div></td>
<td bgcolor="#999999"><span class="Stile6 Stile3 Stile9">[b]novita[/b]</span></td>
</tr>
<tr>
<td bgcolor="#999999"><div align="right"><span class="Stile6 Stile3">[b]
<input type="checkbox" name="esclusivo" id="esclusivo" />
[/b]</span></div></td>
<td bgcolor="#999999"><span class="Stile6 Stile3 Stile9">[b]esclusivo[/b]</span></td>
</tr>
<tr>
<td bgcolor="#000033"><span class="Stile6 Stile3 Stile9">[b]prezzo[/b]</span></td>
<td bgcolor="#000033"><span class="Stile6 Stile3 Stile9">[b]descrizione Dettaglio[/b]</span></td>
<td colspan="2" bgcolor="#000033"><span class="Stile6"></span></td>
</tr>
<tr>
<td bgcolor="#999999"><input name="prezzo" type="text" class="Stile6" id="prezzo" value="<?php echo $row['prezzo']; ?>" /></td>
<td rowspan="4" bgcolor="#999999"><span class="Stile3 Stile6">
<textarea name="dettaglio" cols="40" rows="5" id="dettaglio"><?php echo $row['dettaglio']; ?></textarea>
</span></td>
<td colspan="2" rowspan="4" bgcolor="#999999"><span class="Stile6"></span></td>
</tr>
<tr>
<td bgcolor="#999999"><span class="Stile6 Stile3 Stile9">[b]sconto %[/b]</span></td>
</tr>
<tr>
<td bgcolor="#999999"><input name="sconto" type="text" class="Stile6" id="sconto" value="<?php echo $row['sconto']; ?>" /></td>
</tr>
<tr>
<td bgcolor="#999999"></td>
</tr>
<tr>
<td bgcolor="#000033"><span class="Stile6"></span></td>
<td rowspan="4" bgcolor="#000033"><span class="Stile6"></span></td>
<td colspan="2" rowspan="4" bgcolor="#000033"><span class="Stile6"></span></td>
</tr>
</table>
<table width="800" border="0">
<tr>
<td bgcolor="#000033"><span class="Stile10">immagine 1 presente sul server:</span></td>
<td bgcolor="#000033"><span class="Stile10">immagine 2 presente sul server:</span></td>
<td bgcolor="#000033"><span class="Stile10">immagine 3 presente sul server:</span></td>
</tr>
<tr>
<td bgcolor="#999999"><?php echo "[img]img/$img1[/img] ";?></td>
<td bgcolor="#999999"><label><?php echo "[img]img/$img2[/img] ";?> </label></td>
<td bgcolor="#999999"><?php echo "[img]img/$img3[/img] ";?></td>
<input name="img1" type="hidden" value="<?php $img1; ?>" />
<input name="img2" type="hidden" value="<?php $img2; ?>" />
<input name="img3" type="hidden" value="<?php $img3; ?>" />
</tr>
<tr>
<td bgcolor="#000033"><span class="Stile10">immagine 1 nuova:</span></td>
<td bgcolor="#000033"><span class="Stile10">immagine 2 nuova:</span></td>
<td bgcolor="#000033"><span class="Stile10">immagine 3 nuova:</span></td>
</tr>
<tr>
<td bgcolor="#999999"><input type="file" name="userfile" id="userfile"/></td>
<td bgcolor="#999999"><label>
<input type="file" name="userfile2" id="userfile2" />
</label></td>
<td bgcolor="#999999"><input type="file" name="userfile3" id="userfile3" /></td>
</tr>
<tr>
<td bgcolor="#999999">
</p>
</p></td>
<td bgcolor="#999999">
</p>
<input type="submit" name="modifica" id="modifica" value="MODIFICA DATI" STYLE="font-family:sans-serif; font-size: 10px;
font-style:bold; background:#006699 none; color: #FFFFFF; width:10em"/>
</p></td>
<td bgcolor="#999999"></td>
</tr>
</table>
<?php } ?>
</form>
passi i valori a modifica.php
Codice PHP:
<?php
include ("config.inc.php");
include ("connect.php");
include ("articolim.php");
//nome tabella database
$tabella = 'demoarticoli';
//percorso della cartella dove mettere i file caricati
$uploaddir = 'img/';
//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];
//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];
print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name))
{
//Se l'operazione è andata a buon fine...
print "immagine 1 aggiornata";
}
$userfile_tmp = $_FILES['userfile2']['tmp_name'];
//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile2']['name'];
print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name))
{
//Se l'operazione è andata a buon fine...
print "immagine 2 aggiornata";
}
$userfile_tmp = $_FILES['userfile3']['tmp_name'];
//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile3']['name'];
print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name))
{
//Se l'operazione è andata a buon fine...
print "immagine 3 aggiornata";
echo "
";
}
//recupero informazioni da articolip.php
if (isset($_POST['posted'])) {
$id = $_POST['id'];
$articolo = $_POST['articolo'];
$descrizione = $_POST['descrizione'];
$dettaglio = $_POST['dettaglio'];
$prezzo = $_POST['prezzo'];
$sconto = $_POST['sconto'];
$img1 = $_POST['img1'];
$img2 = $_POST['img2'];
$img3 = $_POST['img3'];
$immagine = $_FILES['userfile']['name'];
$immagine2 = $_FILES['userfile2']['name'];
$immagine3 = $_FILES['userfile3']['name'];
$thumb = $_FILES['userfile']['name'];
$promozioni = $_POST['promozioni'];
$novita = $_POST['novita'];
$esclusivo = $_POST['esclusivo'];
if((empty($immagine) || (empty($immagine2) || (empty($immagine3))))) {
//controllo sicurezza campi
foreach ($_POST as $key => $value) {
$_POST[$key] = mysql_real_escape_string(htmlentities(trim($value)));
}
//inserimento dati su tabella
$query1="UPDATE demoarticoli SET articolo='$articolo', descrizione='$descrizione', dettaglio='$dettaglio', prezzo='$prezzo', sconto='$sconto', immagine='$img1', immagine2='$img2', immagine3='$img3', promozioni='$promozioni', novita='$novita', esclusivo='$esclusivo' WHERE idart='$id'";
$result = mysql_query($query,$db);
if($result) {
echo "Operazione conclusa: hai modificato $articolo senza aggiornare immagini";
}else{
echo "ERRORE: articolo non modificato";
}
}else{
//controllo sicurezza campi
foreach ($_POST as $key => $value) {
$_POST[$key] = mysql_real_escape_string(htmlentities(trim($value)));
}
//inserimento dati su tabella
$query="UPDATE demoarticoli SET articolo='$articolo', descrizione='$descrizione', dettaglio='$dettaglio', prezzo='$prezzo', sconto='$sconto', immagine='$immagine', immagine2='$immagine2', immagine3='$immagine3', thumb='$thumb', promozioni='$promozioni', novita='$novita', esclusivo='$esclusivo' WHERE idart='$id'";
$result = mysql_query($query,$db);
if($result) {
echo "Operazione conclusa: hai modificato $articolo";
}else{
echo "ERRORE: articolo non modificato";
}
}
}
}
?>
Il problema è che se non inserisco immagini non mi fa modificare nessun altro campo... se modifico tutte e tre le immagini invece sì. Senza alcun controllo mi sovrascrive le immagini anche se non carico nuove immagini obbligando l'utente alla modifica ad inserire sempre delle immagini.
Come posso gestire il controllo dell'inserimento delle immagini migliorando questo script?
Scusate l'eventuale confusione...