1

Topic: Avatarproblem

Följande felmeddelande dyker upp när jag försöker ladda upp avatarer:


Warning: open_basedir restriction in effect. File is in wrong directory in /netikka/html/ulf/forum/profile.php on line 354

Warning: getimagesize: Unable to open '/var/tmp/phpa26611' for reading. in /netikka/html/ulf/forum/profile.php on line 354

Re: Avatarproblem

Har du kollat upp alla rättigheter?

Re: Avatarproblem

Servern som du kör skriptet på tillåter inte skrivning till /var/tmp/. Orsaken är att open_basedir är "påslaget" och att skriptet därför inte får skriva utanför sin katalogstruktur.

"Programming is like sex: one mistake and you have to support it for the rest of your life."

4

Re: Avatarproblem

Jag har kontaktat min ISP och enligt dem så är open_basedir påslagen av säkerhetsskäl. Men det ska dock gå att komma förbi detta vid just uppladdning av filer genom att flytta filen med move_uploaded_file till mitt bibliotek innan jag gör annat med filen.
Men hur detta går till i praktiken vet jag inte.

Re: Avatarproblem

Ok, vi provar en grej. Öppna upp din profile.php och leta upp ett stycke kod som ser ut såhär:

if (is_uploaded_file($uploaded_file['tmp_name']))
{
    $allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');

    if (!in_array($uploaded_file['type'], $allowed_types))
        message($lang_profile['Bad type']);

    list($width, $height, ,) = getimagesize($uploaded_file['tmp_name']);

    if ($width > $pun_config['o_avatars_width'])
        message($lang_profile['Too wide'].' '.$pun_config['o_avatars_width'].' '.$lang_profile['pixels'].'.');
    if ($height > $pun_config['o_avatars_height'])
        message($lang_profile['Too high'].' '.$pun_config['o_avatars_height'].' '.$lang_profile['pixels'].'.');
    if ($uploaded_file['size'] > $pun_config['o_avatars_size'])
        message($lang_profile['Too large'].' '.$pun_config['o_avatars_size'].' '.$lang_profile['bytes'].'.');

    if ($uploaded_file['type'] == 'image/gif')
    {
        $temp = @move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @chmod($pun_config['o_avatars_dir'].'/'.$id.'.gif', 0644);
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
    }
    else if ($uploaded_file['type'] == 'image/jpeg' || $uploaded_file['type'] == 'image/pjpeg')
    {
        $temp = @move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @chmod($pun_config['o_avatars_dir'].'/'.$id.'.jpg', 0644);
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
    }
    else if ($uploaded_file['type'] == 'image/png' || $uploaded_file['type'] == 'image/x-png')
    {
        $temp = @move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.png');
        @chmod($pun_config['o_avatars_dir'].'/'.$id.'.png', 0644);
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
    }

    if (!$temp)
        message($lang_profile['Move failed'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.');
}

Byt ut det mot

if (is_uploaded_file($uploaded_file['tmp_name']))
{
    $allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
    $width = $height = 0;

    if (!in_array($uploaded_file['type'], $allowed_types))
        message($lang_profile['Bad type']);

    if ($uploaded_file['type'] == 'image/gif')
    {
        $temp = @move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @chmod($pun_config['o_avatars_dir'].'/'.$id.'.gif', 0644);
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
        list($width, $height, ,) = getimagesize($pun_config['o_avatars_dir'].'/'.$id.'.gif');
    }
    else if ($uploaded_file['type'] == 'image/jpeg' || $uploaded_file['type'] == 'image/pjpeg')
    {
        $temp = @move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @chmod($pun_config['o_avatars_dir'].'/'.$id.'.jpg', 0644);
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
        list($width, $height, ,) = getimagesize($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
    }
    else if ($uploaded_file['type'] == 'image/png' || $uploaded_file['type'] == 'image/x-png')
    {
        $temp = @move_uploaded_file($uploaded_file['tmp_name'], $pun_config['o_avatars_dir'].'/'.$id.'.png');
        @chmod($pun_config['o_avatars_dir'].'/'.$id.'.png', 0644);
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        list($width, $height, ,) = getimagesize($pun_config['o_avatars_dir'].'/'.$id.'.png');
    }

    if ($width > $pun_config['o_avatars_width'])
    {
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
        message($lang_profile['Too wide'].' '.$pun_config['o_avatars_width'].' '.$lang_profile['pixels'].'.');
    }
    if ($height > $pun_config['o_avatars_height'])
    {
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
        message($lang_profile['Too high'].' '.$pun_config['o_avatars_height'].' '.$lang_profile['pixels'].'.');
    }
    if ($uploaded_file['size'] > $pun_config['o_avatars_size'])
    {
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.gif');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.jpg');
        @unlink($pun_config['o_avatars_dir'].'/'.$id.'.png');
        message($lang_profile['Too large'].' '.$pun_config['o_avatars_size'].' '.$lang_profile['bytes'].'.');
    }

    if (!$temp)
        message($lang_profile['Move failed'].' <a href="mailto:'.$pun_config['o_admin_email'].'">'.$pun_config['o_admin_email'].'</a>.');
}

Det blev riktigt jävla ful kod, men jag tror det ska hjälpa i ditt fall.

"Programming is like sex: one mistake and you have to support it for the rest of your life."

6

Re: Avatarproblem

Ja det verkar fungera nu. Vilken excellent support man får här av självaste PunBB utvecklaren. big_smile

Re: Avatarproblem

Hehe, det var så lite så :)

"Programming is like sex: one mistake and you have to support it for the rest of your life."