[RISOLTO]Utente Loggato, Modifica immagine personale in PHP

Nickname

Utente Attivo
18 Set 2013
122
0
0
Salve a tutti.
Ultimamente ho creato un sito con un sistema di registrazione e login.
Ho fatto in modo che gli utenti durante la registrazione possano inserire una propria immagine personale e tutte le immagini finiscono in una cartella chiamata uploadimg e ovviamente ho fatto in modo che non si possano caricare immagini con lo stesso nome.

Ora sto facendo la parte relativa alla modifica del profilo.
Ho fatto tutto tranne la parte che permette di cambiare l'immagine, come posso fare per fare in modo che l'utente carichi una nuova foto sostituendo la precedente ?

È molto urgente, grazie mille a tutti per l'aiuto :)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per sostituire l'immagine devi caricarla con lo stesso nome con cui l'utente l'ha caricata la prima volta.
hai salvato in qualche campo il nome della foto?
oppure la prima volta che l'utente l'ha caricata l'hai salvata es come suo_username.jpg o suo_id.jpg?
l'ideale sarebbe che avessi salvato anche il nome dell'immagine perche se è salvato comunque prima la cancelli poi la carichi e la salvi/uppi di nuovo.
per caricarla di nuovo devi comunque fare nello stesso modo in cui l'hai caricata la prima volta, basta che dove hai il form di modifica del nome tu aggiunga il campo file
comunque ti dico che sarebbe stato meglio salvare in tabella il nome perche es. se l'utente pippo ha caricato
pippo.jpg
e la vuole modificare caricando una png il nome diventa
pippo.png
e quindi non vai a sovrascrivere l'immagine
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
ciao
per sostituire l'immagine devi caricarla con lo stesso nome con cui l'utente l'ha caricata la prima volta.
hai salvato in qualche campo il nome della foto?
oppure la prima volta che l'utente l'ha caricata l'hai salvata es come suo_username.jpg o suo_id.jpg?
l'ideale sarebbe che avessi salvato anche il nome dell'immagine perche se è salvato comunque prima la cancelli poi la carichi e la salvi/uppi di nuovo.
per caricarla di nuovo devi comunque fare nello stesso modo in cui l'hai caricata la prima volta, basta che dove hai il form di modifica del nome tu aggiunga il campo file
comunque ti dico che sarebbe stato meglio salvare in tabella il nome perche es. se l'utente pippo ha caricato
pippo.jpg
e la vuole modificare caricando una png il nome diventa
pippo.png
e quindi non vai a sovrascrivere l'immagine

Grazie per aver risposto, allora:
L'immagine viene semplicemente salvata con il nome del file, ad esempio luca.jpg
Il problema del formato non c'è per ora perché permetto di caricare solo immagini jpg.
Questo è lo script che uso per permettere all'utente di fare l'upload dell'immagine alla sua registrazione

PHP:
if (isset($_FILES['foto']) && !empty($_FILES['foto']['name'])) {
    if ($_FILES['foto']['type'] != "image/jpeg")
        die("Il formato non è supportato, inserire file .jpeg, .jpg.");
    elseif (file_exists('uploadimg/' . $_FILES['foto']['name']))
        die("File già presente nel sito, rinominare il file.");
    elseif ($_FILES['foto']['size'] > 2097152)
        die("Il file non deve superare 2 MB");
    elseif (($width > 200) || ($height > 200))
        die("Le dimensioni dell'immagine non devono superare 200 x 200 pixel.");

    move_uploaded_file($_FILES['foto']['tmp_name'], 'uploadimg/' . $_FILES['foto']['name']);
}

