Salve,
sono alle prime armi con PHP e sto diventando pazzo per integrare un upload di una immagine insieme a un inserimento di testo. Questo non sarebbe un problema se uso PHP "normale", ma siccome è uno script già pronto e fa uso delle librerie ADOdb sono dei giorni che ci sto perdendo la testa senza trovare una soluzione... Ripeto... sono anche alle prime armi quindi sicuramente mi sta sfuggendo qualcosa :dhò:
Questo è il contenuto php del file inserisci.php che inserisce il testo nella tabella "appuntamenti":
Questo il contenuto php del file upload.php :
Questo è l'include che chiama "upload" per ridimensionamento immagine, ecc... :
Io vorrei inglobare tutto nel file inserisci.php ma ho fatto molte prove includendo $result = inserisci_immagine($_POST); in ogni parte ma continua sempre a inserirmi solo l'insert del testo ma non quello dell'immagine...
C'è qualche anima pia che può aiutarmi? Sicuramente è una stupidata per voi!
Grazie
Davide
sono alle prime armi con PHP e sto diventando pazzo per integrare un upload di una immagine insieme a un inserimento di testo. Questo non sarebbe un problema se uso PHP "normale", ma siccome è uno script già pronto e fa uso delle librerie ADOdb sono dei giorni che ci sto perdendo la testa senza trovare una soluzione... Ripeto... sono anche alle prime armi quindi sicuramente mi sta sfuggendo qualcosa :dhò:
Questo è il contenuto php del file inserisci.php che inserisce il testo nella tabella "appuntamenti":
Codice:
<? $db = &ADONewConnection(CONF_DBTYPE); $db->PConnect(CONF_HOST,CONF_USER,CONF_PASS,CONF_DB); ////////////////////////////////////////////////////////////////////// if(($_POST["submit"]) && ($_POST["azione"]=="invia")){ // UPLOAD IMG $result = inserisci_immagine($_POST); $sql = "SELECT * FROM appuntamenti WHERE id_appuntamenti = -1"; $rs = $db->Execute($sql); $record = array(); while (list($chiave, $valore) = each($_POST)) { $record[$chiave] = $valore; } //if($record['id_mesi']!="3"): $record['id_imm']="0"; endif; //upload img $record['data_inizio'] = inserisci_data($_POST['data_inizio']); $record['data_scadenza'] = inserisci_data($_POST['data_scadenza']); $insertSQL = $db->GetInsertSQL($rs, $record); $db->Execute($insertSQL); if($insertSQL){ $messaggio = 'Il record è stato inserito con successo.'; }else{ $messaggio = 'Attenzione: non è stato possibile inserire il record a causa di un errore.<br>La preghiamo di riprovare.'; } echo '<script language="javascript" type="text/javascript">'; echo 'window.location.replace("?page=lista&modulo=appuntamenti");'; echo 'alert("'.$messaggio.'"); </script>'; }else{ $query_News = "SELECT MAX(pos) AS max_pos FROM appuntamenti"; $datiNews = $db->Execute($query_News); $max_pos = $datiNews->fields["max_pos"]+1; ?>
Questo il contenuto php del file upload.php :
Codice:
<? $db = &ADONewConnection(CONF_DBTYPE); $db->PConnect(CONF_HOST,CONF_USER,CONF_PASS,CONF_DB); ////////////////////////////////////////////////////////////////////// if(($_POST["submit"]) && ($_POST["azione"]=="invia")){ $result = inserisci_immagine($_POST); } ?>
Questo è l'include che chiama "upload" per ridimensionamento immagine, ecc... :
Codice:
<?php // funzione che crea un none univoco per la foto function random_name($filename){ $firsts = rand(0,999); $seconds = rand(0,999); $thirds = rand(0,999); $fourths = rand(0,999); $rand = $firsts.$seconds.$thirds.$fourths.'_'.$filename; return $rand; } // funzione che crea la thumbnail dalla foto function resizeImage($destinazione_img, $imgtype, $newwidth, $newheight, $filename, $quality, $destinazione){ list($width, $height) = getimagesize($destinazione_img.$filename); if($width > $height && $newheight < $height){ $newheight = $height / ($width / $newwidth); } else if ($width < $height && $newwidth < $width) { $newwidth = $width / ($height / $newheight); } else { $newwidth = $width; $newheight = $height; } // se è una jpeg if(($imgtype=='image/pjpeg') || ($imgtype=='image/jpeg')){ $source=@imagecreatefromjpeg($destinazione_img.$filename); // path to your gallery $foto = imagecreatetruecolor($newwidth, $newheight); // new image imagecopyresampled($foto, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagejpeg($foto, $destinazione.$filename , $quality); // se è una gif } else if($imgtype=='image/gif'){ $source=@imagecreatefromgif($destinazione_img.$filename); // path to your gallery $foto = imagecreatetruecolor($newwidth, $newheight); // new image imagecopyresampled($foto, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagegif($foto, $destinazione.$filename , $quality); } else if($imgtype=='image/x-png'){ $source=@imagecreatefrompng($destinazione_img.$filename); // path to your gallery $foto = imagecreatetruecolor($newwidth, $newheight); // new image imagecopyresampled($foto, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagepng($foto, $destinazione.$filename , $quality); } } //////////////// UPLOAD FOTO E SALVA IN DB ////////////////////////////////////////////// function inserisci_immagine($post){ global $global, $db; if($_FILES['file']['name'] != ""){ $copy = false; $types_array = array('image/gif','image/pjpeg','image/x-png'); $nome_originale = $_FILES['file']['name']; $filename = preg_replace("/\s+/i", "_", $_FILES['file']['name']); $filename = preg_replace("/[^a-z0-9_.-]/i", "", $filename); $filename = preg_replace("/_+/i", "_", $filename); $filename = random_name($filename); $imgtype = $_FILES['file']['type']; // individuo le dimensioni dell'img originale $imagesize = getimagesize($_FILES['file']['tmp_name']); $imgwidth = $imagesize[0]; $imgheight = $imagesize[1]; $foto_caricata = copy($_FILES['file']['tmp_name'], $global["img_temp_dir"].$filename); // ci sono le funzioni x lavorare con le immagini? if (function_exists("imagegif")) { $funzione_gif=1; } else{ $funzione_gif=0; } if (function_exists("imagepng")) { $funzione_jpg=1; } else { $funzione_jpg=0; } if (function_exists("imagejpeg")) { $funzione_png=1; } else { $funzione_jpg=0; } if(($funzione_gif==0) && ($imgtype==$types_array[0])){ echo "attenzione, no gif"; exit; } if(($funzione_jpg==0) && ($imgtype==$types_array[1])){ echo "attenzione, no jpg"; exit; } if(($funzione_png==0) && ($imgtype==$types_array[2])){ echo "attenzione, no png"; exit; } if(file_exists($global["img_temp_dir"].$filename)){ // ridimensiono la foto normale $myimage_img = resizeImage($global["img_temp_dir"] , $imgtype, $global["img_w"] , $global["img_h"] , $filename, '100', $global["img_dir"]); // ridimensiono la thumb $myimage_th = resizeImage($global["img_temp_dir"], $imgtype, $global["img_th_w"] , $global["img_th_h"] , $filename, '100', $global["img_th_dir"]); // ridimensiono la foto zoom $myimage_zoom = resizeImage($global["img_temp_dir"], $imgtype, $global["img_zoom_w"] , $global["img_zoom_h"] , $filename, '100', $global["img_zoom_dir"]); unlink($global["img_temp_dir"].$filename); $copy = true; } // prima recupero le dimensioni delle immmagini $file_ext = substr($filename, -3); if(file_exists($global["img_dir"].$filename)): $file_size_img = getimagesize($global["img_dir"].$filename); endif; if(file_exists($global["img_th_dir"].$filename)):$file_size_th = getimagesize($global["img_th_dir"].$filename); endif; if(file_exists($global["img_zoom_dir"].$filename)):$file_size_zoom = getimagesize($global["img_zoom_dir"].$filename); endif; // salvo le immagini nel database if($copy){ $sql = "SELECT * FROM appuntamenti WHERE id_appuntamenti = -1"; $rs = $db->Execute($sql); $record = array(); while (list($chiave, $valore) = each($post)) { $record[$chiave] = $valore; } $record["nome_originale"] = $nome_originale ; $record["nome"] = $filename; $record["size"] = $file_size_img; $record["size_th"] = $file_size_th; $record["size_zoom"] = $file_size_zoom; $record["ext"] = $file_ext; $record["th_w"] = $file_size_th[0]; $record["th_h"] = $file_size_th[1]; $record["img_w"] = $file_size_img[0]; $record["img_h"] = $file_size_img[1]; $record["zoom_w"] = $file_size_zoom[0]; $record["zoom_h"] = $file_size_zoom[1]; $record["trash"] = '0'; $record["data"] = date("Y-m-d H:i:s"); $insertSQL = $db->GetInsertSQL($rs, $record); $db->Execute($insertSQL); $lastId = $db->Insert_ID(); } } if($insertSQL && $lastId){ $return = "OK"; } else { $return = "KO"; } return $return; } ?>
Io vorrei inglobare tutto nel file inserisci.php ma ho fatto molte prove includendo $result = inserisci_immagine($_POST); in ogni parte ma continua sempre a inserirmi solo l'insert del testo ma non quello dell'immagine...
C'è qualche anima pia che può aiutarmi? Sicuramente è una stupidata per voi!
Grazie
Davide