no, perchè la gallery la devo mettere a disposizione del mio sito per gli utenti...cioè la devo far scaricare!Originalmente inviato da debug
no, perchè la gallery la devo mettere a disposizione del mio sito per gli utenti...cioè la devo far scaricare!Originalmente inviato da debug
Hai ragione. Per sbaglio ho inserito uno spazio che ha sballato il nome di una variabile.
Eccolo ri-corretto:
Codice PHP:
<?php
/*
* PHP RESIZER WIZARD
* Versione: 1.1
* Licenza: GPL
* Autore: Tuttoeniente
* Contributi: Heracleum, Forum di AlterVista.org
*/
// *** CONFIGURAZIONE ***//
$onthefly = 0; //Generazione al volo delle immagini, cache disattiva: 1 = si 0 = no.
//ATTENZIONE: Con questa opzione attivata il caricamento delle pagine con tante immagini potrebbe risultare
//visibilmente rallentato. Usare questa opzione è consigliabile solo in fase di sviluppo, in caso di necessità di non
//occupare spazio sul server, o nel caso non si disponga di permessi di scrittura
//N.B.: Se è disattivata, qualsiasi dimensione, watermark, rotazione od altro passati non verranno eseguiti, verrà
//solo caricata la versione della cache
$defsize = 300; //Larghezza/altezza predefinita del thumbnail
$resample = 1; //Utilizzo della funzione resample nella riduzione, che garantisce una migliore qualità ma è più lento (solo nella
//generazione delle immagini, non nel richiamo dalla cache): 1 = si 0 = no
$persfont = 0; //Font .ttf personalizzato per il watermark: 1 = si (necessario inserire quale nella prossima variabile) 0 = no
$font = ""; //Nome del file del font, relativo alla directory dello script
$size = 18; //Dimensione del font (solo se personalizzato)
$alwayswm = 0; //Watermark su tutte le immagini: 1 = si 0 = no
$defwm = ""; //Testo predefinito del watermark, obbligatorio se alwayswm è settato a 1
$trasp = 110; //Trasparenza del watermark, da 0 a 127
//*** FINE CONFIGURAZIONE ***//
$imgfile = htmlspecialchars(@$_GET['file']);
$size = @$_GET['size'];
$rot = @$_GET['rot'];
$wm = @$_GET['wm'];
$al = @$_GET['al'];
$ext = explode(".", $imgfile);
$n = count($ext)-1;
$ext = strtolower($ext[$n]);
$get = '';
foreach($_GET as $k => $v){
$get .= $k.$v;
}
$nomethumb = "thumb/thumb_".md5($imgfile.$get).".".$ext;
function read($f){
global $ext,$imgfile,$nomethumb;
if($ext == "jpg" || $ext == "jpeg"){
header('Content-type: image/jpeg');
}
elseif($ext == "gif"){
header('Content-type: image/gif');
}
elseif($ext == "png"){
header('Content-type: image/png');
}
elseif($ext == "bmp"){
header('Content-type: image/vnd.wap.wbmp');
}
$handle = fopen($nomethumb, "r");
echo fread($handle, filesize($nomethumb));
fclose($handle);
}
function error($e){
$w = (imagefontwidth(5) * strlen($e));
$h = imagefontheight(5);
$img = imagecreate($w,$h);
$bgcolor = imagecolorallocate($img, 255, 255, 255);
$txtcolor = imagecolorallocate($img, 255, 0, 0);
imagestring($img, 5, 0, 0, $e, $txtcolor);
header("Content-type: image/gif");
imagegif($img);
}
function resize($source){
global $resample,$thumb,$newwidth,$newheight,$width,$height;
if($resample == 1){
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
return $thumb;
}
function edit($thumb){
global $ext,$imgfile,$rot,$source,$newheight,$newwidth,$w m,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras ;
if(isset($rot)){
if(is_numeric($rot)){
$thumb = imagerotate($thumb, $rot, 0);
}
}
if(isset($wm) || $alwayswm == 1){
$black = imagecolorallocatealpha($thumb, 0, 0, 0, $tras);
if($alwayswm == 1){
$wm = $defwm;
}
if($persfont == 0){
$font = 5;
}
if(!isset($al) || ($al != "left" && $al != "center" && $al != "right")){
$al = "right";
}
switch ($al){
case "left":
$w = 2;
break;
case "center":
$w = ($newwidth - (strlen($wm) * imagefontwidth($font))) / 2;
break;
case "right":
if($persfont == 1){
$w = $newwidth - (strlen($wm) * (imagefontwidth($font) * $size/2)) - 2;
}else{
$w = $newwidth - (strlen($wm) * imagefontwidth($font)) - 2;
}
break;
}
$h = $newheight - imagefontheight(5) - 2;
if($persfont == 0 || trim($font) == ""){
imagestring($thumb, 5, $w, $h, $wm, $black);
}else{
imagefttext($thumb, $size, 0, $w, $h, $black, $font, $_GET['wm']);
}
}
return $thumb;
}
if($alwayswm == 1 && trim($defwm) == ""){
error("ERRORE: Necessario watermark predefinito con il watermark obbligatorio attivato");
}
if(!is_dir("thumb")){
mkdir("thumb");
}
if(!is_file($imgfile)){
error("ERRORE: L'immagine non esiste");
die();
}
if(!isset($size)){
$size = $defsize;
}
if(is_file($nomethumb) && $onthefly == 0){
read($nomethumb);
die();
}
if(!is_file($imgfile)){
error("ERRORE: Il file non esiste");
die();
}
list($width, $height) = getimagesize($imgfile);
//Heracleum mod
if($height < $width){
$newwidth = $size;
$rap = $height / $width;
$newheight = $newwidth * $rap;
}else{
$newheight = $size;
$rap = $width / $height;
$newwidth = $newheight * $rap;
}
$thumb = ImageCreateTrueColor($newwidth,$newheight);
imageantialias($thumb,1);
if($ext == "jpg" || $ext == "jpeg"){
header('Content-type: image/jpeg');
$source = imagecreatefromjpeg($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagejpeg($thumb);
}else{
imagejpeg($thumb, $nomethumb);
read($nomethumb);
}
}
elseif($ext == "gif"){
header('Content-type: image/gif');
$source = imagecreatefromgif($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagegif($thumb);
}else{
imagegif($thumb, $nomethumb);
read($nomethumb);
}
}
elseif($ext == "png"){
header('Content-type: image/png');
$source = imagecreatefrompng($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagepng($thumb);
}else{
imagepng($thumb, $nomethumb);
read($nomethumb);
}
}
elseif($ext == "bmp"){
header('Content-type: image/vnd.wap.wbmp');
$source = imagecreatefrompng($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagewbmp($thumb);
}else{
imagewbmp($thumb, $nomethumb);
read($nomethumb);
}
}else{
error("ERRORE: Formato non supportato");
die();
}
?>
non capisco perchè ma continua a darmi qst maledetto errore:
...help please! sono disperato...sto impazzendo con sto script!Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /membri2/turkosoft/project/gallery/img.php on line 77
Prova ora...Codice PHP:
<?php
/*
* PHP RESIZER WIZARD
* Versione: 1.1
* Licenza: GPL
* Autore: Tuttoeniente
* Contributi: Heracleum, Forum di AlterVista.org
*/
// *** CONFIGURAZIONE ***//
$onthefly = 0; //Generazione al volo delle immagini, cache disattiva: 1 = si 0 = no.
//ATTENZIONE: Con questa opzione attivata il caricamento delle pagine con tante immagini potrebbe risultare
//visibilmente rallentato. Usare questa opzione è consigliabile solo in fase di sviluppo, in caso di necessità di non
//occupare spazio sul server, o nel caso non si disponga di permessi di scrittura
//N.B.: Se è disattivata, qualsiasi dimensione, watermark, rotazione od altro passati non verranno eseguiti, verrà
//solo caricata la versione della cache
$defsize = 300; //Larghezza/altezza predefinita del thumbnail
$resample = 1; //Utilizzo della funzione resample nella riduzione, che garantisce una migliore qualità ma è più lento (solo nella
//generazione delle immagini, non nel richiamo dalla cache): 1 = si 0 = no
$persfont = 0; //Font .ttf personalizzato per il watermark: 1 = si (necessario inserire quale nella prossima variabile) 0 = no
$font = ""; //Nome del file del font, relativo alla directory dello script
$size = 18; //Dimensione del font (solo se personalizzato)
$alwayswm = 0; //Watermark su tutte le immagini: 1 = si 0 = no
$defwm = ""; //Testo predefinito del watermark, obbligatorio se alwayswm è settato a 1
$trasp = 110; //Trasparenza del watermark, da 0 a 127
//*** FINE CONFIGURAZIONE ***//
$imgfile = htmlspecialchars(@$_GET['file']);
$size = @$_GET['size'];
$rot = @$_GET['rot'];
$wm = @$_GET['wm'];
$al = @$_GET['al'];
$ext = explode(".", $imgfile);
$n = count($ext)-1;
$ext = strtolower($ext[$n]);
$get = '';
foreach($_GET as $k => $v){
$get .= $k.$v;
}
$nomethumb = "thumb/thumb_".md5($imgfile.$get).".".$ext;
function read($f){
global $ext,$imgfile,$nomethumb;
if($ext == "jpg" || $ext == "jpeg"){
header('Content-type: image/jpeg');
}
elseif($ext == "gif"){
header('Content-type: image/gif');
}
elseif($ext == "png"){
header('Content-type: image/png');
}
elseif($ext == "bmp"){
header('Content-type: image/vnd.wap.wbmp');
}
$handle = fopen($nomethumb, "r");
echo fread($handle, filesize($nomethumb));
fclose($handle);
}
function error($e){
$w = (imagefontwidth(5) * strlen($e));
$h = imagefontheight(5);
$img = imagecreate($w,$h);
$bgcolor = imagecolorallocate($img, 255, 255, 255);
$txtcolor = imagecolorallocate($img, 255, 0, 0);
imagestring($img, 5, 0, 0, $e, $txtcolor);
header("Content-type: image/gif");
imagegif($img);
}
function resize($source){
global $resample,$thumb,$newwidth,$newheight,$width,$height;
if($resample == 1){
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
return $thumb;
}
function edit($thumb){
global $ext,$imgfile,$rot,$source,$newheight,$newwidth,$w m,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras ;
if(isset($rot)){
if(is_numeric($rot)){
$thumb = imagerotate($thumb, $rot, 0);
}
}
if(isset($wm) || $alwayswm == 1){
$black = imagecolorallocatealpha($thumb, 0, 0, 0, $tras);
if($alwayswm == 1){
$wm = $defwm;
}
if($persfont == 0){
$font = 5;
}
if(!isset($al) || ($al != "left" && $al != "center" && $al != "right")){
$al = "right";
}
switch ($al){
case "left":
$w = 2;
break;
case "center":
$w = ($newwidth - (strlen($wm) * imagefontwidth($font))) / 2;
break;
case "right":
if($persfont == 1){
$w = $newwidth - (strlen($wm) * (imagefontwidth($font) * $size/2)) - 2;
}else{
$w = $newwidth - (strlen($wm) * imagefontwidth($font)) - 2;
}
break;
}
$h = $newheight - imagefontheight(5) - 2;
if($persfont == 0 || trim($font) == ""){
imagestring($thumb, 5, $w, $h, $wm, $black);
}else{
imagefttext($thumb, $size, 0, $w, $h, $black, $font, $_GET['wm']);
}
}
return $thumb;
}
if($alwayswm == 1 && trim($defwm) == ""){
error("ERRORE: Necessario watermark predefinito con il watermark obbligatorio attivato");
}
if(!is_dir("thumb")){
mkdir("thumb");
}
if(!is_file($imgfile)){
error("ERRORE: L'immagine non esiste");
die();
}
if(!isset($size)){
$size = $defsize;
}
if(is_file($nomethumb) && $onthefly == 0){
read($nomethumb);
die();
}
if(!is_file($imgfile)){
error("ERRORE: Il file non esiste");
die();
}
list($width, $height) = getimagesize($imgfile);
//Heracleum mod
if($height < $width){
$newwidth = $size;
$rap = $height / $width;
$newheight = $newwidth * $rap;
}else{
$newheight = $size;
$rap = $width / $height;
$newwidth = $newheight * $rap;
}
$thumb = ImageCreateTrueColor($newwidth,$newheight);
imageantialias($thumb,1);
if($ext == "jpg" || $ext == "jpeg"){
header('Content-type: image/jpeg');
$source = imagecreatefromjpeg($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagejpeg($thumb);
}else{
imagejpeg($thumb, $nomethumb);
read($nomethumb);
}
}
elseif($ext == "gif"){
header('Content-type: image/gif');
$source = imagecreatefromgif($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagegif($thumb);
}else{
imagegif($thumb, $nomethumb);
read($nomethumb);
}
}
elseif($ext == "png"){
header('Content-type: image/png');
$source = imagecreatefrompng($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagepng($thumb);
}else{
imagepng($thumb, $nomethumb);
read($nomethumb);
}
}
elseif($ext == "bmp"){
header('Content-type: image/vnd.wap.wbmp');
$source = imagecreatefrompng($imgfile);
$thumb = resize($source);
$thumb = edit($thumb);
if($onthefly == 1){
imagewbmp($thumb);
}else{
imagewbmp($thumb, $nomethumb);
read($nomethumb);
}
}else{
error("ERRORE: Formato non supportato");
die();
}
?>
Ma hai fatto un copia e incolla?!
Allora ora ti dico dove devi correggere.
Codice PHP:
function resize($source){
global $resample, $thumb, $newwidth, $newheight, $width, $height;
if($resample == 1){
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
return $thumb;
}
function edit($thumb){
global $ext, $imgfile, $rot, $source, $newheight, $newwidth, $wm, $al, $persfont, $font, $alwayswm, $defwm, $size, $tras;
if(isset($rot)){
if(is_numeric($rot)){
$thumb = imagerotate($thumb, $rot, 0);
}
}
Ultima modifica di SolitaryExplorer : 15-03-2006 alle ore 21.44.52
grazie 100000000000000 solitary!
grazie anche a tuttoeniente e agli altri!
@probid & SolitaryExplorer: dove erano gli errori?
@SolitaryExplore:Ho fatto un copia incolla dall'editor (Notepad++) dopo avere corretto il codice. E' impazzito firefox?
Ultima modifica di tuttoeniente2 : 16-03-2006 alle ore 17.06.15
tuttoeniente2:
non ti preoccupare, non erano errori TUOI,
è il forum che aggiunge qualche spazio nelle righe troppo lunghe, per es. qui:
...
function edit($thumb){
global $ext,$imgfile,$rot,$source,$newheight,$newwidth,$w m,$al,$persfont,$font,$alwayswm,$defwm,$size,$tras ;
...
ha spezzato la riga in ben 2 parti.
E' turko che prende e incolla senza controllare
Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)
mica è colpa mia se c'è 1 bug sul forum e non viene corretto ...la prox volta se me lo ricordo controllerò!Originalmente inviato da heracleum
No, non è un bug del forum,
è semplicemente un lecito controllo per non deformare il layout delle pagine, puoi controllare tu stesso:
Senza che confermi l'invio di un post, prova a rispondere ad un thread qualsiasi, ripeti parecchie volte un carattere qualsiasi superando i 50 caratteri, per es:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaa
Senza inviarlo basta che fai "Anteprima Messaggio" e ti ritrovi questa riga spezzata da uno spazio come infatti risulterà in questa mia prova sopra, infatti c'è uno spazio dopo il 50' carattere.
Meglio ancora con i numeri, ecco qualche lettera all'inizio seguita da un MIO spazio e poi 60 caratteri di filato, gli ultimi 10 vengono spezzati:
abcd 12345678901234567890123456789012345678901234567890 1234567890
Quindi non dall'inizio della riga ma una qualsiasi parola oltre i 50 caratteri.
Dunque, tornando al codice, quando qualcuno ti propone un codice, prova a darci un minimo di sguardo di controllo, ad occhio una riga di codice spezzata si nota parecchio
Lo dico anche per te, oltre ad utilizzare codici altrui e stop, prova ad apprendere leggendo il codice. Altrimenti chiunque potrebbe farti qualche scherzetto se prendi e usi codici senza controllarli un minimo.
Ultima modifica di heracleum : 17-03-2006 alle ore 00.35.46
Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)
Fer fortuna, pensavo di essere impazzito io...!
Ma c'è un modo per impedirlo? (a parte postare un link ad un tar con dentro lo script)
Per impedire che il codice venga rovinato basta lasciare qualche spazio "strategicamente", esattamente come ha fatto SolitaryExplorer,
quella riga era stata spezzata dal forum perché aveva una serie di variabile separate da virgola tutte appiccicate l'una all'altra, bastava mettere qualche spazio dopo ciascuna virgola.
Certo in alcuni casi la cosa potrebbe essere meno fattibile, per es. nel caso di un url molto lungo dentro un codice... o altri casi simili.
Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)