[PHP] Modifica dell'immagine avatar

Stato
Chiusa ad ulteriori risposte.

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

In un post precedente ho parlato delle immagini, ho postato anche i codici che avevo. Ora, volevo capire come potevo modificare l'immagine se l'utente volesse farlo. Ho fatto dei tentativi, ma con risultati pessimi. Mi irivoglo sopratutto alle persone che fino ad ora mi hanno aiutatoo con grande successo positivo. Speravo che bastasse mettere una pagina tipo questa:

salva.php

PHP:
<?php

require_once("connetti.php");

//$email = $email;

$immagine = $_GET['immagine'];
echo "<h1> Immagine in corso di modifica. Attendere prego ... </h1>";

//$qry="UPDATE utenti  SET attivo='1' WHERE email='"$email'"';

$qry="UPDATE immagine  SET id='id' WHERE immagine='".$immagine."';";


if (mysql_query($qry)) {
    echo "... Immagine cambiata correttamente...";
    header("Refresh: 3;URL=paginaris.php"); 
    
   // header("Refresh: 3;URL=login.php"); 
    header("Refresh: 3;URL=login.php"); 
} else {
    echo "Errore: cambio immagine non avvenuto";
}

?>

E mik domandavo, la query è giusta ??? La seguente query che posto in separata sede:

PHP:
$qry="UPDATE immagine  SET id='id' WHERE immagine='".$immagine."';";
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Vuoi dare l'opportunità di cambiarla soltanto? Oppure di caricare altre e poi l'utente, tra quelle che ha caricato, sceglie l'avatar?
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Uhmmm non saprei,

Forse la seconda che hai detto.... Perchè le foto sono situate in una cartella chiamata immagini, quindi la dovrebbero selezionare da quella cartella penso. Tu cosa mi consigli ????
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Dipende di cosa si tratta.. Se è un forum come questo allora ne basta una e quando l'utente vuole cambiare avatar ne carica un'altra. Giusto per fare un esempio
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

L'idea mia è abbastanza confusionaria ancora. Nel senso che, se l'utente vuole cambiare l'avatar, deve avere a mio avviso, la possibilità di selezionare le immagini in una qualsiasi cartella del sul pc. Però bisogna dargli anche la possibilità. Inoltre potrebbe andar bene anche di far visualizzare le foto tutte quelle che ha. Entrambe le soluzioni andrebbero bene, ma volevo capire se l'update funziona anche per le immagini in quella maniera e quello che avevo postato era corretto o meno. Nell'incertezza te lo riposto:

o così:

PHP:
$qry="UPDATE immagine  SET immagine='immagine' WHERE id='".$id."';";

O pomì (a parte la battutina):

PHP:
$qry="UPDATE immagine  SET id='id' WHERE immagine='".$immagine."';";

Grazie.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Secondo me dovresti prima decidere cosa vuoi e poi successivamente metterei a programmarlo.
La query ha senso (se così si può dire) se l'utente può caricare un'immagine che andrà direttamente come avatar. Se non c'è l'effettovo bisogno di avere più immagini caricate online (di solito c'è il bisogno quando un altro utente per conoscerti ha l'accesso alle tue foto o altro). Se deve essere solo un 'avatar' allora ne basta una e basterebbe sovrascrivere l'altra senza cambiare nulla al db.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao,

E' solo un update dell'immagine quello che per ora voglio fare. Poi ci sarà anche la questione di più foto riunite in più album. Ma per adesso è solo aggiornare l'avatar nel caso in cui l'utente si stufi diell'immagine.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Ok allora basta salvare l'immagine caricata sempre con lo stesso nome, magari con l'id dell'utente in modo che nella cartella immagini/id_1.jpg ci sia l'avatar dell'utente con id 1.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao Buongiorno,

E come faccio a pescare l'id dell'utente che si trova nella tabella utenti e l'immagine si trova invece nella tabella immagine ????? Ho separato le informaazioni. C'è il modo di relazionarli fra loro ????? Se si come ???? Grazie.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Iniziamo col dire capisco che si tratta di una domanda anche se c'è un solo punto interrogativo :) detto questo l'id dell'utente lo puoi prendere dalla tabella utenti (suppongo) con una query su quella tabella.
Ricordo che tu metti in sessione il nome, è univoco il nome degli utenti? Cioè ci sei tu ("Fabio"), se si iscrive un altro Fabio può inserire il suo nome oppure è un username univoco? Se è univoco la foto la puoi chiamare col nome dell'utente
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao Longo,

