Inserire un'immagine avatar nel profilo per avere ogni utente la sua pagina

paperinik4

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

Ciao Longo,

Allora ho verificato, e le immagini vengono memorizzate nel db o meglio i link. perchè le immagini mi hanno sconsigliato di memorizzarle nel db sennò diventa troppo pesante. Rimane permanente l'errore:

"Warning: strtoupper() expects parameter 1 to be string, array given in /volume1/web/utenti/provalogin/paginaris.php on line 26 "

La riga 26 di paginaris.php è la seguente:

PHP:
$array =  strtoupper($_SESSION['nome'] );     //che mi da il nome in maiuscolo inisieme a benvenuto

Ti posto i due file dell'immagine, tante volte riuscissi a trovare qualche errore che a me sufgge, e se per caso ti venisse in mente come unirli ben venga.

index.php:

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");
require_once("paginaris.php");
if(isset($_SESSION['nome'])) {


#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>
<?php
	
}
?>

Qua mi da un triangolino giallo non so il perchè. Me l'ha dato sempre:

PHP:
		list($larghezza,$altezza,$sorgente,$attributo) = getimagesize($nome_temporaneo[$n]); //triangolino giallo e sicuramente non me la fa eseguire

E questo è inser_immages.php:

PHP:
<?php
require_once("connetti.php");
require_once("paginaris.php");
if(isset($_SESSION['nome'])) {
    
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);
				}
			}
			$handle = 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 = "immagini/$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,'immagini/'.$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();
}
?>

Qua mi da un altro triangolino giallo, credo che sia un errore di sintassi:

PHP:
$handle = closedir($directory); //triangolino giallo (che sicuramente non mi fa eseguire la riga)

Se le tieni separati, funzionano magnificamenete, se provi ad unire il tutto succede un casino. In ultimo ti vorrei far notare che ho messo ad entrambi i file le seguenti righe:

