Hata mesajları döngü ile php foreach döngü,

1 Cevap php

Ben bir onay kutusu bir öğe tarafından kontrol edilir olmadığını görmek için kontrol etmek için varsayalım bir foreach döngü var. Onay kutusu işaretli ise ben script dosya yükleme kısmı bir değeri vardır ve bu yüzden eğer kullanıcı yüklemek için çalışıyor dosyanın dosya türünü ve boyutunu kontrol etmek için devam olmadığını görmek gerekir.

İlk onay kutusunu sadece bir hata varsa şu anda o zaman bu çalışıyor ama nedense bu döngü tekrar sonuçları olacaktır birden fazla dosya ile bir hata varsa. Iki dosya ile bir hata varsa üç maddeden oluşan bir hata Ben 6 sonuç almak Örneğin dört sonuçlar (iki kez hata listeleme) verecektir.

Döngüler gerçekten yeni ve ben döngü için bir geçiş ve hatalar sıfıra eşit kadar döngü gibi bir şey yapmak gerektiğini merak ediyorum.

İşte benim 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>

Olarak takip döngüsü için 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;
    			}
    		}
    	}
    }
}

1 Cevap

Senin sorunun üzerinde yineleme olduğunu olabilir

$_FILES["upload_project_images"]["type"]

Ben sanmıyorum $remove_images_files her giriş için, yapmak istediğiniz budur. : Eğer aşağıdaki satırı çıkarırsanız

foreach ($remove_images_files as $update){

ve onun }, bunu yapmak istediğinizi yapar tekabül?