allora, ho un form con alcuni campi testuali e due campi di selezioni di file facoltativi, nella pagina di inserimento effettivo nel database e upload dei file uso questo codice (se avete correzioni fatele pure
)
Codice PHP:
$immagine_url="";
$allegato_url="";
$immagine_valida="no";
$allegato_valido="no";
$query = "SELECT MAX(id) FROM news";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$new_id=$row[0]+1;
// CHECK IMMAGINE
if(isset($HTTP_POST_FILES['immagine'])) { if($HTTP_POST_FILES['immagine']['tmp_name']!="") {
if (!is_uploaded_file($HTTP_POST_FILES['immagine']['tmp_name'])) {
echo "
Errore nel caricamento dell'immagine! <a href=\"javascript:history.go(-1)\">Riprova</a>.";
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
}
else {
$maxfilesize=2000000;
if ($HTTP_POST_FILES['immagine']['size'] > $maxfilesize) {
echo "
Il file è troppo pesante. Prova a ridimensionare l'immagine e <a href=\"javascript:history.go(-1)\">riprovare</a>.";
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
} else {
if($HTTP_POST_FILES['immagine']['type'] != "image/gif" AND $HTTP_POST_FILES['immagine']['type'] != "image/pjpeg" AND $HTTP_POST_FILES['immagine']['type'] !="image/jpeg") {
echo "
L'immagine non è in un formato consentito (GIF o JPG). Convertirla e <a href=\"javascript:history.go(-1)\">riprovare</a>.";
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
} else {
copy($HTTP_POST_FILES['immagine']['tmp_name'],"immagini/I_".$new_id.strrchr($HTTP_POST_FILES['immagine']['name'],'.'));
unlink($HTTP_POST_FILES['immagine']['tmp_name']);
$immagine_valida="si";
$immagine_url="I_".$new_id.strrchr($HTTP_POST_FILES['immagine']['name'],'.');
}
}
}}
} else $immagine_valida="si";
// CHECK FILE ALLEGATO;
if(isset($HTTP_POST_FILES['allegato'])) { if($HTTP_POST_FILES['allegato']['tmp_name']!="") {
echo "settato ";
if (!is_uploaded_file($HTTP_POST_FILES['allegato']['tmp_name'])) {
echo "
Errore nel caricamento dell'allegato! <a href=\"javascript:history.go(-1)\">Riprova</a>.";
@unlink($HTTP_POST_FILES['allegato']['tmp_name']);
}
else {
echo "check ";
$maxfilesize=2000000;
if ($HTTP_POST_FILES['allegato']['size'] > $maxfilesize) {
echo "
Il file è troppo pesante. Caricare un file più piccolo <a href=\"javascript:history.go(-1)\">riprovare</a>.";
unlink($HTTP_POST_FILES['allegato']['tmp_name']);
} else {
copy($HTTP_POST_FILES['allegato']['tmp_name'],"allegati/A_".$new_id.strrchr($HTTP_POST_FILES['allegato']['name'],'.'));
unlink($HTTP_POST_FILES['allegato']['tmp_name']);
$allegato_valido="si";
$allegato_url="A_".$new_id.strrchr($HTTP_POST_FILES['allegato']['name'],'.');
}
}}
} else $allegato_valido="si";
// SE FILE VALIDI (O NON CARICATI) ESEGUI LA QUERY
if($immagine_valida=="si"&& $allegato_valido=="si") {
$titolo=htmlspecialchars($_POST['titolo']);
$testo=$_POST['testo'];
$data=date("Y-m-d");
$testo=str_replace("
","<p style=\"margin: 0; padding: 0;\">",$testo);
$query = "INSERT INTO news VALUES ('','$data','$titolo','$testo','$immagine_url','$allegato_url')";
mysql_query($query);
echo "INSERIMENTO AVVENUTO CON SUCCESSO!
<a href=\"elenco.php\">Torna all'elenco</a>
";
solo che non funziona l'upload dei file sul server.
Quando tento di inserire una news me la inserisce tranquillamente sia che i campi file siano pieni o vuoti, il rpoblema è che pare che i due if
if(isset($HTTP_POST_FILES['immagine']))
e
if(isset($HTTP_POST_FILES['allegato']))
diano sempre risultato falso, non permettendo di eseguire le istruzioni di caricamento....
come fare?
il form è questo:
Codice PHP:
<form name="upload" enctype="multipart/form-data" action="insert.php" method="post">
[b]TITOLO[/b]** (max 255 caratteri)
<input type="text" name="titolo" size="100" maxlength="255" value="" /></p>
[b]TESTO[/b]** (max 65.535 caratteri)
<textarea rows="14" cols="100" name="testo" ></textarea></p>
[b]SELEZIONA UNA IMMAGINE[/b] (solo JPG, JPEG e GIF - max 2Mbyte)
<input type="file" name="immagine" size="60" /></p>
[b]ALLEGA UN FILE[/b] (max 2Mbyte)
<input type="file" name="allegato" size="60" /></p>
<input type="submit" name="Invia" value="Invia">
</form>
ho sbagliato qualcosa? voi come li caricate i file?
grazie in anticipo per l'aiuto!
Ste.