errore nell estrazione foto

marikaflash

Nuovo Utente
23 Gen 2009
13
0
0
ciao ragazzi, ho creato un modulo che invia le foto al db e li visualizza dopo l'inserimento(una per volta),funziona tutto ora vorrei creare uno script che le estrae e le stampa in una pagina con affianco un link "ELIMINA foto", come posso procedere, grazie

questo e il codice gallery penso si potrebbe modificare
solo che cosi come non stampa le foto

PHP:
<?php require("conf.php"); ?>
<?php
$ImageDir = "/images/thumbs/";
$ImageThumb = $ImageDir . "/thumbs/";
?>

<html>
<head>
<title>Welcome to our Photo Gallery</title>
</head>
<body>
<p align="center">Click on any image to see it full sized.</p>
<table align="center">
  <tr>
    <td align="center">Image</td>
    <td align="center">Caption</td>
    <td align="center">Uploaded By</td>
    <td align="center">Date Uploaded</td>
  </tr>

<?php
//get the thumbs
$getpic = mysql_query("SELECT * FROM images")
  or die(mysql_error());
while ($rows = mysql_fetch_array($getpic)) {
  extract($rows);
  echo "<tr>\n";
  echo "<td><a href=\"".$ImageDir . $image_id . ".jpg\">";
  echo "<img src=\"" . $ImageThumb . $image_id . ".jpg\" border=\"0\">";
  echo "</a></td>\n";
  echo "<td>" . $image_caption . "</td>\n";
  echo "<td>" . $image_username . "</td>\n";
  echo "<td>" . $image_date . "</td>\n";
  echo "</tr>\n";
}

?>

</table>
</body>
</html>
 
ciao borgo italia, io intendevo " stampare" nel senso di farmele vedere tutte in una pagina tipo galleria, con affianco la scritta elimina foto

scusami se non sono stata molto chiara e grazie per l'aiuto
 
ciao borgo spero che ci sei, ho trovato questo script
PHP:
<?php
//Based on (http://www.phpbuilder.com/columns/bealers20000904.php3) "File uploads made easy" by Darren Beale
//changes by Zubin for MMkit.com - [email protected]

// global variables
$my_max_file_size 	= "307200"; # in bytes
$image_max_width	= "400";
$image_max_height	= "500";


$registered_types = array(
    "application/x-gzip-compressed"     => ".tar.gz, .tgz",
    "application/x-zip-compressed"         => ".zip",
    "application/x-tar"            => ".tar",
    "text/plain"                => ".html, .php, .txt, .inc",
    "image/bmp"                 => ".bmp, .ico",
    "image/gif"                 => ".gif",
    "image/pjpeg"                => ".jpg, .jpeg",
    "image/jpeg"                => ".jpg, .jpeg",
    "application/x-shockwave-flash"     => ".swf",
    "application/msword"            => ".doc",
    "application/vnd.ms-excel"        => ".xls",
    "application/octet-stream"        => ".exe, .fla"
);  # these are only a few examples, you can find many more!

$allowed_types = array("image/gif","image/pjpeg","image/jpeg","application/x-shockwave-flash");
//end global variables

function dbconnect() {
	mysql_connect("localhost", "root", "");
	@mysql_select_db("db_immagini") or die ("Unable to select database");
}

function delete($id) {
	mysql_query("delete from mmkit_images WHERE id=$id");
	Header("Location: upload.php");
}

