immagine profilo utente:come salvarla a video?

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Ciao a tutti,
Sto creando un sito in php (il primo) e devo ammettere che qualche problemino lo incontro..
Uno e' questo..
Ho trovato in rete questo script in php che ti permette di effettuare l'upload con visione dell'immagine caricata.
Io vorrei reindirizzare l'immagine verso una mia pagina php e non so come fare ma cosa piu' importante vorrei che l'immagine uplodata restasse salvata in modo che quando l'utente si logga la trovasse li ,nel suo profilo..
vi posto lo script

PHP:
<?php ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"?>
<?php
// upload the file
if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) {
	
	// file needs to be jpg,gif,bmp,x-png and 4 MB max
	if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg" || $_FILES["image_upload_box"]["type"] == "image/gif" || $_FILES["image_upload_box"]["type"] == "image/x-png") && ($_FILES["image_upload_box"]["size"] < 4000000))
	{
		
  
		// some settings
		$max_upload_width = 2592;
		$max_upload_height = 1944;
		  
		// if user chosed properly then scale down the image according to user preferances
		if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
			$max_upload_width = $_REQUEST['max_width_box'];
		}    
		if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
			$max_upload_height = $_REQUEST['max_height_box'];
		}	

		
		// if uploaded image was JPG/JPEG
		if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){	
			$image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
		}		
		// if uploaded image was GIF
		if($_FILES["image_upload_box"]["type"] == "image/gif"){	
			$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
		}	
		// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)	
		// if uploaded image was BMP
		if($_FILES["image_upload_box"]["type"] == "image/bmp"){	
			$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
		}			
		// if uploaded image was PNG
		if($_FILES["image_upload_box"]["type"] == "image/x-png"){
			$image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
		}
		

		$remote_file = "image_files/".$_FILES["image_upload_box"]["name"];
		imagejpeg($image_source,$remote_file,100);
		chmod($remote_file,0644);
	
	

		// get width and height of original image
		list($image_width, $image_height) = getimagesize($remote_file);
	
		if($image_width>$max_upload_width || $image_height >$max_upload_height){
			$proportions = $image_width/$image_height;
			
			if($image_width>$image_height){
				$new_width = $max_upload_width;
				$new_height = round($max_upload_width/$proportions);
			}		
			else{
				$new_height = $max_upload_height;
				$new_width = round($max_upload_height*$proportions);
			}		
			
			
			$new_image = imagecreatetruecolor($new_width , $new_height);
			$image_source = imagecreatefromjpeg($remote_file);
			
			imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
			imagejpeg($new_image,$remote_file,100);
			
			imagedestroy($new_image);
		}
		
		imagedestroy($image_source);
		
		
		header("Location: submit.php?upload_message=image uploaded&upload_message_type=success&show_image=".$_FILES["image_upload_box"]["name"]);
		exit;
	}
	else{
		header("Location: submit.php?upload_message=make sure the file is jpg, gif or png and that is smaller than 4MB&upload_message_type=error");
		exit;
	}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image Upload with resize</title>
<link rel="STYLESHEET" type="text/css" href="style/fg_membersite.css">
       <link rel="stylesheet" type="text/css" href="sfondosito.css">
       <link rel="stylesheet" type="text/css" href="menucarpeweb.css">
<style type="text/css">
<!--
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	color: #333333;
	font-size: 12px;
}

.upload_message_success {
	padding:4px;
	background-color:#009900;
	border:1px solid #006600;
	color:#FFFFFF;
	margin-top:10px;
	margin-bottom:10px;
}

.upload_message_error {
	padding:4px;
	background-color:#CE0000;
	border:1px solid #990000;
	color:#FFFFFF;
	margin-top:10px;
	margin-bottom:10px;
}

-->
</style></head>

<body>
<center>
<br><br><br><br><br><br><br><br>
<h1>Carica un immagine</h1>


        <?php if(isset($_REQUEST['upload_message'])){?>
            <div class="upload_message_<?php echo $_REQUEST['upload_message_type'];?>">
            <?php echo htmlentities($_REQUEST['upload_message']);?>
            </div>
		<?php }?>


<form action="submit.php" method="post" enctype="multipart/form-data" name="image_upload_form" id="image_upload_form" style="margin-bottom:0px;">
<label>Dimensione max 4MB. Estensione jpg, gif,  png:</label><br />
          <input name="image_upload_box" type="file" id="image_upload_box" size="40" />
          <input type="submit" name="submit" value="Upload immagine" />     
     
     <br />
	<br />

     
      <label>Scale down image? (2592 x 1944 px max):</label>
      <br />
      <input name="max_width_box" type="text" id="max_width_box" value="1024" size="4">
      x      
      
      <input name="max_height_box" type="text" id="max_height_box" value="768" size="4">
      px.
      <br />
      <br />
      <p style="padding:5px; border:1px solid #EBEBEB; background-color:#FAFAFA;">
      <strong>Note:</strong><br />
  Specifica le dimensioni di ritaglio automatiche.<br />
  
 <a href="delete_all_images.php">Cancella immagine.</a> :)<br />
  </p>
  </p>
