Показать сообщение отдельно
Старый 16.10.2009, 00:53     # 1
killhunter
Junior Member
 
Аватар для killhunter
 
Регистрация: 24.10.2002
Сообщения: 68

killhunter Известность не заставит себя ждать
Логика if - else PHP нужна помощь

День добрый.
Помогите, пожалуйста, разобраться с логикой многоуровнего if - else.
Есть код загрузки картинок на сервер + пути в базу.
Многочисленные проверки работают и всю грузиться куда надо, если проходит проверки. Но вот текст ошибки по проверке размера фаила в Кб не выдаётся, а выдается ошибка по пикселям. Хотя фаил большого чем надо размера не пропускает. В общем хочу понять почему не выдаёт ошибку по размеру.
Заранее спасибо.

PHP код:
//коннектимся к базе
$max_image_width = 150;
$max_image_height = 301;
$max_image_width2 = 801;
$max_image_height2 = 1001;
$max_image_size = 20 * 1024;
$max_image_size2 = 200 * 1024;
$valid_types = array("gif","jpg", "png", "jpeg", "JPG", "JPEG", "GIF", "PNG");

if($post=="Y")
  {
   

   // Каталог, в который мы будем принимать файл:
   $uploaddir1 = 'files/';
   $filename = $_FILES['image_path1']['name'];
   $filename_1 = $_FILES['image_path2']['name'];
     if (eregi("[а-яА-Я]", $filename) || eregi("[а-яА-Я]", $filename_1))
       {
         $error_1="<b>Ошибка:</b> <font color=#FF0000>В имени фаила не должно быть русских букв.</font>";
       }
     else
       {
         //генерируем новые имена
         $add=rand(1,10).rand(5,20).rand(3,40).rand(1,100);
         $name=substr($filename, 0, strrpos($filename, "."));
         $name_hex=bin2hex($name);
         $add2=rand(1,10).rand(5,20).rand(3,40).rand(1,100);
         $name2=substr($filename_1, 0, strrpos($filename_1, "."));
         $name_hex2=bin2hex($name2);
         $ext = substr($filename, 1 + strrpos($filename, "."));
         $ext2 = substr($filename_1, 1 + strrpos($filename_1, "."));
         $filename2 = $_FILES['image_path1']['tmp_name'];
         $filename2_2 = $_FILES['image_path2']['tmp_name'];
         if (strrpos($filename, ".") > 8 && strrpos($filename_1, ".") > 8)
           {
            $error_2="<b>Ошибка:</b> <font color=#FF0000>Слишком длинное имя фаила. Допустимо 8 символов до точки.</font>";
           } 
         else
           {
         $image_path1 = $uploaddir1.basename($add.'_'.$name_hex.'.'.$ext);
         $image_path2 = $uploaddir1.basename($add2.'_'.$name_hex2.'.'.$ext2);
          //вот что-то здесь не так
           [B]if (filesize($filename2) > $max_image_size || filesize($filename2_2) > $max_image_size2) 
             {
               $error_3="<b>Ошибка:</b> <font color=#FF0000Размер фаила слишком большой. Допустимо не более 20Kб для фото-миниатюры и 200Кб для полной фотографии.</font>";[/B]             } 
           elseif (!in_array($ext, $valid_types) || !in_array($ext2, $valid_types)) 
             {
               $error_4="<b>Ошибка:</b> <font color=#FF0000>Неправильный тип фаила. Допустимо (jpg, jpeg) или фаил не указан.</font>";
             } 
           else 
             {
               $size = GetImageSize($filename2);
               $size2 = GetImageSize($filename2_2);
               if (($size) && ($size[0] == $max_image_width) && ($size[1] < $max_image_height) && ($size2) && ($size2[0] < $max_image_width2) && ($size2[1] < $max_image_height2)) 
                   {
                      // Копируем файл из каталога для временного хранения файлов:
                         if (copy($filename2, $image_path1) && copy($filename2_2, $image_path2))
                           {
                             //грузим в базу данные и путь
                                        
                            }
                         else $error_5="<b>Ошибка:</b> <font color=#FF0000>Не удалось загрузить файл на сервер!</font>"; 
                   } 
                 else $error_6="<b>Ошибка:</b> <font color=#FF0000>Размеры картинки слишком большие. Для фото-миниатюры ширина = 150px, высота максимально - 300px, для полной фотографии ширина максимально 800px, высота максимально - 1000px.</font>";
             }
          }
       }   
  }
echo $error_1;
echo $error_2;
echo $error_3;
echo $error_4;
echo $error_5;
echo $error_6;
?>
<form action="<? $PHP_SELF?>" method="post" enctype=multipart/form-data>
<input type="hidden" name="post" value="Y">
<input type="hidden" name="MAX_FILE_SIZE" value="200000">
....
<input type="file" name="image_path1" value="<? echo $image_path1?>" size=26>
<input type="file" name="image_path2" value="<? echo $image_path2?>" size=26
...
<input type="submit" value="Добавить">
</form>
//закрываем коннект к базе
__________________
Через терни к звездам!
killhunter вне форума