Avatar billede tsearex999 Nybegynder
19. maj 2004 - 20:47 Der er 25 kommentarer og
1 løsning

open_basedir restriction in effect

Hejsa Når jeg forsøger at uploade en fil får jeg følgende fejl:

open_basedir restriction in effect

Jeg har samme kode til at kører på en anden server og der virker det fint. Jeg tror at det har noget med safemode at gøre men hvordan gør jeg når det ikke er min server, så der er ikke mulighed for at slå safemode fra.

Er der nogen som kan hjælpe?
Avatar billede Slettet bruger
19. maj 2004 - 20:53 #1
Har du husket at chmodde det dir du vil lægge filerne over i?
Avatar billede Slettet bruger
19. maj 2004 - 20:54 #2
Samt angivet den direkte sti i koden...?
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 20:55 #3
du skal have at chmod til 777
Avatar billede Slettet bruger
19. maj 2004 - 20:56 #4
technodance.dk > Ja, men jeg tror nærmere det er hans dirs der er forkerte. Efter fejlmeddelelsen at bedømme virker det som om han prøver at få en ekstern dir fordi han har glemt at ændre den i koden.
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 20:56 #5
pacr00n jeg tro kun det er chmod ham mangler for det viker jo fint på en anden server
Avatar billede Slettet bruger
19. maj 2004 - 20:57 #6
technodance.dk > Ja, netop fordi den direkte sti ikke er ens på de to servere?
Avatar billede tsearex999 Nybegynder
19. maj 2004 - 20:57 #7
Har du husket at chmodde det dir du vil lægge filerne over ... ja jeg har givet 777 til dir og den oploader også filen men den kommer med nogle fejl:

Warning: getimagesize(): open_basedir restriction in effect. File(/tmp/phppWB27u) is not within the allowed path(s):

Samt angivet den direkte sti i koden...? mener du http:// osv
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 20:57 #8
ja han skal kigge om chmod 777
og sti'en til mappen er rigtigt
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 20:58 #9
$_SERVER["DOCUMENT_ROOT"]
Avatar billede Slettet bruger
19. maj 2004 - 20:58 #10
tsearex999 > Vis koden, jeg er sikker på det er sti-angivelsen i din kode der er forkert.
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 20:59 #11
jeg tro vi ska se koden
Avatar billede tsearex999 Nybegynder
19. maj 2004 - 21:01 #12
require_once('validateupload.php');
if( isset($_FILES['file']) ) {
    $filename = validateUpload(&$_FILES['file'], array(
        'max_file_size' => 102400*2,        // bytes
        'max_image_width' => 200,        // pixels
        'max_image_height' => 200,        // pixels
        'image_scale' => false,            // scale or just reject if picture is too big
     
        'output' => 'billeder', 
                                        // if filename: uploaded file is stored as target
                                        // if dirname : uploaded filename is append, and file is stored as this
        'keep_extension' => true,        // optional. Append filename extension to output
        'allowed_mimes' => array('image/bmp','image/png','image/jpeg','image/pjpeg','image/gif')), &$res);                            // Will contain errors
    $errors = array();
    $errors[VUPLOAD_TOO_LARGE_BYTE] = 'Filen er for stor. 10k maximum.';
    $errors[VUPLOAD_WRONG_MIME]    = 'Invalid filetype.';
    $errors[VUPLOAD_TOO_LARGE_PIXEL]= 'Billedet er for stort, brug venligst et mindre billede.';
    $errors[VUPLOAD_SCALE_FAILED]  = 'Scaling failed. Please try again later.';
    $errors[VUPLOAD_MOVE_FAILED]    = 'Kan ikke gemme billedet. Prøv igen senere.';
    if( isset( $errors[$res] ) )
        print $errors[$res];
    else {
        print "fil uploaded: " . basename($filename) . "<br><br>";
        print "<img src=\"billeder/" . basename($filename) . "\">";
    }
}
Avatar billede Slettet bruger
19. maj 2004 - 21:02 #13
Mangler du ikke noget?
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 21:02 #14
det siger ikke meget hvor du prøver at ligge fil hen
Avatar billede tsearex999 Nybegynder
19. maj 2004 - 21:03 #15
Jo her:

'output' => 'billeder',
Avatar billede Slettet bruger
19. maj 2004 - 21:04 #16
Du må vel definere 'billeder' et sted, osv. Er du sikker på det er hele din kode?

