![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User
Data di registrazione: Sep 2006
Ubicazione: Bologna
Messaggi: 81
|
Ciao a tutti,
volevo chiedervi spiegazioni riguardo ad un problema che ho con un form in particolare quando sono in modifica. Ho una tabella mysql in cui salvo i dati che contiene i campi fornitore - articolo - immagine e i record vengono inseriti tramite un form method="post" enctype="multipart/form-data che mi presenta per immagine input type="file" che mi apre la finestra per scegliere l'immagine da caricare. OK va tutto bene! Fa anche upload! ![]() Ma se richiamo un record della tabella per modificarlo come devo gestire input type="file" ? Se non inserisco una nuova immagine vorrei che restasse quella vecchia e vorrei avere la possibilità di sceglierne tramite sfoglia un'altra! Son qui che penso da un po' ![]() Ciao Grazie Patpat |
|
|
|
|
|
|
|
#2 (permalink) |
|
Moderatore
Data di registrazione: Oct 2006
Messaggi: 913
|
Ciao Patpat,
è sufficiente che in fase di caricamento dell'immagine tu faccia un semplice test: $file_immagine = $_FILES['file']; if (isset($file_immagine['name'])){ //aggiorna l'immagine }else{ //non fare nulla } In soldoni vai a verifcare che il campo sfoglia contenga veramente qualcosa prima di aggiornare, in caso contrario non fai nulla. Non ricordo esattamente in php se l'if che ho scritto matcha correttamente nel caso in cui il campo sfoglia sia vuoto... in caso negativo basta spostare il controllo su qualcosa del tipo: if ($file_immagine['name']!=''){... Occhio anche alla variabile: $file_immagine['error'], che può risultare molto comoda. Per avere un quadro completo di ciò che hai e che puoi utilizzare, fatti stampare a monitor: var_dump($_FILES['file']); ![]() |
|
|
|
|
|
#4 (permalink) | |
|
User Newbie
Data di registrazione: Nov 2008
Messaggi: 3
|
Quote:
il mio prob. e il seguente: <form action="<? echo $editFormAction; ?>" method="post" name="form1" id="form1" enctype="multipart/form-data"> <p><b>Titolo:</b><br /> <input type="text" name="titolo" value="<? echo htmlentities($row_modifica_opinioni['titolo'], ENT_COMPAT, 'utf-8'); ?>" size="120" /> <p><b>Sottotitolo:</b><br /> <textarea name="testo_breve" cols="100"><? echo htmlentities($row_modifica_opinioni['testo_breve'], ENT_COMPAT, 'utf-8'); ?></textarea> <p><b>Testo intero:</b><br /> <textarea name="testo_intero" cols="100" rows="30"><? echo htmlentities($row_modifica_opinioni['testo_intero'], ENT_COMPAT, 'utf-8'); ?></textarea> </p> <img src="../foto/<?php echo $row_modifica_opinioni['foto_a']; ?>" width="150"/> <p><b>Cambia foto:</b><br /> <input type="file" name="foto_a"></p> <p><b>Cambia foto:</b><br /> <input type="file" name="foto_b"></p> <input type="submit" value="Salva modifiche" /> <input type="hidden" name="MM_update" value="form1" /> <input type="hidden" name="id" value="<?php echo $row_modifica_opinioni['id']; ?>" /> </form> ora... dove dovrei inserire quel tuo if? ![]() | |
|
|
|
|
|
#5 (permalink) |
|
Moderatore
|
Ti conviene usare i parametri get, anche...
se la pagina si chiama file.php, quando la richiamerai, per effettuare un nuovo upload, la richiamerai cosi: www . iltuosito. it/file.php?action=upload <?php if(!isset($_GET['action']) ||($_GET['action'] == "upload")){ if(!isset($_FILES['file]['name'])){ ?> <form action="<? echo $editFormAction; ?>" method="post" name="form1" id="form1" enctype="multipart/form-data"> <p><b>Titolo:</b><br /> <input type="text" name="titolo" value="<? echo htmlentities($row_modifica_opinioni['titolo'], ENT_COMPAT, 'utf-8'); ?>" size="120" /> <p><b>Sottotitolo:</b><br /> <textarea name="testo_breve" cols="100"><? echo htmlentities($row_modifica_opinioni['testo_breve'], ENT_COMPAT, 'utf-8'); ?></textarea> <p><b>Testo intero:</b><br /> <textarea name="testo_intero" cols="100" rows="30"><? echo htmlentities($row_modifica_opinioni['testo_intero'], ENT_COMPAT, 'utf-8'); ?></textarea> </p> <img src="../foto/<?php echo $row_modifica_opinioni['foto_a']; ?>" width="150"/> <p><b>Cambia foto:</b><br /> <input type="file" name="foto_a"></p> <p><b>Cambia foto:</b><br /> <input type="file" name="foto_b"></p> <input type="submit" value="Salva modifiche" /> <input type="hidden" name="MM_update" value="form1" /> <input type="hidden" name="id" value="<?php echo $row_modifica_opinioni['id']; ?>" /> </form> <?php } }else{ //qui il codice che vuoi! } ?> |
|
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.
Ultima modifica di ilnetsurfer : 25-11-08 15:39. |
|
|
|
|
|
|
#6 (permalink) |
|
User Newbie
Data di registrazione: Nov 2008
Messaggi: 3
|
Aiutooo
Ok ho fatto come mi hai detto tu... ho aggiunto ?action=upload alla pagina che si collega a questa pagina di modifica:
<?php require_once('../connections/ZilliDB.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE opinioni SET titolo=%s, testo_breve=%s, testo_intero=%s, foto_a=%s, foto_b=%s WHERE id=%s", GetSQLValueString($_POST['titolo'], "text"), GetSQLValueString($_POST['testo_breve'], "text"), GetSQLValueString($_POST['testo_intero'], "text"), GetSQLValueString($_FILES['foto_a']['name'], "text"), GetSQLValueString($_FILES['foto_b']['name'], "text"), GetSQLValueString($_POST['id'], "int")); $cartella = '../foto/'; $percorso = $_FILES['foto_a']['tmp_name']; $nome = $_FILES['foto_a']['name']; move_uploaded_file($percorso, $cartella . $nome); mysql_select_db($database_ZilliDB, $ZilliDB); $Result1 = mysql_query($updateSQL, $ZilliDB) or die(mysql_error()); $updateGoTo = "../admin/admin_opinioni.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo)); } $colname_modifica_opinioni = "-1"; if (isset($_GET['id'])) { $colname_modifica_opinioni = $_GET['id']; } mysql_select_db($database_ZilliDB, $ZilliDB); $query_modifica_opinioni = sprintf("SELECT * FROM opinioni WHERE id = %s", GetSQLValueString($colname_modifica_opinioni, "int")); $modifica_opinioni = mysql_query($query_modifica_opinioni, $ZilliDB) or die(mysql_error()); $row_modifica_opinioni = mysql_fetch_assoc($modifica_opinioni); $totalRows_modifica_opinioni = mysql_num_rows($modifica_opinioni); ?> <head> <title>// AMMINISTRAZIONE SITO </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div id="content"> <table width="100%" border="0" cellpadding="2"> <tr> </tr> <tr> <td valign="top"> <?php include ("menu_admin.php"); ?> </td> <td valign="top" id="main" width="81%" rowspan="2"><br /> <?php if(!isset($_GET['action']) ||($_GET['action'] == "upload")){ if(!isset($_FILES['file']['name'])){ ?> <form action="<? echo $editFormAction; ?>" method="post" name="form1" id="form1" enctype="multipart/form-data"> <p><b>Titolo:</b><br /> <input type="text" name="titolo" value="<? echo htmlentities($row_modifica_opinioni['titolo'], ENT_COMPAT, 'utf-8'); ?>" size="120" /> <p><b>Sottotitolo:</b><br /> <textarea name="testo_breve" cols="100"><? echo htmlentities($row_modifica_opinioni['testo_breve'], ENT_COMPAT, 'utf-8'); ?></textarea> <p><b>Testo intero:</b><br /> <textarea name="testo_intero" cols="100" rows="30"><? echo htmlentities($row_modifica_opinioni['testo_intero'], ENT_COMPAT, 'utf-8'); ?></textarea> </p> <img src="../foto/<?php echo $row_modifica_opinioni['foto_a']; ?>" width="150"/> <p><b>Cambia foto:</b><br /> <input type="file" name="foto_a"></p> <p><b>Cambia foto:</b><br /> <input type="file" name="foto_b"></p> <input type="submit" value="Salva modifiche" /> <input type="hidden" name="MM_update" value="form1" /> <input type="hidden" name="id" value="<?php echo $row_modifica_opinioni['id']; ?>" /> </form> <?php } }else{ //qui il codice che vuoi! } ?> </td> </tr> <tr> <td width="19%"> <ul> <li><a href="opinioni_inserisci.php">Inserisci nuova opinione</a></li> <li><a href="admin_opinioni.php">Lista delle opinioni</a></li> </ul> </td> </tr> </table> </div> </body> </html> <?php mysql_free_result($modifica_opinioni); ?> pero' mi da un error nella stringa: } header(sprintf("Location: %s", $updateGoTo)); } e non mi rimanda alla pagina deffinita updateGoTo admin_opinioni :-( se qualcuno mi puo' aiutare... gli sarei grato GRAZIE |
|
|
|
|
|
#7 (permalink) |
|
Moderatore
|
Sono sicuro che ti dà il famoso errore degli header...prova cosi:
Codice PHP:
|
|
|
|
|
|
#8 (permalink) |
|
User Newbie
Data di registrazione: Nov 2008
Messaggi: 3
|
si, esatto.. prima mi dava l'errore per il header... Pero' ora nacora non funziona... mi salva la prima volta la foto/immagine pero' appena vadfo la seconda volta per fare delle correzioni al testo.. do "salva modifiche" di nuovo mi salva "spazio vuoto" nel db :-(
dai che forse ce la facciamo... Comunque grazie per l'impegno... |
|
|
|