<input name="submitted_form" type="hidden" id="submitted_form" value="image_upload_form" /></center>
<noscript><a href="http://www.thewebhelp.com/php/scripts/image-upload-with-resize/">PHP image upload script</a></noscript>
</form>




<?php if(isset($_REQUEST['show_image']) and $_REQUEST['show_image']!=''){?>
<p><img src="image_files/<?php echo $_REQUEST['show_image'];?>" /></p>
<?php }?>



</body>
</html>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Visto che fa l'upload lo script in teoria se controlli tra le tue cartelle sul server ci deve essere l'immagine caricata dall'utente. Poi dovresti salvare nel db il percorso della cartella nel db per poter poi stamparla all'occorrenza.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
L'url lo devi comunque salvarlo da qualche parte. Anche in un file se non vuoi/puoi usare un db.
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
ho provato cosi:
PHP:
<?php
$dir = "id_user1/uploadimmagineprofilo/image_files/";


if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
           
           
          echo "<img src=\"{$dir}{$file}\"><br />";
        }
        closedir($dh);
       
    }
}

?>

.....e funziona ma id_user1 e' il primo utente del database ..il problema e che se si logga l'utente 2 non deve vedere le immagini dell'utente 1...come posso fare longo8
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
gestisco le sessioni utente con questo script che indirizza ogni utente verso il suo percorso..

PHP:
echo "<a href='/id_user" . $_SESSION['id_of_user'] . "/upload.php'><font size='3'>PERCOSO UTENTE</A>

ma non so come adattarlo a questo??..

PHP:
 <?php
$dir = "id_user1/uploadimmagineprofilo/image_files/";


if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
           
           
          echo "<img src=\"{$dir}{$file}\"><br />";
        }
        closedir($dh);
       
    }
}

?>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
.....e funziona ma id_user1 e' il primo utente del database ..il problema e che se si logga l'utente 2 non deve vedere le immagini dell'utente 1...come posso fare longo8
Database? Vuol dire che hai un db? Allora perché non inserisci anche gli url li?
il problema e che se si logga l'utente 2 non deve vedere le immagini dell'utente 1
Tu glielo devi impedire con dei controlli. È meglio gestire i permessi direttamente dal php sfruttando la sessione.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Basta vedere se la cartella che ha selezionato coincide con l'id dell'utente contenuto nella variabile di sessione che hai usato per indirizzare l'utente. $_SESSION['id_of_user']
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Certo e ci sto provando lavorando qui

PHP:
$dir = "id_user1/uploadimmagineprofilo/image_files/";

cercando di far funzionare cosi...ma niente

PHP:
$dir = 'id_user" . $_SESSION['id_of_user'] . "/uploadimmagineprofilo/image_files/';

dove sbaglio?
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Certo e ci sto provando lavorando qui

PHP:
$dir = "id_user1/uploadimmagineprofilo/image_files/";

cercando di far funzionare cosi...ma niente

PHP:
$dir = 'id_user" . $_SESSION['id_of_user'] . "/uploadimmagineprofilo/image_files/';

dove sbaglio?
Prova cosi

PHP:
$dir = $_SESSION['id_of_user'].'/uploadimmagineprofilo/image_files/';

ps: ovviamente ci deve essere il session_start() prima
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Si in pratica così ogni utente ha la sua cartella. Certo che se un utente (id_utente1) vuole guardare le foto di un altro utente (id_utente2) basta che cambi l'1 con il 2 nel link e compaiono tutte davanti.
Quindi la pagina che stampa le foto dovrebbe avere all'inizio il controllo di cui parlavo.
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Cosi funziona Nefyt pero' Longo8 ha ragione...
Chissa' se mi suggerisce qualche chiccha sui controlli in formato script php?
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Pero' e' strana una cosa...
Peche' mi visualizza la pagina con due error img cosi?
Eppure la cartella che visiona lo script e' vuota... non capisco
carpeweb.altervista.org/login-home.php
 
Ultima modifica:

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Cosi funziona Nefyt pero' Longo8 ha ragione...
Chissa' se mi suggerisce qualche chiccha sui controlli in formato script php?
Finché memorizzerai le immagini come file sarà possibile accedergli in un modo o nell'altro,quindi se vuoi essere totalmente sicuro dovresti memorizzarle sul db come blob, comunque non ho ben capito dove sarebbe possibile vedere tutte le foto semplicemente cambiando l'id. Se l'id è una sessione che penso venga settata al login con l'id dell'utente preso dal database, non potrà modificarlo, al massimo puo trovare la directory delle immagini dell'altro utente ma se non conosce il nome(delle immagini) non puo visualizzarle.