Allora, il nome non è univoco, visto che al mondo non esiste un solo "fabio" ma ne esistono a milioni, invece per quanto riguarda lo username e di conseguenza l'email sono univoci. infatti, se tu ti registri, con un'email e con un usernamen nel mio caso: [email protected] paperinik4 (username), c'è un controllo su entrambi i campi. Se esiste nel db te lo segnala, attenzione l'email è già esistente e stesso vale per lo username. Attenzione lo username esiste nell'archivio. Inoltre ci sono anche i controlli dei caratteri sull'eìmail, ma quello è n'altra cosa. Quindi da come hai detto tu la foto non la posso chiamare con il njome dell'utente. ma tanto za questo punto se c'è l'ha memorizzata sul pc è l'utente che decide di come chiamare la foto. Nel mio caso ho messo una foto di paperinik presa da google immagini.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Allora chiama l'immagine con l'id dell'utente preso ovviamente dalla tabella utenti.
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Se utilizzi l'id dell'utente puoi anche non salvare niente nella tabella immagini e non ne avrai bisogno perché sai che nella cartella immagini/{id_utente}.jpg hai il suo avatar.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Basta che carica l'immagine nella cartella immagini e che da come nome all'immagine l'id dell'utente. Me lo devi dire tu se va bene.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

C'ho pensato parecchio e scusamis e ti rispondo in ritardo;

Ma a qwuesto punto non so. Sono molto indeciso. Ti rimando lo script per intero. Vedi se secondo te si può fare qualche modifica oppure va bene così. l'importante è che ci sia la selezione multipla ossita ctrl+tasto dx mouse.

index.php (originale)

PHP:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.js" type="text/javascript"></script>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'></script>
<script src='http://memai.altervista.org/js/jquerymin.js'></script><script 
<script>
function togli(x)
{
	$('#'+x).toggle();
	var immagine = document.getElementById('hidden'+x).value;
	$.get('togli.php',{img:immagine},function(done){$('#cancella_img').html(done)});
}


function carica()
{
	$.post('insert_immages.php',{fine:'yes'},function(done){$('body').html(done)});
}

</script>
<?php

require_once("connetti.php");


#se non esistono delle cartelle le creo
if(!file_exists('img_temp'))
{
	mkdir('img_temp/',0777);
}
if(!file_exists('immagini'))
{
	mkdir('immagini/',0777);
}
if($_POST['sub'])
{
	#Inizializzo la cartella dove andranno a finire le imamgini
	$dir = 'img_temp/';
	#ricevo i dati delle immagini
	#$nome per il nome del file, es: pippo.jpeg
	$nome = $_FILES['file']['name'];
	#$nome_temporaneo invece per il nome temporaneo che
	#il server crea per l'immagine pippo.jpeg
	$nome_temporaneo = $_FILES['file']['tmp_name'];
	
	#Inizializzo una variabile a cui dò un valore intero pari a 0
	#semplicemente per far girare il codice while e leggere l'array
	$n=0;
	#finche n sarà minore delle immagini caricate, il ciclo continuer�
	while($n<count($nome))
	{
		#trovo le informazioni , come: l'altezza, la larghezza e il sorgente delle immagini
		#creando una lista e usando poi getimagesize() per prelevare le informazioni
		list($larghezza,$altezza,$sorgente,$attributo) = getimagesize($nome_temporaneo[$n]);
		#creo uno switch in base al sorgente e per ogni caso  effettuer� un preciso evento
		switch($sorgente)
		{
			case IMAGETYPE_GIF:
			#creo le immagini
			$immagine = imagecreatefromgif($nome_temporaneo[$n]);
			imagegif($immagine, $dir.$nome[$n]);
			break;
			
			case IMAGETYPE_JPEG:
			$immagine = imagecreatefromjpeg($nome_temporaneo[$n]);
			imagejpeg($immagine, $dir.$nome[$n]);
			break;
			
			case IMAGETYPE_PNG:
			$immagine = imagecreatefrompng($nome_temporaneo[$n]);
			imagepng($immagine, $dir.$nome[$n]);
			break;
			
			case IMAGETYPE_BMP:
			$immagine = imagecreatefrombmp($nome_temporaneo[$n]);
			imagebmp($immagine, $dir.$nome[$n]);
			break;
		}
		
		#Creo il div dove gli assegno l'id per identificare  con JQuery le imamgini appena caricate
		?>	<div id='<?php echo $n?>'>
				<img src='<?php echo $dir.$nome[$n]?>' style='width:100px; height:100px'>
				<input  id='hidden<?php echo $n ?>' type='hidden' value='<?php echo $dir.$nome[$n] ?>'/>
				<div onclick='togli("<?php echo $n ?>")'>Togli</div>
			</div>
			<div id='rimetti<?php echo $n ?>'  onclick='rimetti("<?php echo $n ?>")' style='display:none'>Rimetti</div>
		<?php
		$n++; #aumento la variabile inizializzata per il funzionamento dello while
	}
	?>
		<div id='cancella_img'></div>
		<input type='submit' value='carica' onclick='carica();void 0'/>
	<?php
	exit;
}
?>
<form action='' method='POST' enctype='multipart/form-data'>
	<input type='file' name='file[]' multiple size ="60"/>
	<input type='submit'  name='sub' value='Carica'/>
</form>

insert_immages.php

PHP:
<?php
require_once("connetti.php");

