У меня есть цикл foreach, который должен проверять, проверяется ли флажок элементом. Если флажок установлен, мне нужно проверить, имеет ли часть загрузки файла скрипт значение, и если да, то переходите к проверке типа и размера файла, который пользователь пытается загрузить.Php foreach loop, с сообщениями об ошибках цикла
В настоящее время, если есть первая ошибка с первым флажком, это работает нормально, но по какой-либо причине, если есть ошибка с несколькими файлами, она снова зациклирует результаты. Например, если есть ошибка с двумя файлами, он даст четыре результата (перечисляя каждую ошибку дважды), если ошибка с тремя элементами я получаю 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>
РНР для петли, как следует:
$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;
}
}
}
}
}
Странно, я мог бы поклясться, что я попробовал это, но это спрятано, чтобы исправить проблему, поэтому я, должно быть, сделал это неправильно. Спасибо за помощь. – BandonRandon
Добро пожаловать. –