Io ho uno script che uploda un'immagine sul server e salva i dati sul db relativi al titolo/data/categoria. All'interno dell'ultimo else ho tutte le varie operazione di salvataggio sul db...tralasciando il codice che credo faccia parecchio schifo, anzi, se mi date qualche suggerimento su come sistemarlo non sarebbe male. Quando uno fa submit nel form si apre il pop-up che esegue il codice e dice se tutto è andato a buon fine. Prima di tutto mi piacerebbe far uscire gli eventuali errori direttamente sul form, anche se non sò da dove iniziare per farlo. Poi mi piacerebbe che se uno uploda un'immagine non delle dimensioni consentite, invece di dare l'errore si apre l'immagine con la possibilità di fare il crop della stessa, però anche qua come faccio a non far eseguire il codice di inserimento dati nel db, ma di farlo solo se l'immagine è stata croppata ?
Codice PHP:
if (empty($_FILES['upl_file']['name'])){
echo __("You must select a picture of your gallery");
}
else {
$allowed_types = explode(' ', trim(strtolower($imagesallowed)));
$img1_name = $_FILES['upl_file']['name'];
$img1 = $_FILES['upl_file']['tmp_name'];
$imgtype = explode(".",$img1_name);
$imgtype = strtolower($imgtype[count($imgtype)-1]);
$checkthatimage = getimagesize($img1);
if (($checkthatimage[0] != 107) && ($checkthatimage[1] != 156)) {
unlink($img1);
die (__("The only dimension allowed is 107 X 156 pixels"));
}
if (in_array($imgtype, $allowed_types) == false) {
echo sprintf(__('File %1$s of type %2$s is not allowed.') , $img1_name, $imgtype);
}
else {
if( $_FILES['upl_file']['size'] > ($maxuploadsize*1024))
echo __("File is larger than allowed limit!");
else {
if($_FILES['upl_file']['size'] > 0){
$fileuploaded = rand(1, 1000).$img1_name;
$pathtofile2 = $upl_path.$fileuploaded;
if(file_exists($pathtofile2)){
printf(__("The filename '%s' already exists, try to refresh this page!"), $img1_name);
}
else {
$moved = move_uploaded_file($img1, $pathtofile2);
if (!$moved) {
$moved = copy($img1, $pathtofile2);
}
if (!$moved) {
printf(__("Couldn't upload your file to %s."), $pathtofile2);
} else {
chmod($pathtofile2, 0666);
@unlink($img1)