PHP:
require_once("connetti.php");      //richiamo della connessione al db
require_once("paginaris.php");    //richiamo alla pagina protetta solo chi si logga la può vedere
if(isset($_SESSION['nome'])) {   //richiamo della sessione (forse sbaglio ???? Boh non saprei)

Ovviamente l'ultima parentesi graff si chiude a fine codice di entrambi. Grazie. Spero di risolvere insiema te il problema.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Si nel campo SRC devi inserire il link che è nel database quindi ti serve una query.
Mi dici il tuo "nome" sul sito?
Ti ha sempre dato questo errore?
 

paperinik4

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

Si nel campo SRC devi inserire il link che è nel database quindi ti serve una query.
Mi dici il tuo "nome" sul sito?
Ti ha sempre dato questo errore?

Io mi chiamo Fabio, piacere. Il mio contatto skype è: mousesenzapalle2007 (se tante volte mi vuoi aggiunre per avere un contatto diretto). Io sono registrato sul mio sito come paperinik4 che viene trasformato dalla sessione in Fabio tutto maiuscolo. Quell'errore me lo da solo quand ho inserito queste righe:

PHP:
require_once("connetti.php");
require_once("paginaris.php");
if(isset($_SESSION['nome'])) {

Sui file inser_immages e index. Non ci puoi arrivare da esterno sul mio sito, in quanto lavoro tutto sul synology (nas). Tu hai skype per caso ???
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Il secondo triangolino giallo c'è perché non bisogna assegnare closedir() a una variabile. Quindi togli "$handle=".
Poi sicuro che in paginaris hai la sessione aperta? Non ti vede la $_SESSION['nome']..fai delle prove e stampala a video o controlla il contenuto con un var_dump().
 

paperinik4

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

Allora,

Per quanto riguarda la sessione, sono sicuro che è aperta perchè sennò non mi farebbe entrare o sbaglio ????

deboo corregere in questa maniera ??

da così:

PHP:
$handle = closedir($directory);

A così:

PHP:
closedir($directory);

Ho o detto na cavolata ???? Il primo triangolino è ito. Correzione effettuata corretamenter. grazie.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Si ti permette l'accesso ma non si sa che succede, almeno non lo so io visto che non hai pubblicato il contenuto di paginaris.
Il var dump fallo subito dopo questo:
PHP:
require_once("paginaris.php");
 

paperinik4

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

Ti posto la paginaris, in tanto metto anche il var_dum dove mi hai consigliato.

PHP:
link rel="stylesheet" type="text/css" href="coloredisfondo.css">
 
    <?php

    require_once("connetti.php");
    session_start();
if(isset($_COOKIE["ultimoaccesso"])) {
    $valore_cookie = date("d/m/Y - H:i:s");
    setcookie ("ultimoaccesso", $valore_cookie, time() + 365 *24*3600);
    $ultimo_cookie = $_COOKIE["ultimoaccesso"];
    $me= "Il tuo ultimo accesso è stato il:  $ultimo_cookie";
} else {
    $valore_cookie = date("d/m/Y - H:i:s");
    setcookie ("ultimoaccesso", $valore_cookie, time() + 365 *24*3600);
    $me= "Non ti sei mai collegato a questa pagina";
}


if(isset($_SESSION['nome'])) {

$array = mysql_query("SELECT * FROM utenti WHERE id=" . $_SESSION['id']);  

$array=mysql_fetch_array($array);  
    
$array =  strtoupper($_SESSION['nome'] );     
// if(isset($_SESSION['nome']))  {   

    echo "<div class=\"messaggio\"><h1>";

    
echo "BENVENUTO ".$array."<br />";
    
    echo $me;

      echo "</div> </h1>";

}else{
    header("Location:failed.php");      
    exit();   
 
//}

}
 ?> 
 
<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>benvenuto</title>

<body>
 
    
<center> <br> <br> <br>

 
 <input type="button" onClick="location.href='index.php';" style='padding:5px' value="Modifica" />
 <input type="button" onClick="location.href='logout.php';" style='padding:5px' value="Cancella" />
 <input type="button" onClick="location.href='logout.php';" style='padding:5px' value="Salva" />
 <input type="button" onClick="location.href='logout.php';" style='padding:5px' value="Logout" /> 
 
   
</center>
 </body>
</html>


Questo è il risultato del var_dump messo sulla paginaris.php --> va_dump($SESSION);

Risultato:

PHP:
array(2) { ["id"]=> &string(1) "1" ["nome"]=> &string(5) "fabio" }
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Ok quindi abbiamo capito che per qualche strano motivo $_SESSION['nome'] è diventato un array contenente alla chiave 0 il nome. Vedi dove viene modificato.
 

paperinik4

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

Ciao,

Facile che siano tutti quei richiami che ho fatto. Parlo di require ecc. Come se ad ogni azione ci sia un refresh. Hoo notato che a ogni click, si aggiornava l'orario dell'ultimo accesso avvenuto. Volevo saper una cosa, é possibile unire il tutto in una pagina sola o é na stronzata ????
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Si teoricamente è possibile..ma la pagina connetti.php la lascerei a parte.
 

paperinik4

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


Scusami se non ti ho risposto subito, ma ad una certa ora psengo il pc. Si infatti tranne connetti, perchè è il richiamo della connessione al db. Senti mi puoi dare una mano ad unificare il tutto ??? Perchè io c'ho provato, ma con risultati negativissimi. E la soluzione che avevo trovato, ho notato che praticamente la pagina ri riaggiornava come se fosse ricaricata di continuo. Forse lo sbaglio è proprio perchè richiamo sempre la pagina connetti.php ??? Oppure quella è giusta ??? Boh ???
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Molte volte non conviene unire tutto. Bisogna vedere se in questo caso conviene. Cosa fanno le pagine che vorresti unire? E quali sono i nomi?
 

paperinik4

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

Ciao Longo,

Scusami, ma mi osno liberato solo ora dalla cucina. Ho dovuto preparare il pranzo. Allorro i file si chiamano:

1) paginaris.php

2) index.php (che richiama la funzione di visualizzazione immagine e la sua memorizzazione nel db)

