What i would first attempt to do is to check whether the field 'file' has anything after being posted, if it is set to something (hopefully a filename) then we can proceed to call the other image processing stuff.
Otherwise we omit the image processing code.
i.e.
//put the isset(...) stuff here
if ($_FILES['file']['name'] != '') { //can check for other things
// check for standard uploading errors
($_FILES[$fieldname]['error'] == 0)
or error($errors[$_FILES[$fieldname]['error']], $uploadForm);
// check that the file we are working on really was an HTTP upload
@is_uploaded_file($_FILES[$fieldname]['tmp_name'])
or error('not an HTTP upload', $uploadForm);
// validation... since this is an image upload script we
// should run a check to make sure the upload is an image
@getimagesize($_FILES[$fieldname]['tmp_name'])
or error('only image uploads are allowed', $uploadForm);
// make a unique filename for the uploaded file and check it is
// not taken... if it is keep trying until we find a vacant one
$md5 = md5(microtime() * mktime());
$string = substr($md5,0,5);
while(file_exists($uploadFilename = $uploadsDirectory.$string.'-'.$_FILES[$fieldname]['name']))
{
$string++;
}
$name = $string.'-'.$_FILES[$fieldname]['name'];
// now let's move the file to its final and allocate it with the new filename
@move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
or error('receiving directory insuffiecient permission', $uploadForm);
rename("shopping/" . $name, "shopping/" .$type."-".$name);
}
//put that function error function here
//----------------
I have put the code which i think affects the image into the if clause. All code before and after should remain as before.
Last edited by peter_budo; Jan 11th, 2009 at 2:22 pm. Reason: Keep It Organized - For easy readability, always wrap programming code within posts in [code] (code blocks) and [icode] (inline code) tags.