if(isset($_POST['fine']))
{
	#Inserisci questa funzioncina per leggere tutti i file contenuti nella cartella immagini
	#che poi verranno inseriti nel db tramite una query grazie ad un for
	function illustrazioni($cartella){
		$foto=Array();
		if(file_exists($cartella)){
			$directory = opendir($cartella);
			while (false !== ($file = readdir($directory))) { 
				if(is_file($cartella.$file)){
					array_push($foto,$file);
				}
			}
			 closedir($directory);
		}
		sort($foto);
		return $foto;
	}
	$foto_t=array();
	$foto_t=illustrazioni("img_temp/");
	$conta = count($foto_t);
	for ($x=0; $x<$conta; $x++)
	{	
		$immagine_t = "img_temp/$foto_t[$x]";
		$immagine = "immages/$foto_t[$x]";
		echo "<img src='".$immagine_t."' width='100px' height='100px'> "; 
		#questa variabile contiene il valore dell'url  finale che si inserirà alla fine
		#Sposto i file nella cartella temporanea in quella fissa
		copy($immagine_t,'immages/'.$foto_t[$x]) or die('non si sposta la foto');
		##infine elimino il file nella directory temporanea
		unlink($immagine_t);
               
		$insert_query = "INSERT INTO immagine(immagine) VALUES('".$immagine."')";
		mysql_query($insert_query);
               
	}
	echo "Le immagini sono state inserite nel database con successo!";
}
mysql_close();

?>

togli.php (può esssere facoltativo se esserci onon esserci):

PHP:
<?php

require_once("connetti.php");

echo $_GET['img']." eliminata con successo!</div>";
#elimino il file con la funzione unlink()
unlink($_GET['img']);
?>

Una cosa, c'è una funzione sull'index.php che è legata al richiamo del file insert_immages.php. Tale funzione, si può togliere e unire l'index all'insert_immages.php ????

Ecco la funzioncina con il suo richiamo.

PHP:
function carica()
{
	$.post('insert_immages.php',{fine:'yes'},function(done){$('body').html(done)});    //E' questa che rompe, se si potesse togliere.....
}

A dire il vero, lil nome dell'avatar lo farei decidere all'utente . Ossia come sta nella sua cartella originale. Ad esempio se si chiama paperinik e lo vuole lasciare così perchè la scannarizato o preso da internet fatti suoi. D'altronde è l'utente che decide. ovviamente se modifica successivamente dalla sua cartella immagini il nopme dell'avatr è ovvio che quando si logga non vede più l'immagine sua selezionata. Perchè gli ha cambiato semplicemente eil nome o cancellata. Tu cosa ne pensi ??? Questa è l'idea che ho in mente. Che poi mi servirà per caricare molte immagini e creare un photo albumprese dallo scanner o da altra fonte. Le estensioni vanno bene le classiche. Senza limite di mb.

P.S.: Io non ci sono riuscito. ho provato ma nada.
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Come da titolo si parla della modifica dell'immagine avatar, unico argomento della discussione.
Apro una parentesi sulla prima parte del tuo commento. "("
Io lascerei tutto come sta!
Chiudo parentesi ")"

Per quanto riguarda le immagini dove è il problema? Le salvi col nome che aveva e metti l'indirizzo nel database. Lo avevi già fatto se non erro.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Io ci sono sempre, più che altro cerca di rimanere sempre attinente al titolo della discussione.
 
Stato
Chiusa ad ulteriori risposte.
Discussioni simili
Autore Titolo Forum Risposte Data
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
JeiMax Modifica codice php personalizzato PHP 2
P Modifica con PHP di un node in una sitemap xml PHP 0
M [PHP] Modifica account PHP 3
F [PHP] modifica del body email con checked PHP 8
M [PHP] Calcolare costi su modifica orari PHP 4
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
L [PHP] Modifica in tabella ultimo id PHP 5
Q Notice: Undefined index: codice in C:\xampp\htdocs\STAGE\calendario\modifica.php on line 10 PHP 8
Emix [PHP] Ricerca e modifica su due tabelle PHP 26
M [PHP] Tabella datagrid con icona di modifica che cambia in base a parametro PHP 0
K stampa e modifica tabella in php e ms sql PHP 2
A [PHP] [RISOLTO] Modifica record db da form PHP 11
T [PHP] piccola modifica a script (non mio...) PHP 8
Trapano [PHP] modifica simultanea di più campi nel db PHP 1
G Aiuto modifica PHP PHP 1
L Modifica di uno script in php PHP 1
X Modifica PHP+database un pò complessa PHP 1
F [Offro collaborazione][Gratuito] Modifica script PHP,jQuery,GD Library Offerte e Richieste di Lavoro e/o Collaborazione 0
N [RISOLTO]Utente Loggato, Modifica immagine personale in PHP PHP 9
N [RISOLTO]Modifica Profilo Utente PHP PHP 32
M Modifica profilo utente in php mysql PHP 1
simonetta619 Modifica dati con PHP PHP 44
F Modifica php tema ePhoto PHP 6
R modifica dati in tabella php+sql PHP 12
neo996sps Modifica query PHP con menu a tendina PHP 1
F Modifica Cancella Record tramite Form PHP Mysql PHP 70
R Back-end: modifica dati mysql da form php PHP 5
D Inserrimento/modifica php e mysql PHP 69
Y Aiuto per modifica php PHP 0
Z [PHP/MySql]modifica dei dati PHP 1
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1

Discussioni simili