Salve a tutti,
siccome so che sensa i miei problemi vi annoiate eccone un altro nuovo nuovo..!!
Io spero solo perchè è l'inizio ma ogni pagina che scrivo c'è qualcosa di anomalo..!!!
Allora l'intenzione stavolta è caricare le immagini tramite il presente script:
form:
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Carica la foto del tuo articolo</title>
<style type="text/css">
<!--
td {vertical-aling: top;}
-->
</style>
</head>
<body>
<form action="inserisci_foto_articolo.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Carica Foto</td>
<td><input type="file" name="caricafile" /></td>
</tr>
<tr>
<td>Descrizione Foto</td>
<td><input type="text" name="descrizione" /></td>
</tr>
<tr>
<td colspan="2" style="text-align:center"><input type="submit" name="submit" value="Inserisci" /></td>
</tr>
</table>
</form>
</body>
</html>
inserisci_foto_articolo.php:
Codice PHP:
<?php
//attivo la sessione per poter prelevare l'id dell'articolo che avevo salvato in sessione in precedenza
session_start();
//connessione database
include '../../connect_db.php';
// percorso cartella img_articolo
$dir = 'img_articolo/';
//assicurati che il carimcamento sia avvenuto correttamente
if ($_FILES['caricafile']['error'] != UPLOAD_ERR_OK){
switch ($_FILES['caricafile']['error']) {
case UPLOAD_ERR_INI_SIZE:
die ('Il file supera la dimensione massima cosentita dal server controllare le imposazioni server');
break;
case UPLOAD_ERR_FORM_SIZE:
die ('Il file supera la dimensione massima impostata nel form di inserimento');
break;
case UPLOAD_ERR_PARTIAL:
die ('Il file é stato caricato solo parzialmente');
break;
case UPLOAD_ERR_NO_FILE:
die ('Il file non é stato caricato');
break;
case UPLOAD_ERR_NO_TMP_DIR:
die ('Nel server non é presente una cartella temporanea');
break;
case UPLOAD_ERR_CANT_WRITE:
die ('Impossibile scrivere sul server, controlla di avere i permessi di scrittura abilitati nella cartella di destinazione del server');
break;
case UPLOAD_ERR_EXTENSION:
die ('Estenzione foto non supportata. Ricorda che sono accettati solo i seguenti formati: .jpeg, .png, .gif');
break;
}
}
// recupera le info sull'immagine appena caricata
$articolo_img_descrizione = $_POST['descrizione'];
echo $articolo_img_descrizione;
$articolo_id_associa = $_SESSION['articolo_id'];
list ($width, $height, $type, $attr) = getimagesize ($_FILES['caricafile']['tmp_name']);
echo '
' . "L'id dell'articolo é: " . $articolo_id_associa;
//si assicura che il file caricato sia effetivamete un tipo di immagine supportata
switch ($type) {
case IMAGETYPE_GIF:
$image = imagecreatefromgif ($_FILES['caricafile']['tmp_name']) or die ('Il file caricato non ha un formato supportato. formati supportati: .jpg, .png, .gif');
$ext = '.gif';
break;
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg ($_FILES['caricafile']['tmp_name']) or die ('Il file caricato non ha un formato supportato. formati supportati: .jpg, .png, .gif');
$ext = '.jpeg';
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng ($_FILES['caricafile']['tmp_name']) or die ('Il file caricato non ha un formato supportato. formati supportati: .jpg, .png, .gif');
$ext = '.png';
break;
default:
die ('Il formato del file caricato non é supportato');
}
//inserisce nella tabelle articolo_img le informazioni
$query = 'INSERT INTO articolo_img
(articolo_img_descrizione, articolo_id_associa)
VALUES
("' .$articolo_img_descrizione. '", "' .$articolo_id_associa. '")';
$result = mysql_query($query, $db) or die (mysql_error($db));
//recupera il valore articolo_img_id che mysql ha generato automaticamente inserendo le info sull'immagine
$last_id = mysql_insert_id();
echo '
'. "L'id della foto é: " . $last_id;
//dato che l'id è univoco lo si può utilizzare anche come nome dell'immagine per assicurarsi che l'immagine non sovrascriva altre immagini esistenti
$img_name = $last_id . $ext;
$_SESSION['img_nome'] = $img_nome;
//aggioriamo la tabella articolo_img con il nome dell'immagine
$query = 'UPDATE articolo_img
SET articolo_img_nomefile = "' .$img_name. '",
WHERE articolo_img_id = '.$last_id;
$result = mysql_query($query, $db) or die (mysql_error($db));
//salva l'immagine nella sua destinazione finale
switch ($type) {
case IMAGETYPE_GIF:
imagegif($image, $dir . '/' .$img_name);
break;
case IMAGETYPE_JPEG:
imagejpeg($image, $dir . '/' .$img_name, 100);
break;
case IMAGETYPE_PNG:
imagepng($image, $dir . '/' .$img_name);
break;
}
imagedestroy($image);
echo "Dovrebbe essere andato tutto bene visualizza l'anteprima" . '< a href="anteprima_articolo.php">Avanti</a>';
?>
il problema è che la bagina rimane bianca non vine caricata nessuna foto e non compare nessun immagine di errore. gli echo che vedete inseriti sono per gra arte per testare fino a dove il codice risponde ed su per giù cessa dopo il commento
Codice PHP:
//si assicura che il file caricato sia effetivamete un tipo di immagine supportata
perchè l'echo l'id dell'articolo è: da risultato mentre l'echo l'id della foto è: non compare prorio..!!