function mod($id) {

global $PHP_SELF, $my_max_file_size, $image_max_width, $image_max_height;
echo"<html><head><title>Uploading Files</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"></head>
<body bgcolor=\"#EAEAEA\">";
	echo "\n<form ENCTYPE=\"multipart/form-data\"  action=\"" . $PHP_SELF . "\" method=\"post\">";
	echo "\n<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $my_max_file_size . "\">";
	echo "\n<P><CENTER><h2><b>Modifica immagine id=$id</b></center></h2>";
	echo "\n<br><b>File</b>: <INPUT NAME=\"thefile\" TYPE=\"file\" SIZE=\"35\"><br>";
	echo "\n<BR>dimensione massima: " . ($my_max_file_size / 1024) . "KB - ".$image_max_width."x".$image_max_height." pixel";
	echo "<input type=\"hidden\" name=\"id\" value=\"$id\"><input type=\"hidden\" name=\"task\" value=\"change\">";
	echo "\n<br><input type=\"submit\" Value=\"Invia\">";
	echo "\n</form>";
	

echo"</body></html>";
} # END form

function form($error=false) {

global $PHP_SELF, $my_max_file_size, $image_max_width, $image_max_height;
echo"<html><head><title>Uploading Files</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"></head>
<body bgcolor=\"#EAEAEA\">";
	if ($error) print $error . "<br><br>";
	echo "\n<form ENCTYPE=\"multipart/form-data\"  action=\"" . $PHP_SELF . "\" method=\"post\">";
	echo "\n<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $my_max_file_size . "\">";
	echo "\n<INPUT TYPE=\"hidden\" name=\"task\" value=\"upload\">";
	echo "\n<P><CENTER><h2><b>Upload Files</b></center></h2>";
	echo "\n<br><b>File</b>: <INPUT NAME=\"thefile\" TYPE=\"file\" SIZE=\"35\"><br>";
	echo "\n<BR>dimensione massima: " . ($my_max_file_size / 1024) . "KB - ".$image_max_width."x".$image_max_height." pixel";
	echo "\n<br><input type=\"submit\" Value=\"Invia\">";
	echo "\n</form>";
	list_files();

echo"</body></html>";
} # END form


function validate_upload($thefile) {

global $my_max_file_size, $image_max_width, $image_max_height, $allowed_types, $thefile_type, $registered_types, $g_height, $g_width, $thefile_name;
	
	$start_error = "\n<b>Si sono verificati i seguenti errori:</b>\n<ul>";
	
	if ($thefile == "none") {
			$error .= "\n<li>Nessun file selezionato</li>";
	} else { 		
		if (!in_array($thefile_type, $allowed_types)) {
			$error .= "\n<li>Il file non appartiene a queste tipologie:
						<br>\n<ul>";
			while ($type = current($allowed_types)) {
				$error .= "\n<li>" . $registered_types[$type] . " (" . $type . ")</li>";
				next($allowed_types);
			}
			$error .= "\n</ul>";
		}
	
		if (ereg("image", $thefile_type) && in_array($thefile_type, $allowed_types)) {
		
			$size = GetImageSize($thefile);
			list($foo,$width,$bar,$height) = explode("\"",$size[3]);
			$g_width=$width;

			if ($width > $image_max_width) {
				$error .= "\n<li>La larghezza dell'immagine non deve superare " . $image_max_width . " pixel</li>";
			}
			$g_height=$height;
			if ($height > $image_max_height) {
				$error .= "\n<li>L'altezza dell'immagine non deve superare " . $image_max_height . " pixels</li>";
			}
		}
		if (ereg("flash", $thefile_type) && in_array($thefile_type, $allowed_types)) {
			$size = GetImageSize($thefile);
			list($foo,$width,$bar,$height) = explode("\"",$size[3]);
			$g_width=$width;
			$g_height=$height;
			if (($width > $image_max_width) || ($height > $image_max_height)) {
				if ($width >= $height) {
					$g_width=$image_max_width;
					$g_height=intval($height*$image_max_width/$width);
				}
				else {
					$g_height=$image_max_height;
					$g_width=intval($width*$image_max_height/$height);
				}
			}
		}
		
		if ($error) {
			$error = $start_error . $error . "\n</ul>";
			return $error;
		} else {
			return false;
		}
	}
} # END validate_upload