3) insert_immages (richiama la funzione per l'upload immagine quindi con tasto sfoglia e carica)

Sono queste le pagine che vorrei unire. Ovviamente se conviene. Perchè pensavo che se unissi le pagine forse non mi darebbe più quell'errore. E poi non dovrei m,ettere a tutte le pagine il richiamo "if(isset($_SESSION['nome'])) {" Tu che ne pensi ???
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Cioè nella index tu ricevi l'immagine e salvi l'indirizzo nel db?
Di solito io non consiglio unire le pagine di caricamento e quella che riceve ciò che è stato caricato per inserirlo nel db.
La paginaris che fa?
 

paperinik4

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

Si, confermo, la index ti da la possibilità di sfogliare la cartella, poi selezionare l'immagine che vuoi e dopo di che la carichi. Una volta caricata l'immagine, viene salvata il link nel db. La paginaris.php in pratica è una pagina riservata, che si applica o meglio che entra in funzione quando l'utente è loggato. Se non sei loggato o provi a digitare sulla barra degli indirizzi del browser, vieni automaticamente mandato in una pagina chiamata failed.php, che ti genera un errore. Inoltre, stavo sperimentando una query per il richiamo delle immagini ed è la seguente:

PHP:
//Inizio select per vedere l'immagine propria

$sql="select immagine from immagine where id=".$_GET['id'];
$result=mysql_query($sql);
$riga=mysql_fetch_row($result);
$filename=basename($riga[0]);
print "<img src='immagini/".$filename."'><br>".$filename;

Questa query funziona, l'ho inserita nella paginaris in fondo verso la fine, però se entro come utente2 vedo ugualmente la stessa immagine dell'utente. :( Rettifico, c'erano solo le immagini dell'utente (ossia di paperinik) ecco perchè vedevo sempre le stesse immagini ihiihihii che rinco che so.
 
Ultima modifica:

paperinik4

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

Scusate,

Stavo cercando di modificare l'immagine iniziale di un avatar, volevo sapere se questo tipo di script poteva andare bene e se c'è qualche correzione da fare:

PHP:
  $foto = $_GET['foto'];
echo "<h1> Modifica immagine in corso $foto ... </h1>";

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

$insert_query = "UPDATE immagine SET immagine ='immagine' WHERE id='$id'";


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


Sopratutto questa query qua,m, che non mi convince molto:

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


Spero di ricevere come al solito un'aiutone. Grazie anche a Longo.
 
Discussioni simili
Autore Titolo Forum Risposte Data
gara1 inserire immagine di sfondo in canvas Javascript 0
B INSERIRE DATI CON IMMAGINE DA FORM IN MYSQL MySQL 7
A Inserire testo dinamico su immagine centrato e a capo PHP 1
A Inserire testo dinamico su immagine centrato e a capo PHP 0
M Inserire automaticamente il nome di un'immagine in una variabile di tipo stringa Sviluppo app per Android 1
L Inserire Script Jquery in immagine html con zone cliccabili jQuery 1
M Form - inserire titolo, descrizione ed IMMAGINE PHP 2
M Inserire votazione sotto ciascuna immagine PHP 9
felino [Joomla 1.5.26] Inserire un'immagine in un articolo Joomla 1
E Inserire Immagine all'avvio dell'App Sviluppo app per Android 0
G Inserire un immagine di sfondo con un disegno base Photoshop 1
S upload immagine multiple da inserire PHP 8
G inserire watermark su immagine in upload PHP 2
T inserire un fotogramma/immagine prima che il video parte Flash 0
N Prendere immagine da web e inserire su proprio sito PHP 2
L Inserire un immagine e allegare un file con CDO Classic ASP 1
SolidSnake4 inserire immagine nell'editor tinymce Javascript 0
I inserire immagine di fondo HTML e CSS 9
M [ASP.NET/C#]Inserire percorso immagine in un database access ASP.NET 1
I inserire testo su immagine HTML e CSS 7
S Inserire immagine Flash 8
B Inserire video in un'immagine in una pagine HTML HTML e CSS 3
J inserire immagine in userform PHP 0
D inserire immagine con dreamweaver INSERT PHP 0
C inserire degli smile immagine in una minichat Javascript 0
X Inserire immagine png al posto di swf Flash 6
Matt89 [php gd library] inserire un'immagine in un canvas PHP 3
P Inserire logo su un immagine ma NON TEMPORANEO PHP 1
M Inserire una immagine posta in un archivio .jar HTML e CSS 0
P Inserire suono in immagine di rollover Javascript 0
open-think Inserire un file immagine in un campo blob Snippet PHP 0
G Inserire immagine Classic ASP 2
G come inserire un'immagine PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5

Discussioni simili