upload immagine profilo utente

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Buonasera,
Vorrei creare la possibilita' per l'utente di caricare una semplicissima immagine profilo sulla sua pagina e farsi che ogni volta che si logga ,che essa sia visibile e modificabile ma devo ammettere che ho dei problemi nella'attuarlo e gradirei una mano....
Questo e' il form upload

userupload.php
PHP:
<form enctype="multipart/form-data" action="useruploadscript.php" method="post">
		<input name="userimage" type="file" />
		<input type="submit" value="Carica Foto" name="send"></td>
	</form>

Questo e' lo script

useruploadscript.php
PHP:
<?php
//Impostazioni varie da modificare a piacimento
$dimensione_max = '12600000'; 						// Dimensione massima delle foto
$upload_dir = './files';							// Cartella dove posizione le foto
$estensioni = array ("png", "jpg", "gif"); 			// Tipi di File consentiti
$noSubmitSend = 'Nessun upload eseguito!';			// Messaggio di errore quando viene richiamato direttamente lo script PHP
$wrongExt = 'Estensione file non valida!';			// Messaggio di errore per tipo di file non consentito
$tooBig = 'Il file eccede la dimensione max!';		// Messaggio di errore per file troppo grande
$thatsAll = 'Foto caricata con successo!';			// Messaggio di OK per upload corretto
$wrongUp = 'Something wrong here!';					// Messaggio di errore quando lo script non riesce ad eseguire l'upload
//***************************************
 
// Controllo il submit del form HTML...
if(isset($_POST['send'])) {
	$file = $_FILES['userimage']['name'];
 
	// Controllo il tipo di file...
	if(in_array(array_pop(explode('.',$file)),$estensioni)) {
 
		// Controllo la dimensione del file...
		$dimensione_file = $_FILES['userimage']['size'];
		if ($dimensione_file > $dimensione_max) {
			print $tooBig;
		} else {
			doUpload($file, $upload_dir);
		}
 
	} else {
		print $wrongExt;
	}
} else {
	print $noSubmitSend;
}
 
 
function doUpload($file, $upload_dir) {
	global $thatsAll;
 
	$nomefile = $_FILES['userimage']['tmp_name'];
	$nomereale = $_FILES['userimage']['name'];
	$nomereale = htmlentities(strtolower($nomereale));
 
	if (is_uploaded_file($nomefile)) {
		$newname = ($nomereale);
 
		$ext = end(explode('.',$nomereale));
		$filename = explode('.',$nomereale);
		if (file_exists($upload_dir.'/'.$nomereale)) {
			$filename[0] .= '.';
			for ($a=0;$a<=9;$a++)
				$filename[0] .= chr(rand(97,122));
			$newname = $filename[0] . '.' . $ext;
		}
 
		$newname = str_replace(' ', '_', $newname);
 
		@move_uploaded_file($nomefile,($upload_dir.'/'.$newname));
		print $thatsAll;
	} else print $wrongUp;
 
}
?>


Non so davvero come fare fare...l'immagine me la carica nella cartella FILES ma vorrei che si vedesse nella pagina profilo utente con possibilita' di modificarla quando ritiene opportuno.
 
ciao
devi collegare l'immagine all'utente.
penso che tu abbia una tabella 'utenti' visto che parli di loggatura tipo
Codice:
id
username
password
se all'utente è permesso caricare una sola immagine ed eventualmete modificarla potresti aggiungere un campo alla tabella utenti
Codice:
id
username
password
immagine
dove andrai a salvare il nome dell'immagine, tra l'altro essendo unica basta che venga chiamata es suo_user.jpg senza stare a usare il random
quando l'utente la cambia con un altra al caricamento gli dai lo stesso nome in modo che la nuova spvrasciva la vecchia e così non ti trovi n immagini nella cartella

se invece l'utente può caricare più immagini ti conviene fare una tabella 'immagini' del tipo
Codice:
id
id_utente
immagine
variando il nome ad ogni caricamento es suo_user_numero.jpg done numero può essere un numero random
qundo l'utente si logga prelevi anche il nome dell'immagine e la visualizzi
 
Volevo dare all'utente la possibilita' di caricare una sola immagine e poterla modificare.
Quindi quali modifiche dovrei fare allo script ?
Mi dai una mano piu' concreta?Sono un pivellino con PHP.....:crying:

Aggiungo che per ogni utente vi' e' una cartella diversa nominata / id_user/ ....1,2,3,4,5 etc
 
Ultima modifica:

Discussioni simili