Måske kan dette hjælpe dig: http://www.eksperten.dk/artikler/266
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 21:04 #17
det har noget med copy af gøre
Avatar billede tsearex999 Nybegynder
19. maj 2004 - 21:07 #18
'output' => 'billeder' er navnet på det dir hvor jeg ligger filen.

Men det er rigtigt der er mere, meget mere.

Vil i have hele koden? der er meget
Avatar billede technodance.dk Nybegynder
19. maj 2004 - 21:08 #19
kom med den
Avatar billede Slettet bruger
19. maj 2004 - 21:08 #20
Så prøv output => 'hele/din/document_root/billeder'
Avatar billede tsearex999 Nybegynder
19. maj 2004 - 21:13 #21
/www/domain.dk/billeder  virker ikke.

resten af koden.... validateupload.php

<?php

define('VUPLOAD_OK', 0);
define('VUPLOAD_TOO_LARGE_BYTE', 1);
define('VUPLOAD_WRONG_MIME', 2);
define('VUPLOAD_TOO_LARGE_PIXEL', 3);
define('VUPLOAD_SCALE_FAILED', 4);
define('VUPLOAD_MOVE_FAILED', 5);

    /*
0024:      * validateUpload(&$file,$attr,&$rc) ..
0025:      *
0026:        * &$file        should be the array provided by php with
0027:      *              info about the uploaded file.
0028:      * $attr        is an hash-array containing options. (Option)Keys are:
0029:      *  max_file_size:
0030:      *      maximum allowed file size in bytes. If it dosnt exist, check is disabled
0031:      *  allowed_mimes:
0032:      *      is an array of accepted mimes-type. If it dosnt exist, check is disabled
0033:      *  max_image_width / max_image_height:
0034:      *      Max allowed width/height of pictures (jpg,png,gif)
0035:      *  image_scale:
0036:      *      If picture is larger than max_image_width/max_image_height should we try
0037:      *      to scale it down (keeping aspect)
0038:      *  output:
0039:      *      If this is an existing directory, the filename is appended, and is used for
0040:      *      storing the picture. If output isnt a directory, it is used 'as-is' for
0041:      *      storing the picture.
0042:      *  keep_extension:
0043:      *      If output is a filename, should we append the extension. (true/false)
0044:      *  allowed_mimes:
0045:      *      Accepted mime-types. Optional. If it dosnt exists, no limitated is enforced.
0046:      *
0047:      * &$rc:          is a integer that contains status of the operatoin
0048:      *    VUPLOAD_OK                (0) Every was fine
0049:      *    VUPLOAD_TOO_LARGE_BYTE    (1) The file exceeded max_file_size configuration option.
0050:      *    VUPLOAD_WRONG_MIME        (2) Uploaded file isnt allowed (didnt exists in allowed_mimes)
0051:      *    VUPLOAD_TOO_LARGE_PIXEL    (3) Picture was too large (width/hight).
0052:      *    VUPLOAD_SCALE_FAILED      (4) If scaling fails.
0053:      *    VUPLOAD_MOVE_FAILED        (5) If moving from the temporary directory fails.
0054:      * RETURNS:
0055:      *    filepath of stored file if success, otherwise null is returned
0056:      */