function list_files() {

	$result=mysql_query("select id, filename, filetype, filewidth, fileheight from mmkit_images");
	if (mysql_num_rows($result) > 0) {
		echo"<table width=\"98%\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\" bordercolor=\"#000000\"><tr bgcolor=\"#999999\"><td>Files presenti nel database:</td></tr>";
  
  		while(list($id, $filename, $filetype, $width, $height)=mysql_fetch_row($result)) {
			echo"<tr bgcolor=\"#cccccc\"><td><a href=\"upload.php?task=delete&id=$id\">Delete</a> - <a href=\"upload.php?task=mod&id=$id\">Modify</a></td></tr>";
			if (ereg("flash", $filetype)) {
				echo"<tr bgcolor=\"#FFFFFF\"><td><object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0\" width=\"$width\" height=\"$height\"><param name=movie value=\"getdata.php?id=$id\"><param name=quality value=high><embed src=\"getdata.php?id=$id\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\" width=\"$width\" height=\"$height\"></embed></object></td>
  </tr>";
			} else {
				echo"<tr bgcolor=\"#FFFFFF\"><td><img src=\"getdata.php?id=$id\" width=\"$width\" height=\"$height\"></td>
  </tr>";
			}
		}
		echo"</table>";
	}
	else echo"<br>Il database &egrave vuoto.";
}//end list_files

function change($thefile, $id) {

global $thefile_name, $thefile_type, $thefile_size, $g_width, $g_height;
	
	$error = validate_upload($thefile);
	if ($error) {
		form($error);
	} else { 
		 $fp=@fopen($thefile, "r");
		 if ($fp) {
			 $data = addslashes(fread($fp, filesize($thefile)));
			 $result=MYSQL_QUERY("UPDATE mmkit_images SET bin_data='$data', filename='$thefile_name', filesize='$thefile_size', filetype='$thefile_type', filewidth='$g_width', fileheight='$g_height' WHERE id=$id");
			 fclose($fp);
			 if (!$result) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit();}
			 else Header("Location: upload.php");
		 } else {
			 echo"Il file selezionato non &egrave; valido, probabilmente &egrave; vuoto.<br><a href=\"javascript:history.back()\">Clicca qui</a> per tornare indietro.";
			 fclose($fp);
		 }
	}
} # END upload

function upload($thefile) {

global $thefile_name, $thefile_type, $thefile_size, $g_width, $g_height;
	
	$error = validate_upload($thefile);
	if ($error) {
		form($error);
	} else { 
		 $fp=@fopen($thefile, "r");
		 if ($fp) {
			 $data = addslashes(fread($fp, filesize($thefile)));
			 $result=MYSQL_QUERY("INSERT INTO mmkit_images VALUES ('NULL', '$data','$thefile_name','$thefile_size','$thefile_type', '$g_width', '$g_height')");
			 fclose($fp);
			 if (!$result) { echo mysql_errno(). ": ".mysql_error(). "<br>"; exit();}
			 else Header("Location: upload.php");
		 } else {
			 echo"Il file selezionato non &egrave; valido, probabilmente &egrave; vuoto.<br><a href=\"javascript:history.back()\">Clicca qui</a> per tornare indietro.";
			 fclose($fp);
		 }
	}
} # END upload

dbconnect();

switch($task) {
	
	case 'upload':
		upload($thefile);
		break;
		
	case 'delete':
		delete($id);
		break;
		
	case 'mod':
		mod($id);
		break;
		
	case 'change':
		change($thefile, $id);
		break;

	default:
		form($error);
}

?>

quando apro la pagina upload.php
mi esce questo errore
Notice: Undefined variable: task in c:\programmi\easyphp1-8\www\upload-mmkit\upload.php on line 205

Notice: Undefined variable: error in c:\programmi\easyphp1-8\www\upload-mmkit\upload.php on line 224



le foto me le invia nel db tutto bene. pero per visualizzarle nella pagina devo tornare indietro con la pagina e aggiornare internet explorer e poi le visualizza

mi potete aiutare ,grazie

e' proprio il file che dicevo io queto c'è anche la funzione elimina foto quando visualizza le foto
 
