Problema avata db

paperinik4

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

Questo è quello che ho creato e modificato. Ma alla fine non funziona al 100%. Mi piacerebbe che ogni utente quando gli gira potesse cambiare la sua immagine. Ora mostro il tutto:


insert_immages.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");


#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:
<?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 = "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 immaginei(immagine) VALUES('".$immagine."')";  //qua salva anche le immagini nel db in un'altra tabella, se provo a fare lì'update non gli piace
		
                
                mysql_query($insert_query);
               
	}
	echo "Le immagini sono state inserite nel database con successo!";
}
mysql_close();

?>

insex.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");


#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>

E questa è l'ultima paginaris.php (pagina riservata a chi si connette):

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();   
 
//}

}

//Inizio select per vedere l'immagine propria


//$sql="select immagine from immagine where id=".$_GET['id'];


// Da qua in teoria, dovrebbe selezionare le immagini e farmele visualizzare in un quadratino. Prima andava adesso no non so il perchè...

$sql="select immagine from immagine where id=".$_GET['id'];
$result=mysql_query($sql);
$riga=mysql_fetch_row($result);
$filename=basename($riga[0]);

echo "<br> <br>";

print "<img src='immagini/".$filename."' style='width:100px; height:100px'> <br>";

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

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


// Inoltre, i tasti si vedono solo dopo aver effettuato il secondo login. Cioè, il primo login i tasti non si vedono . Uscendo e rientrando i tasti si vedono 

 <input type="button" onClick="location.href='index.php';" style='padding:5px' value="Aggiungi Immagine" />
 <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="Logout" />
 <input type="button" onClick="location.href='logout.php';" style='padding:5px' value="Cancella" />
 
 <input type="button" onClick="location.href='index.php';" style='padding:5px' value="Cambio Avatar" /> 
 
   
</center>
 </body>
</html>
</head>

Chiedo un vostro aiuto e un parerer, sopratutto dove cavolo ho sbagliato. Grazie.
 
Hai detto che non Funziona al 100%, puoi precisare cosa è che non va?
 
Ciao

Se prendi pezzetto per pezzo com'è impostato in origine funziona magnificamenete e memorizza i link nel db. (a parte l'update che non fa), ma non è quello il problema. Il problema è che subito dopo fa vedere l'immagine memorizzata, invece secondo me, dovrebbe fare in modo di farla vedere quando l'utente clicca sull'immagine (nel caso di foto album) e nel caso di avatar come avevamo detto in precedenza con una query si sistemvano le cosa. Fino all'altro ieri, andava na bomba, avevo apportato anche qualche modifica ai file singoli. Da quando ho spemnto il pc ad oggi, non va più. No9n so cosa gli sia piato. Allora ho provato ad unire entrambi i codici e vitando le due function iniziali, di cui la seconca richiama in pratica l'inserimento dell'immagine. Ho provato in due mila modi, ma il db rimane sempre vuoto. Completamente vuoto. Non memorizza niente. nessun link. Come se ci fossi passato con il dash più bianco non si può. Perkè prima lo faceva e adesso no avendo unito le cose ??? Cosa gli cambia a lui se invece di chiamare inser_immages lo faccio direttamente all'interno ???? E sopratutto perchè questa query non va a memorizzare le foto:

PHP:
$insert_query = "INSERT INTO immagine(immagine) VALUES('".$immagine."')";
		mysql_query($insert_query);

I campi sono giusti. Ho preferito farla in due tabelle visto chenon mi faceva l'update. Appunto avevo chiesto se si potevano poi unire le tabelle. Ma tanto se non risolvo prima questo inghippo non c'è niente da fa. Inoltre la function può essere scritta anche in questa maniera vero o ricordo male: ????

PHP:
function carica(){

Non so se ti va di dare un'occhiata al listato dove ho postato alla pagina precedente, tene sarei grato, magari tu scovi l'inghippo. Oppure se hai un metodo più semplice per uploadare le immagine ancora meglio.
 
Ciao

Vedo che nessuno mi ha risposto. Comunque, chi mi può spiegare gentilmente con degli esempi pratici e non come si trovano su internet gli array ??? Perchè le immagini devono essere racchiuse in un array ??? Grazie, spero di essere più fortunato nel ricevere risposte....
 

Discussioni simili