Vorrei sapere una cosa inoltre, come posso fare in modo che si possano caricare anche altri formati ?
E un'altra cosa, la parte dove specifico la grandezza in pixel funziona? Perché a volte me la prende nonostante sia più grande, altre volte invece no.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco uno schema per far caricare un formato diverso e per verificare il tipo di formato ammesso
PHP:
<?php
//ricavi il nome del file es pinco.jpg
//ti conviene sempre avere i nomi tutti minuscoli
$file=strtolower(pathinfo($_FILES['foto']['name'], PATHINFO_BASENAME));
//ricavi l'estenzione del file che per pinco.jpg è jpg
//poi ti servirà anche per la verifica
$estensione=strtolower(pathinfo($_FILES['foto']['name'], PATHINFO_EXTENSION));
//ricavi il nome
$nome=str_replace($estensione,"",$file);//diventa pinco.
$path="uploadimg/";//cartella dove hai le immagini
//cerchi se esiste un file chiamato pinco.jpg o pinco.png o pinco.gif
$trova=glob($path.$nome.'*');
//prima di fare altre operazioni ti conviene verificare se il nuovo file è ammesso
$tipo=array('jpg', 'gif','png');
if(in_array($estensione,$tipo)){
	//consentito
	//verifichi che sia stato trovato un file pinco.jpg o pinco.png o pinco.gif
	if(is_array($trova)){
		//trovato quindi lo elimini
		unlink($path.$tipo[0]);
	}
	//quindi carichi il file nuovo
	move_uploaded_file($_FILES['foto']['tmp_name'], $path . $file); 
}else{
	//avvisi che il tipo non è ammesso e rimandi dove ti pare
}
?>
certo se tu avessi messo il nome dell'immagine in tabella, forse, sarebbe stato più semplice

poi perche alle volte il size funzi e altre no non ti so dire
 

Nickname

Utente Attivo
18 Set 2013
122
0
0
ciao
ecco uno schema per far caricare un formato diverso e per verificare il tipo di formato ammesso
PHP:
<?php
//ricavi il nome del file es pinco.jpg
//ti conviene sempre avere i nomi tutti minuscoli
$file=strtolower(pathinfo($_FILES['foto']['name'], PATHINFO_BASENAME));
//ricavi l'estenzione del file che per pinco.jpg è jpg
//poi ti servirà anche per la verifica
$estensione=strtolower(pathinfo($_FILES['foto']['name'], PATHINFO_EXTENSION));
//ricavi il nome
$nome=str_replace($estensione,"",$file);//diventa pinco.
$path="uploadimg/";//cartella dove hai le immagini
//cerchi se esiste un file chiamato pinco.jpg o pinco.png o pinco.gif
$trova=glob($path.$nome.'*');
//prima di fare altre operazioni ti conviene verificare se il nuovo file è ammesso
$tipo=array('jpg', 'gif','png');
if(in_array($estensione,$tipo)){
	//consentito
	//verifichi che sia stato trovato un file pinco.jpg o pinco.png o pinco.gif
	if(is_array($trova)){
		//trovato quindi lo elimini
		unlink($path.$tipo[0]);
	}
	//quindi carichi il file nuovo
	move_uploaded_file($_FILES['foto']['tmp_name'], $path . $file); 
}else{
	//avvisi che il tipo non è ammesso e rimandi dove ti pare
}
?>
certo se tu avessi messo il nome dell'immagine in tabella, forse, sarebbe stato più semplice

poi perche alle volte il size funzi e altre no non ti so dire

Grazie mille, se invece volessi semplicemente modificare il mio script (senza scriverne uno diverso come il tuo) in modo che permetta di caricare più formati diversi ? Si può? Giusto per imparare cose nuove.

Per mettere il nome dell'immagine nella tabella cosa intendi di preciso?

E quindi poi come faccio per fare modificare l'immagine all'utente?

(Scusami se faccio tutte queste domande ma ne so poco di php :) )
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Grazie mille, se invece volessi semplicemente modificare il mio script (senza scriverne uno diverso come il tuo) in modo che permetta di caricare più formati diversi ? Si può?
Queste due righe di codice ti permettono già di inserire quei 3 diversi tipi di immagine.
PHP:
$tipo=array('jpg', 'gif','png');
if(in_array($estensione,$tipo)){
 
Discussioni simili
Autore Titolo Forum Risposte Data
N [RISOLTO]Modifica Profilo Utente PHP PHP 32
N [RISOLTO]Account Utente PHP PHP 17
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2

Discussioni simili