ciao
ti premetto che non sono un grande esperto, ma da quanto posti mi sembra di capire che ti da errorre sulla variabile $task (variabile non definita) che dovrebbe dirigerti lo switch, essendo indefinita prende il case di default e li non trova la variabile $error, quindi dovresti vedere dove dovrebbe generarsi la variabile $task (da dove viene? e cosa gli attribuisce un valore?)
non riesco a vederla in nessuna altra parte dello script, ma forse ho gli occhi foderati di prosciutto
 
ciao ho risolto , adesso funziona, solo che non so' che nome dare alla cartella, perche dovrebbero finire in una cartella del sito se non sbaglio giusto? sto cercando e cercando ma non l'ho capito

ho provato con image, foto, upload_foto , ma niente non vanno in nessuna cartella e nemmeno in uno spazio qualsiasi del sito. Bho
 
ciao
ciao ho risolto , adesso funziona,...
in locale ti funziona?
come ti ho detteo non sono un espertissimo, ma mi è venuto un piccolo dubbio.
prima di rispondermi dovresti dirmi:
nella tabella del db mmkit_images il campo bin_data di che tipo è? per caso blob?
 
si e blob, e in locale nemmeno le aggiunge in una cartella


comunque volevo ringraziarti per l'aiuto anche se non sei bravo come dici tu , mi sei di grande aiuto, grazie:beer:

PHP:
CREATE TABLE mmkit_images (
   id int(11) NOT NULL auto_increment,
   bin_data longblob,
   filename varchar(255),
   filesize varchar(50),
   filetype varchar(50),
   filewidth varchar(50),
   fileheight varchar(50),
   PRIMARY KEY (id)
);
 
ciao
è come pensavo (almeno sembrerebbe)
non ti serve una cartella in quanto l'immagine viene salvata nella tabella del db
da che ne so io ci sono due sistemi per salvare le immagini
1. nome del db e immagine in una cartella
2. immagine dentro il db (mi sembra il tuo caso)

ognuno ha i suoi pregi e difetti, nel secondo è importante prevedere quante sono le immagini in modo da non far diventare troppo grande il db, però le immagini non possono essere scaricate (salva immagine con nome)
 
infatti, pero a me mi sarebbe stato utile salvarle in una cartella, anche perche una volta visualizzate venivano anche tolte, ed il db non diventava pesante, chissa se si puo modificare il codice
 
infatti , per quello mi sarebbe convenuto salvarle in una cartella anche per non appesantire il db, ma penso che si possa modificare il codice (credo)

ma non e compito mio , non sono cosi brava
 
ciao
per salvare le foto in una cartella ti convine utilizzare l'articolo che ti avevo indicato (con qualche piccola modifica io utilizzo quasi sempre quello)
penso che sia difficile modificare lo script che hai postato, lavora in modo completamente diverso.
l'unico difetto che ha è che sulla piattaforma in cui hai il sito, siano attive le librerie di php GD
 
si le librerie sono attive

PHP:
gd
GD Support  enabled  
GD Version  2.0 or higher  
FreeType Support  enabled  
FreeType Linkage  with freetype  
T1Lib Support  enabled  
GIF Read Support  enabled  
GIF Create Support  enabled  
JPG Support  enabled  
PNG Support  enabled  
WBMP Support  enabled
 
ciao borgo , non conosci nessuno che abbia uno script come quello che cerco io, cioe che invia le foto in una cartella e le visualizza tutte insieme con il link o tasto vicino per eliminarle
 
ciao
al momento non conosco uno script come chiedi tu, quello che ti ho indicato salva in una cartella, però per quello che vuoi fare devi adattarlo.
se trovo qualcosa te lo faccio sapere
 
ciao borgo, volevo dirti che ci sono riuscita, sono riuscita a metterci anche una nick e pass nel database , cosi per inviare le foto bisogna avere i dati giusti....:beer:
 

Discussioni simili