У меня есть цикл foreach, который должен проверять, проверяется ли флажок элементом. Если флажок установлен, мне нужно проверить, имеет ли значение часть скрипта для выгрузки файла, и если да, то перейти к проверке типа и размера файла, который пытается загрузить пользователь.
В настоящее время, если есть только ошибка с первым флажком, это работает нормально, но по какой-то причине, если есть ошибка с более чем одним файлом, результаты снова будут зациклены. Например, если есть ошибка с двумя файлами, это даст четыре результата (перечисляя каждую ошибку дважды), если при ошибке с тремя элементами я получу 6 результатов.
Я действительно новичок в циклах и мне интересно, должен ли я переключиться на цикл for и делать что-то вроде цикла, пока ошибки не станут равны нулю.
Вот мой HTML
<ul class="imgPreview">
<li>
<a href="#">dialogwarning_pimg4_15_1276648623.png</a>
<a href="#" class="edit_project_file"> <img src="images/edit.gif"/></a>
</li>
<li>
<input name="upload_project_images[]" type="file" />
</li>
<li>
<input name="edit_image[]" type="checkbox" value="dialogwarning_pimg4_15_1276648623.png"/>
</li>
<li>
<a href="#">formatjustifyright_pimg3_15_1276648623.png</a>
</li>
<li class="edit_project_image">
<input name="upload_project_images[]" type="file" />
</li>
<li class ="edit_file_checkbox">
<input name="edit_image[]" type="checkbox" value="formatjustifyright_pimg3_15_1276648623.png"/>
</li>
</ul>
PHP для цикла выглядит следующим образом:
$remove_images_files = $_POST['edit_image'];
if(isset($remove_images_files)){
foreach ($remove_images_files as $update){
foreach ($_FILES["upload_project_images"]["type"] as $key => $type) {
$upload_project_images = $_FILES["upload_project_images"]["name"][$key];
$upload_project_images_type = $_FILES["upload_project_images"]["type"][$key];
$upload_project_images_size = $_FILES["upload_project_images"]["size"][$key];
$upload_project_image_ext = strtolower(substr($upload_project_images, strrpos($upload_project_images, '.') + 1));
if($upload_project_images != "") {
if((!in_array($upload_project_images_type,$upload_permitted_types['mime'])) || (!in_array($upload_project_image_ext,$upload_permitted_types['ext']))) {
$errmsg_arr[] = 'Please select a jpg, jpeg, gif, or png image to use as the project image' .$upload_project_images . $upload_project_image_ext;
$errflag = true;
}
elseif($upload_project_images_size > $max_upload_size_bytes ) {
$errmsg_arr[] = 'Please select an image smaller than '. $max_upload_size_Kbytes .' to use as the project image';
$errflag = true;
}
}
}
}
}