Lamez Posted March 22, 2008 Share Posted March 22, 2008 I got this error in my image upload script, the script it suppose to take the file trying to be uploaded, and resize it. here is the error: Warning: unlink() [function.unlink]: SAFE MODE Restriction in effect. The script whose uid/gid is 24543/24543 is not allowed to access /tmp/MKUPSHL08b owned by uid/gid 99/99 in /mounted-storage/home48c/sub007/sc33591-LWQU/lamezz.info/user/usrava/new_upload.php on line 68 here is the code with line 68 commented: <html> <head> <title>web.blazonry : PHP : Upload and Resize an Image</title> <?php if ($_SERVER['REQUEST_METHOD'] == "POST") { /* SUBMITTED INFORMATION - use what you need * temporary filename (pointer): $imgfile * original filename : $imgfile_name * size of uploaded file : $imgfile_size * mime-type of uploaded file : $imgfile_type */ /*== upload directory where the file will be stored relative to where script is run ==*/ $uploaddir = "."; /*== get file extension (fn at bottom of script) ==*/ /*== checks to see if image file, if not do not allow upload ==*/ $pext = getFileExtension($imgfile_name); $pext = strtolower($pext); if (($pext != "jpg") && ($pext != "jpeg") && ($pext != "png") && ($pext != "gif") && ($pext != "bmp") && ($pext != "tif")) { print "<h2>Error</h2>"; print "<p>The file you are trying to upload is not a image."; print "<br> jpg, jpeg, png, gif, bmp, and tif are only accepted</p>"; /*== delete uploaded file ==*/ unlink($imgfile); exit(); } //-- RE-SIZING UPLOADED IMAGE /*== only resize if the image is larger than 250 x 200 ==*/ $imgsize = GetImageSize($imgfile); /*== check size 0=width, 1=height ==*/ if (($imgsize[0] > 150) || ($imgsize[1] > 150)) { /*== temp image file -- use "tempnam()" to generate the temp file name. This is done so if multiple people access the script at once they won't ruin each other's temp file ==*/ $tmpimg = tempnam("/tmp", "MKUP"); /*== RESIZE PROCESS 1. decompress jpeg image to pnm file (a raw image type) 2. scale pnm image 3. compress pnm file to jpeg image ==*/ /*== Step 1: djpeg decompresses jpeg to pnm ==*/ system("djpeg $imgfile >$tmpimg"); /*== Steps 2&3: scale image using pnmscale and then pipe into cjpeg to output jpeg file ==*/ system("pnmscale -xy 150 150 $tmpimg | cjpeg -smoo 10 -qual 50 >$imgfile"); /*== remove temp image ==*/ unlink($tmpimg); #LINE 68 } /*== setup final file location and name ==*/ /*== change spaces to underscores in filename ==*/ $final_filename = str_replace(" ", "_", $imgfile_name); $newfile = $uploaddir . "/$final_filename"; /*== do extra security check to prevent malicious abuse==*/ if (is_uploaded_file($imgfile)) { /*== move file to proper directory ==*/ if (!copy($imgfile,"$newfile")) { /*== if an error occurs the file could not be written, read or possibly does not exist ==*/ print "Error Uploading File."; exit(); } } /*== delete the temporary uploaded file ==*/ unlink($imgfile); print("<img src=\"$final_filename\">"); /*== DO WHATEVER ELSE YOU WANT SUCH AS INSERT DATA INTO A DATABASE ==*/ } ?> </head> <body bgcolor="#FFFFFF"> <h2>Upload and Resize an Image</h2> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="1073741824"> <p>Upload Image: <input type="file" name="imgfile"><br> <font size="1">Click browse to upload a local file</font><br> <br> <input type="submit" value="Upload Image"> </form> </body> </html> <?php /*== FUNCTIONS ==*/ function getFileExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } ?> I know it is safe mode restrictions, but what does unlink do? How can I fix this? Quote Link to comment https://forums.phpfreaks.com/topic/97330-unlink/ Share on other sites More sharing options...
Barand Posted March 22, 2008 Share Posted March 22, 2008 ... but what does unlink do? www.php.net/unlink Quote Link to comment https://forums.phpfreaks.com/topic/97330-unlink/#findComment-498123 Share on other sites More sharing options...
mVeliki Posted March 22, 2008 Share Posted March 22, 2008 There is no cure against safe mode. Try to delete this file via FTP, or wait for PHP 6 where safe mode will be removed (as i read somewhere). Quote Link to comment https://forums.phpfreaks.com/topic/97330-unlink/#findComment-498228 Share on other sites More sharing options...
redarrow Posted March 22, 2008 Share Posted March 22, 2008 try this please if it works dont remove the @ <?php @chmod( $tmpimg, 0777 ); @unlink( $tmpimg ); ?> Quote Link to comment https://forums.phpfreaks.com/topic/97330-unlink/#findComment-498231 Share on other sites More sharing options...
redarrow Posted March 22, 2008 Share Posted March 22, 2008 ftp way m8... <?php // set up the settings $file = $tmpimg; $ftp_server = 'something.net'; $ftpuser = 'username'; $ftppass = 'pass'; // set up basic connection $conn_id = ftp_connect($ftp_server); // login with username and password $login_result = ftp_login($conn_id, $ftpuser, $ftppass); // try to delete $file if (ftp_delete($conn_id, $file)) { // the ftp function echo "$file deleted successful\n"; } else { echo "could not delete $file\n"; } // close the connection ftp_close($conn_id); ?> Quote Link to comment https://forums.phpfreaks.com/topic/97330-unlink/#findComment-498235 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.