Se intendevate un eventuale directory listing, si puo facilmente evitare da htaccess aggiungendo questo
Codice:
Options -Indexes
(verificato in locale)
 
Ultima modifica:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
In realtà come stai facendo non c'è bisogno di fare dei controlli.
In altre parole l'immagine è comunque visibile da tutti gli utenti se si sa l'indirizzo (se non viene impedito l'accesso in altri modi).
Ma è così sempre quindi non c'è nulla da fare a meno che non vuoi appesantire il db (scelta non conveniente).
Per quanto riguarda il codice (in questo caso non c'è bisogno visto che non sussiste il problema) in generale preferisco dare suggerimenti per mettere la voglia all'utente di cercare e informarsi, se trova il codice bello e pronto non è soddisfacente per me perché credo che tutti possano arrivare se indirizzati (io compreso :) ).

Edit: ho appena letto la tua risposta nefyt. Infatti mi sbagliavo, l'unico modo di accedere è quello diretto infatti è si può evitare da htaccess.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
A Upload immagine profilo utente PHP 4
giancadeejay upload immagine profilo utente PHP 3
giancadeejay upload immagine su profilo utente PHP 0
P Inserire un'immagine avatar nel profilo per avere ogni utente la sua pagina PHP 42
filippino Dimensioni foto profilo e immagine copertina Facebook Social Media Marketing 2
F Aiuto! cambio immagine di sfondo al cambio pagina HTML e CSS 2
gara1 inserire immagine di sfondo in canvas Javascript 0
T Dividere un'immagine in 3 parti orizzontali e salvarle separatamente Photoshop 2
W Immagine come maschera photoshop Photoshop 1
L Ultima immagine Windows e Software 0
A Immagine decentrata con sfondo trasparente Photoshop 0
A Scontornare immagine di bassa qualità. Photoshop 2
B Selezionare un'immagine e salvare la selezione Photoshop 3
F Immagine come fosse selezione attiva Photoshop 1
Y Percorso assoluto file immagine HTML e CSS 9
K Come posso usare un'immagine al posto di un bottone? HTML e CSS 2
M Upload immagine con javascript problemi con FormData() Javascript 1
M Visulizzare immagine con php PHP 8
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
L Come caricare un'immagine in Canvas dinamicamente Javascript 0
R Cambiare il nome dell'immagine dopo caricamento ftp HTML e CSS 0
L salvare una immagine elaborata in canvas Javascript 1
L salvare una immagine elaborata in canvas Javascript 1
Y Come caricare e visualizzare un'immagine PHP 0
S Testo scrolla su immagine che cambia HTML e CSS 0
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
R Caricamento immagine su cartella remota + mysql PHP 3
R Non riesco a rinnovare l'immagine di sfondo PHP 1
R Non riesco a cambiare l'immagine di sfondo PHP 4
L Upload di un'immagine all'interno di un database usando php PHP 6
G Modifica immagine di sfondo attraverso un bottone PHP 18
F photoshop portable : spostamento immagine Photoshop 0
A Server Apache immagine not found (ERROR 404) Apache 5
P [Photoshop] ritagliare una immagine Photoshop 1
S [PHP] Recupero nome immagine da Form con input file PHP 3
D [Javascript] salvare immagine canvas - paypal Javascript 0
D [HTML] Inviare un link contenente un' immagine HTML e CSS 4
M [PHP] Cercare l'ultima immagine caricata in una cartella datata PHP 15
C [Photoshop] bordi tondi come posso fare per ottenerli come nell'immagine allegata Photoshop 2
M [HTML] Tasto condivisione social e immagine HTML e CSS 2
R [HTML] Effetto carousel di testo su immagine fissa HTML e CSS 2
L [HTML] problema sfondo tutto schermo con immagine HTML e CSS 1
A Php variabile immagine inesistente PHP 4
R [PHP] Testo su immagine al passaggio del mouse PHP 2
L [PHP] controllo dimensione immagine per il resize PHP 2
felino [Wordpress] Immagine di sfondo (sotto il template) WordPress 8
Shyson [HTML] Sovrapporre un'immagine su un'altra HTML e CSS 2
A [PHP] Segnalazione in up-load immagine PHP 2
C [PHP] Scrivere testo su immagine PHP 3
E [HTML] Allineamento immagine agli angoli inferiori di un div HTML e CSS 12

Discussioni simili