Ho realizzato uno script che mi permette di inserire in un database i dati di strutture ricettive recuperate da un form. In allegato l'intero script. In questo script ho alcuni problemi:
1. riguarda le immagini.
La parte di codice è:
if(!is_uploaded_file($img))
{echo "Non è stata inserita nessuna immagine<br />";}
else { if($size > $max_size) {echo "Il file è troppo grande";}
else { list($width, $height, $type, $attr) = getimagesize($img); //recupero le dimensioni dell'immagine originale
$thumb = imagecreatetruecolor(120, 90) or die("Impossibile creare la miniatura"); //creo la versione 120x90 dell'immagine
$source = @imagecreatefromjpeg ($img) or die ("L'immagine deve essere in jpeg ".mysql_error());
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height) or die("Impossibile ridimensionare l'immagine");
$img_min = imagejpeg($thumb, $img, 75);
}
}
Recupero l'immagine allegata dall'utente. controllo se è stato effettuato l'upload, se non è stata allegata l'immagine ho il messaggio: "Non è stata inserita nessuna immagine" e fin qui tutto ok. Il problema nasce quando l'immagine c'è ma è di grosse dimensioni. In tal caso voglio che verifichi che l'immagine è più grande e mi stampa il messaggio "Il file è troppo grande". Ma non lo fa, semplicemente mi dà il messaggio "Non è stata inserita nessuna immagine" e a questo punto credo che si blocca perchè non mi inserisce la struttura nel database.
2. Il secondo problema riguarda l'ultima parte del codice. Dopo che ho inserito la struttura ricettiva nella tabella del database delle strutture ho necessità di recuperare l'id dell'ultima struttura inserita, recuperare le categorie selezionate nel form tramite checkbox ed inserire questi valori, tramite INSERT, nella tabella categorie_strutture. (devono essere inserite tante righe quante sono le categorie selezionate)
Da tutorial cercati in rete sono riuscita a costruire la seguente parte del codice:
$sql_strcat = "INSERT INTO categorie_strutture (id_strutture, categoria) VALUES ";
foreach ($categoria as $value) {
$sql_strcat .= "('$id_struttura', '$value') ,";
}
if (strlen($sql_strcat)>0) { // E' necessario eliminare l'ultima virgola inserita nel FOREACH
$sql_strcat = substr($sql_strcat , 0, strlen($sql_strcat )-1);
}
ma non ottengo alcun risultato, ossia non sono inserite le categorie con l'id nel database.
Sono alle prime armi con il php posso anche aver fatto degli errori banali.
Spero che qualcuno mi illumini :book:
1. riguarda le immagini.
La parte di codice è:
if(!is_uploaded_file($img))
{echo "Non è stata inserita nessuna immagine<br />";}
else { if($size > $max_size) {echo "Il file è troppo grande";}
else { list($width, $height, $type, $attr) = getimagesize($img); //recupero le dimensioni dell'immagine originale
$thumb = imagecreatetruecolor(120, 90) or die("Impossibile creare la miniatura"); //creo la versione 120x90 dell'immagine
$source = @imagecreatefromjpeg ($img) or die ("L'immagine deve essere in jpeg ".mysql_error());
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height) or die("Impossibile ridimensionare l'immagine");
$img_min = imagejpeg($thumb, $img, 75);
}
}
Recupero l'immagine allegata dall'utente. controllo se è stato effettuato l'upload, se non è stata allegata l'immagine ho il messaggio: "Non è stata inserita nessuna immagine" e fin qui tutto ok. Il problema nasce quando l'immagine c'è ma è di grosse dimensioni. In tal caso voglio che verifichi che l'immagine è più grande e mi stampa il messaggio "Il file è troppo grande". Ma non lo fa, semplicemente mi dà il messaggio "Non è stata inserita nessuna immagine" e a questo punto credo che si blocca perchè non mi inserisce la struttura nel database.
2. Il secondo problema riguarda l'ultima parte del codice. Dopo che ho inserito la struttura ricettiva nella tabella del database delle strutture ho necessità di recuperare l'id dell'ultima struttura inserita, recuperare le categorie selezionate nel form tramite checkbox ed inserire questi valori, tramite INSERT, nella tabella categorie_strutture. (devono essere inserite tante righe quante sono le categorie selezionate)
Da tutorial cercati in rete sono riuscita a costruire la seguente parte del codice:
$sql_strcat = "INSERT INTO categorie_strutture (id_strutture, categoria) VALUES ";
foreach ($categoria as $value) {
$sql_strcat .= "('$id_struttura', '$value') ,";
}
if (strlen($sql_strcat)>0) { // E' necessario eliminare l'ultima virgola inserita nel FOREACH
$sql_strcat = substr($sql_strcat , 0, strlen($sql_strcat )-1);
}
ma non ottengo alcun risultato, ossia non sono inserite le categorie con l'id nel database.
Sono alle prime armi con il php posso anche aver fatto degli errori banali.
Spero che qualcuno mi illumini :book:
Ultima modifica: