My first question on SO, thanks. :)
I'm developing a support issue logging system for my company and it must allow for files to be uploaded aswell as any problems submitted to our database. There could be from 0-6 different uploads to check, along with a support issue. I've managed to get an accurate variable of how many files there is through having a hidden input field (imgcount) that updates via js whenever an image is selected through a type="file" input, or removed from the form.
My [input type="file"] names are image1, image2, etc. As i thought it'd be easier this way to loop through them.
When the form is submitted the following code takes a look to see if there's any files and checks that they're of valid type (gif/jpeg/png), so they can be uploaded safely. I'm not too worried about viruses as the support system has a nice secure logon and we trust our clients.
$sscount = $_POST['imgcount'];
echo $sscount; //to test the variable
if($sscount>0){
for($i = 1; $i <= $sscount; $i++){
if (($_FILES["image$i"]["type"] == "image/gif")
|| ($_FILES["image$i"]["type"] == "image/jpeg")
|| ($_FILES["image$i"]["type"] == "image/png" )
&& ($_FILES["image$i"]["size"] < 500000))
{
}
else
{
$errormsg .= "Error: Image $i must be either JPEG, GIF, or PNG and less than 500 kb.<br />";
}
}
}
But this doesn't seem to be looping through correctly, anyone got any ideas how i can get it to loop through and return correctly?
The && operator has a higher precedence than ||, so rather than (A OR B OR C) AND D
as you intended, it is actually A OR B OR (C AND D)
You can use parentheses to enforce the evaluation you intended.
However, something like this might be cleaner and easier to maintain/read:
$allowed_types=array(
'image/gif',
'image/jpeg',
'image/png',
);
$sscount = $_POST['imgcount'];
if($sscount>0){
for($i = 1; $i <= $sscount; $i++){
if (in_array($_FILES["image$i"]["type"], $allowed_types) &&
($_FILES["image$i"]["size"] < 500000))
{
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With