Stampare variabile da una funzione

drummelo

Nuovo Utente
28 Ott 2013
2
0
0
Ciao a tutti. Mi sto cimentando nel costruire una funzione per fare l'upload di un immagine, e funziona benissimo per come volevo che funzionasse.
L'unico problema è che una volta fatto l'upload non riesco a stampare, fuori dalla funzione, il nome dell'immagine uploadata.
Per eseguire la funzione, mi servono l'immagine postata (il nome del campo invio dati), la cartella di destinazione, un indice per indicare quale immagine è, un eventuale vecchia immagine già presente nel database (cosi posso sfruttarla sia quando inserisco un nuovo articolo sia quando lo modifico).
Vi posto il codice cosi è più chiaro:

PHP:
function img($img_postata,$cartella,$i,$img_vecchia){

			//  FOTO1  //////////////////////////////////////////////////////
			if (is_uploaded_file($_FILES[$img_postata]['tmp_name'])) {

				//controlliamo che il file rispetti le dimensioni impostate
					if ($_FILES[$img_postata]["size"] < 2042000){
						//controlliamo se ci sono stati errori durante l'upload
						if ($_FILES[$img_postata]["error"] > 0){
							echo "Codice Errore: " . $_FILES[$img_postata]["error"];
						}else{
		
							//stampo alcune informazioni sul file
							
							//tipo di file
							$tipo = $_FILES[$img_postata]["type"];
							
							//controllo estensione consentita
							if(($tipo !== 'image/jpeg') && ($tipo !== 'image/jpg') && ($tipo !== 'image/gif') && ($tipo !== 'image/bmp') && ($tipo !== 'image/png')){
								die("Estensione del file non consentita.<br /><br />Utilizzare un\'immagine con estensione <b>jpg</b>, <b>jpeg</b>, <b>gif</b>, <b>png</b>, <b>bmp</b>.");
							}
							
							// Tolgo gli spazi, i trattini e i trattini bassi
							$_FILES[$img_postata]["name"] = str_replace(" ", "", $_FILES[$img_postata]["name"]);
							$_FILES[$img_postata]["name"] = str_replace("-", "", $_FILES[$img_postata]["name"]);
							$_FILES[$img_postata]["name"] = str_replace("_", "", $_FILES[$img_postata]["name"]);
							
							//sposto il file caricato dalla cartella temporanea alla destinazione finale
							$random1 = rand(1,10000);
							move_uploaded_file($_FILES[$img_postata]["tmp_name"], $cartella . $random1 . $_FILES[$img_postata]["name"]);
			
						}
					}else{
						die ("Dimensione foto maggiore di quella consentita.");
					}
		
				$foto[$i] = $random1 . strtolower($_FILES[$img_postata]["name"]);
			
				// Se è stata postata l'immagine vecchia, controllo se è uguale o diversa alla nuova	
				if($img_vecchia != 'n'){
					// Se la nuova è diversa dalla vecchia Cancellazione foto old
					if($img_vecchia !== $foto[$i] && file_exists($cartella . $img_vecchia)){
						unlink($cartella . $img_vecchia);
					}else{ // oppure resta uguale alla vecchia
						$foto[$i] = $img_vecchia;
					}
				}// fine if isset img vecchia
				
				echo '<h3>Upload effettuato. Nome immagine: ' . $foto[$i] . '</h3>';
				
				return $foto[$i];
				
				
				
			}// fine if uploaded file
			///////////////////////////////////////////////////////////////////////////////////////////////////////////

} // fine function img

Quello che voglio fare è semplicemente questo:
echo $foto[$i];

Provo a fare echo $foto[0], considerato che non ci sono altri file nell'array e quindi il primo indice è zero, ma niente!

Ma non me lo stampa! Non c'è potenza! L'immagine me la mette correttamente nella cartella, con il nome corretto e non mi da il minimo errore, solo che non riesco a stampare il nome della foto. Questo mi serve per inserirlo nel database in maniera che poi va a cercare l'immagine da sola.

Mi potete aiutare? C'è sicuramente qualcosa che mi sfugge....
 

drummelo

Nuovo Utente
28 Ott 2013
2
0
0
Ho risolto.

Prima di
$foto[$i] = $random1 . strtolower($_FILES[$img_postata]["name"]);

ho semplicemente messo
global $foto;

e funziona tutto, anche se dopo vado a effettuare altre uguali funzioni per altri campi di upload.

:)
 
Discussioni simili
Autore Titolo Forum Risposte Data
elpirata [PHP] Stampare i valori di una variabile scritta su più righe PHP 1
S Stampare una variabile in ogni pagina usando le sessioni PHP 5
I stampare una stringa echo PHP 2
F Stampare valori di un database PHP 14
A Stampare dati da form PHP 15
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
G leggere file txt e stampare con php il contenuto a video PHP 7
F stampare a video i risultati della query PHP 1
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
B Stampare una porzione della pagina PHP 0
V Come stampare su Excel tabella con rowspan e colspan Javascript 2
elpirata Stampare carattere simbolo euro PHP 10
W Stampare file PDF in varie modalità. Windows e Software 5
L pdo (stampare un valore con ritorno a funzione) PHP 0
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
P [PHP] Stampare record di diverse tabelle ma con nomi uguali PHP 6
K [PHP] Stampare tabella da database differenti. PHP 4
M Stampare con php e mysql PHP 8
L [PHP] stampare un'array di un database PHP 0
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
T PHP+MYSQL: stampare record con numero progressivo PHP 3
cristoforo58 Stampare dei valori XML in PHP PHP 0
K [PHP] Cancellare e Stampare tabella PHP 3
M [PHP] come stampare un Qr-code in FPDF PHP 8
M [Javascript] "Stampare" nel codice Var JS Javascript 5
N [PHP] stampare pagina html PHP 0
fulviozecchin [Java] Stampare intervallo tra due interi senza cicli Java 2
F [PHP] Stampare dati inviati tramite ajax PHP 0
elpirata [RISOLTO]Stampare giorno della settimana in tabella php PHP 6
elpirata [PHP] [RISOLTO] Stampare classe css in base al risultato della query PHP 6
Fuego2806 Stampare dati Form su immagine di sfondo con html HTML e CSS 1
Fuego2806 [PHP] Stampare dati Form su immagine di sfondo con html PHP 70
webmachine [PHP] Problema: Stampare tutte le occorrenza di una SELECT PHP 2
momeraths come stampare immagini contenute in un database PHP 7
I stampare in video i dati inseriti nel db PHP 1
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
L Stampare immagine php PHP 2
elpirata Stampare a video in echo table il risultato di una query PHP 4
Shyson Stampare lista in ordine decrescente Database 1
A Stampare senza sidebar Javascript 0
F stampare array php PHP 2
N Non stampare valori duplicati PHP 1
T Stampare maschera fronte/retro MS Access 0
C Stampare font personalizzati HTML e CSS 2
S estrarre e stampare a video un record in un div PHP 7
N FPDF stampare pdf automaticamente su stampante impostata PHP 0
M Stampare valore di un array PHP 1
P Stampare a video PHP 1
P Stampare '<?' in php PHP 7
D Stampare una query in una tabella MySQL 2

Discussioni simili