function validateUpload(&$fileInfo,$attr,&$rc) {
    $file_moved = false;

    // Check if file is large or not (byte-wise)
    if( isset($attr['max_file_size']) && $fileInfo['size'] > $attr['max_file_size'] ) {
      $rc = VUPLOAD_TOO_LARGE_BYTE;
        return null;
    }

    // Check if allowed type-file
    if(isset($attr['allowed_mimes']) && !in_array($fileInfo['type'], $attr['allowed_mimes']) )  {
        $rc = VUPLOAD_WRONG_MIME;
        return null;
    }

    // Target filename
    if( is_dir($attr['output']) ) {
        $outputname = $attr['output'] . '/' . 
            preg_replace('/[^a-z0-9_\-\.]/i', '_', $fileInfo['name']);    //Doctor filename to avoid security issues.
    }
    else {
        $outputname = $attr['output'];
        if( isset($attr['keep_extension']) && $attr['keep_extension'] ) {
            // Find and keep extension
            $filename = preg_replace('/[^a-z0-9_\-\.]/i', '_', $fileInfo['name']);
            $pos = strrpos($filename,'.');
            if( $pos > 0 && (strlen($filename) - $pos) < 5 )  // Allow max 5 chars for extension
                $outputname .= substr($filename,$pos);
        }
    }

    // Sizecheck [pixel-wise, requires mime to consist of image/-something. If it isnt
    // Skip this part.
    if( strstr($fileInfo['type'], 'image') ) {
        $filename = $fileInfo['tmp_name'];
        $info = getimagesize($filename);
        $width = $info[0];
        $height = $info[1];

        if( (isset($attr['max_image_width']) && $width > $attr['max_image_width'] ) || (isset($attr['max_image_height']) && $height > $attr['max_image_height']) ) {
            if( !isset($attr['image_scale']) || !$attr['image_scale'] ) {
                $rc = VUPLOAD_TOO_LARGE_PIXEL;
                return null;
            }

            // Make sure that we can handle this imagetype. If not, return, $rc=VUPLOAD_TOO_LARGE
            // Might as well open image..
            $info = gd_info();
            $srcimg = null;

            switch($fileInfo['type']) {
                case 'image/png':
                    if(! isset($info['PNG Support']) ) {
                        $rc = VUPLOAD_SCALE_FAILED;
                        imagedestroy($srcimg);
                        return null;
                    }
                    $srcimg = imagecreatefrompng($filename);
                    break;
                case 'image/jpeg':
                case 'image/pjpeg':
                    if(! isset($info['JPG Support']) ) {
                        $rc = VUPLOAD_SCALE_FAILED;
                        imagedestroy($srcimg);
                        return null;
                    }
                    $srcimg = imagecreatefromjpeg($filename);
                    break;
                case 'image/gif':
                    if(! isset($info['GIF Support']) ) {
                        $rc = VUPLOAD_SCALE_FAILED;
                        imagedestroy($srcimg);
                        return null;
                    }
                    $srcimg = imagecreatefromgif($filename);
                    break;
            }

            // Scale it - find ratios
            $scaleWidth = $attr['max_image_width'] / $width;
            $scaleHeight = $attr['max_image_height'] / $height;

            // To keep aspect, select the highest scale
            $scale = ($scaleWidth < $scaleHeight) ? $scaleWidth : $scaleHeight;

            // Ready to scale. Calculate new size and create dstimg.
            $newheight = floor($height * $scale);
            $newwidth  = floor($width * $scale);

            // resize it
            $dstimg = imagecreatetruecolor($newwidth,$newheight); //imagecreate($newheight,$newwidth);
            if(! $dstimg ) {
                $rc = VUPLOAD_SCALE_FAILED;
                imagedestroy($srcimg);
                return null;
            }

            if( !imagecopyresampled( $dstimg, $srcimg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height) ) {
                $rc = VUPLOAD_SCALE_FAILED;
                imagedestroy($srcimg);
                imagedestroy($dstimg);
                return null;
            }

            // Image is scaled, lets move it into target directory.
            switch($fileInfo['type']) {
                case 'image/png':
                    imagepng($dstimg, $outputname);
                    $file_moved = true;
                    break;
                case 'image/jpeg':
                case 'image/pjpeg':
                    imagejpeg($dstimg, $outputname);
                    $file_moved = true;
                    break;
                case 'image/gif':
                    imagegif($dstimg, $outputname);
                    $file_moved = true;
                    break;
            }
        }
    }

    if(! $file_moved ) {
        if( move_uploaded_file($fileInfo['tmp_name'], $outputname) ) {
            $file_moved = true;
      }
        else {
            $rc = VUPLOAD_MOVE_FAILED;
            return null;
        }
    }
    $rc = VUPLOAD_OK;
    return $outputname;
}
?>
Avatar billede sukos Juniormester
19. maj 2004 - 21:58 #22
Ved ikke hvad og hvordan, men prøv med dette:

http://www.showsource.dk/php/download.php?id=1064975823
Avatar billede sukos Juniormester
19. maj 2004 - 21:59 #23
openbasedir..................

angi' ALTID dem fulde sti til det du vil!!!
Avatar billede sukos Juniormester
19. maj 2004 - 21:59 #24
dem->den
Avatar billede tsearex999 Nybegynder
14. juni 2004 - 11:52 #25
takker for hjælpen.. men det har ikke hjulpet.

Jeg ved ikke rigtigt om jeg skal give point til nogen men nu lukker jeg og hvis der er nogen som mener at de skal have point må de skrive til mig.
Avatar billede tsearex999 Nybegynder
14. juni 2004 - 11:53 #26
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester