$ir è una variabile globale dove è assegnato il contenuto del campo username del database.
Ti posto tutto il codice così da farti capire cosa intendo.
La parte interessata è evidenziata in Blu, ciò che mi interessa è salvare il file utilizzando il campo username. Come ti ho detto se prendo quella parte di codice e provo a spostarla sopra la classe avatar, mi funge, cioè mi legge correttamente il campo username.
File avatar.php con la classe "avatar"
codice:
<?php
require_once "globals.php";
class avatar
{
var $filename;
var $width = 100;
var $height = 100;
var $parts = array();
function set_width($width)
{
$this->width = $width;
}
function set_filename($filename)
{
$this->filename = $filename;
}
function set_background($background)
{
$this->background_source = $background;
}
function add_layer($filename)
{
$this->parts[] = $filename;
}
function build_background()
{
$first_image = $this->parts[0];
list($width, $height) = getimagesize($first_image);
$this->height = ($this->width/$width)*$height;
$this->background = imagecreatetruecolor($this->width, $this->height);
if(substr_count($this->background_source, "#")>0)
{
$int = hexdec(str_replace("#", "", $this->background_source));
$background_color = imagecolorallocate ($this->background, 0xFF & ($int >> 0x10), 0xFF & ($int >> 0x8), 0xFF & $int);
imagefill($this->background, 0,0,$background_color);
}else{
list($bg_w, $bg_h) = getimagesize($this->background_source);
$img = imagecreatefrompng($this->background_source);
imagecopyresampled($this->background, $img, 0,0,0,0,$this->width, $this->height, $bg_w, $bg_h);
}
}
function build_composition()
{
$this->canvas = imagecreatetruecolor($this->width, $this->height);
if($this->background)
{
imagecopyresampled($this->canvas, $this->background, 0,0,0,0,$this->width, $this->height, $this->width, $this->height);
}
for($i=0; $i<count($this->parts); $i++)
{
list($part_w, $part_h) = getimagesize($this->parts[$i]);
$body_part = imagecreatefrompng($this->parts[$i]);
imageAlphaBlending($body_part, true);
imageSaveAlpha($body_part, true);
imagecopyresampled($this->canvas, $body_part, 0,0,0,0,$this->width, $this->height, $part_w, $part_h);
}
}
function output()
{
if(!empty($this->filename))
{
imagejpeg($this->canvas, $this->filename,100);
}else{
srand ((double) microtime( )*1000000);
$namer = "upload/".$ir['username'].uniqid (rand (),true).".jpg";
header("content-type: image/jpeg");
imagejpeg($this->canvas, "", 100);
imagejpeg($this->canvas, $namer, 100);
}
imagedestroy($this->canvas);
}
function build()
{
$this->build_background();
$this->build_composition();
$this->output();
}
}
?>
File pagina.php (l'output dell'immagine)
codice:
<?php
require_once "avatar.php";
$q=$db->query("SELECT * FROM items WHERE itmid IN({$ir['equip_primo']}, {$ir['equip_secondo']}, {$ir['equip_terzo']}, {$ir['equip_quarto']}, {$ir['equip_quinto']}, {$ir['equip_sesto']}, {$ir['equip_settimo']}, {$ir['equip_ottavo']})");
while($r=$db->fetch_row($q))
{
$equip[$r['itmid']]=$r;
}
$avatar = new avatar;
$avatar->set_background("images/alpha.png");
$avatar->set_width(600);
// ######################################## CONDIZIONE 1 ##############################
if ($equip[$ir['equip_primo']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_primo']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_secondo']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_secondo']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_terzo']]['itmid']) {
$avatar->add_layer("images/ bases/body.png");
$avatar->add_layer($equip[$ir['equip_terzo']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_quarto']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_quarto']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_quinto']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_quinto']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_sesto']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_sesto']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_settimo']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_settimo']]['itmpicint']);
$avatar->build();
} else if ($equip[$ir['equip_ottavo']]['itmid']) {
$avatar->add_layer("images/bases/body.png");
$avatar->add_layer($equip[$ir['equip_ottavo']]['itmpicint']);
$avatar->build();
}
else {
$avatar->add_layer("images/bases/body.png");
$avatar->build();
}
?>
file index.php
(immagine.jpg è pagina.php)
codice:
...
[img]immagine.jpg[/img]
...