добавяне на проверка

gamehack

Registered
Здравейте, имам 1 код който на 100 процента има грешки.Казаха ми да направя проверка с getimatesize за да съм сигурен дали е изображение.Но така и така не намерих нищо бих се радвал ако някой ми го направи.Това е кода благодаря ви предварително :P
Код:
<?php

if (isset( $_POST['submitbutton'])){
    $allowed_file_ext = array( "jpg", "gif", "png", "bmp" , "jpeg" );
    
    if ($_FILES['image_file']['size'] > 0)
    {
        $file_ext = array_pop( explode( ".", strtolower( $_FILES['image_file']['name'] ) ) );
        // Look at whether the extension of the uploaded file is in the whitelist
        if (!in_array( $file_ext, $allowed_file_ext ))
        {
            $error .= "Прикачвания от вас файл не е от позволените формати на сайта !<br />";
        }
        if($_SESSION['guest']){
           $ip = $_SERVER['REMOTE_ADDR'];
           $timets = time() - 60*60*24;
           $query = "SELECT size FROM image WHERE ip='$ip' AND upload_time > '$timets'";
           $result = mysql_query($query);
           while($img = mysql_fetch_array($result)){
              $sizeAllDay = $sizeAllDay + $img['size'];
           }
           $imgAllDay = mysql_num_rows($result);
           if($imgAllDay > MAX_IMAGES_GUEST_PER_DAY || $sizeAllDay > MAX_SIZE_GUEST_PER_DAY){
              $error .= "Вече има прекалено много качесни снимки от вашият ИП адрес.Моля върнете се утре.<br />";
           }
        } else {
           $timets = time() - 60*24*24;
           $user_id = $_SESSION['user_id'];
           $query =  "SELECT size FROM image WHERE user_id='$user_id' AND upload_time > '$timets'";
           $result = mysql_query($query);
           while($img = mysql_fetch_array($result)){
              $sizeAll = $sizeAll + $img['size'];
           
           }
           $file_size = floor($_FILES['image_file']['size'] / 102400);
           if($sizeAll+$file_size > WEBSPACE_USER && !$_SESSION['isAdmin']){
              $error .= "Нямате повече свободно пространство за качване на изображения.Моля свържете се с админситратора.<br />";
           }
        }
        
        $file_handle = md5(microtime());
            $file_handle = substr($file_handle, 0, 30);
            $fn_replace = array( 'д' => 'ae', 'ц' => 'oe', 'ь' => 'ue', 'Я' => 'ss', ' ' => '_', '1' =>'z', '2' => 'z', '3' => 'z', '4' =>'z', '5' =>'z', '6' =>'z', '7' => 'z', '8' => 'z', '9' => 'z', '0' =>'z', '"' => 'z', '§' => 'z', '$' => 'z', '%' => 'z', '(' => 'z', ')' =>'z', '=' =>'z', '?' =>'z' );
            $file_name = strtr( strtolower( $_FILES['image_file']['name'] ), $fn_replace );
            $file_name = substr(md5($file_handle),0, 10) . $file_name;
        include 'inc/bmp.php';
        $file_size = floor($_FILES['image_file']['size'] / 1024);
        if($file_size > MAX_SIZE_GUEST && $_SESSION['guest'] || $file_size > MAX_SIZE_USER) $error .= 'Максималната големина за качване на изображения от гости е ' . MAX_SIZE_GUEST . 'kb а за потребители ' . MAX_SIZE_USER . 'kb. Вие се опитвате да качите файл с по-голям размер от разрешения.<br />';

        if (move_uploaded_file( $_FILES['image_file']['tmp_name'], 'uploads/' . $file_name) && !isset($error))
        {
                 $bild='uploads/'. $file_name;
                 $size=getimagesize($bild); 
                 if($size[0] < THUMB_WIDTH){
                    copy('uploads/'. $file_name);
                 } else {
                    
                    
                     
                       $breite=$size[0]; 
                       $hoehe=$size[1]; 
                    
                       define('THUMB_HEIGHT', intval($hoehe*THUMB_WIDTH/$breite)); 
                       if($size[2]==1) { 
                    
                          $altesBild=ImageCreateFromGIF($bild); 
                          $neuesBild=ImageCreate(THUMB_WIDTH,THUMB_HEIGHT); 
                          ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
                          ImageGIF(); 
                       } 

                       if($size[2]==2) { 
                       // JPG 
                          $altesBild=ImageCreateFromJPEG($bild); 
                          $neuesBild=imagecreatetruecolor(THUMB_WIDTH,THUMB_HEIGHT); 
                          ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
                          ImageJPEG(); 
                       } 

                       if($size[2]==3) { 
                    // PNG 
                          $altesBild=ImageCreateFromPNG($bild); 
                          $neuesBild=imagecreatetruecolor(THUMB_WIDTH,THUMB_HEIGHT); 
                          ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
                          ImagePNG(); 
                       }   
                    
                       if($size[2]==6){
                          $altesBild=ImageCreateFromBMP($bild); 
                          $neuesBild=imagecreatetruecolor(THUMB_WIDTH,THUMB_HEIGHT); 
                          ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
                          ImageBMP();            
                       }         
                    }
                 $time_stamp = time();
                 $user_id = mysql_real_escape_string($_SESSION['user_id']);
                 $description = mysql_real_escape_string($_POST['description']);
                 $view_handle = substr(md5($file_handle), 0, 30);
                 $query = "INSERT INTO image (ip, handle, user_id, description, file_name, size, upload_time, view_handle) VALUES ('$ip', '$file_handle', $user_id, '$description', '$file_name', $file_size, $time_stamp, '$view_handle')";
                 mysql_query($query);
            chmod( 'uploads/' . $file_name, 0755 );
            $id = mysql_insert_id();

 
            $counter = ALL_PICS_UPLOADED + 1;
            $query = "UPDATE var SET value='$counter' WHERE name='ALL_PICS_UPLOADED'";
            mysql_query($query);
            
            $new_size = ALL_PICS_UPL_SIZE + $file_size;
            $query = "UPDATE var SET value='$new_size' WHERE name='ALL_PICS_UPL_SIZE'";
            mysql_query($query);
            include 'tpl/upload/success.php';
        }
        else
        {
            include 'tpl/upload/form.php';
         
        }
    } else {
       include 'tpl/upload/form.php';
    }
} else {
      include 'tpl/upload/form.php';
}
[/code]
 
Ако може да го напишеш вътре в кода.Понеже нещо не се справих.
PHP:
<?php
if (isset( $_POST['submitbutton'])){
    $allowed_file_ext = array( "jpg", "gif", "png", "bmp" , "jpeg" );
    
    if ($_FILES['image_file']['size'] > 0)
    {
        $file_ext = array_pop( explode( ".", strtolower( $_FILES['image_file']['name'] ) ) );
        // Look at whether the extension of the uploaded file is in the whitelist
                if (!in_array( $file_ext, $allowed_file_ext ))
        {
            $error .= "Прикачвания от вас файл не е от позволените формати на сайта !<br />";
            return;
        }
        if($_SESSION['guest']){
        	$ip = $_SERVER['REMOTE_ADDR'];
        	$timets = time() - 60*60*24;
        	$query = "SELECT size FROM image WHERE ip='$ip' AND upload_time > '$timets'";
        	$result = mysql_query($query);
        	while($img = mysql_fetch_array($result)){
        		$sizeAllDay = $sizeAllDay + $img['size'];
        	}
        	$imgAllDay = mysql_num_rows($result);
        	if($imgAllDay > MAX_IMAGES_GUEST_PER_DAY || $sizeAllDay > MAX_SIZE_GUEST_PER_DAY){
        		$error .= "Вече има прекалено много качесни снимки от вашият ИП адрес.Моля върнете се утре.<br />";
        	}
        } else {
        	$timets = time() - 60*24*24;
        	$user_id = $_SESSION['user_id'];
        	$query =  "SELECT size FROM image WHERE user_id='$user_id' AND upload_time > '$timets'";
        	$result = mysql_query($query);
        	while($img = mysql_fetch_array($result)){
        		$sizeAll = $sizeAll + $img['size'];
        	
        	}
        	$file_size = floor($_FILES['image_file']['size'] / 102400);
        	if($sizeAll+$file_size > WEBSPACE_USER && !$_SESSION['isAdmin']){
        		$error .= "Нямате повече свободно пространство за качване на изображения.Моля свържете се с админситратора.<br />";
        	}
        }
        
        $file_handle = md5(microtime());
				$file_handle = substr($file_handle, 0, 30);
				$fn_replace = array( 'д' => 'ae', 'ц' => 'oe', 'ь' => 'ue', 'Я' => 'ss', ' ' => '_', '1' =>'z', '2' => 'z', '3' => 'z', '4' =>'z', '5' =>'z', '6' =>'z', '7' => 'z', '8' => 'z', '9' => 'z', '0' =>'z', '"' => 'z', '§' => 'z', '$' => 'z', '%' => 'z', '(' => 'z', ')' =>'z', '=' =>'z', '?' =>'z' );
				$file_name = strtr( strtolower( $_FILES['image_file']['name'] ), $fn_replace );
				$file_name = substr(md5($file_handle),0, 10) . $file_name;
        include 'inc/bmp.php';
        $file_size = floor($_FILES['image_file']['size'] / 1024);
        if($file_size > MAX_SIZE_GUEST && $_SESSION['guest'] || $file_size > MAX_SIZE_USER) $error .= 'Максималната големина за качване на изображения от гости е ' . MAX_SIZE_GUEST . 'kb а за потребители ' . MAX_SIZE_USER . 'kb. Вие се опитвате да качите файл с по-голям размер от разрешения.<br />';

        if (move_uploaded_file( $_FILES['image_file']['tmp_name'], 'uploads/' . $file_name) && !isset($error))
        {
        			$bild='uploads/'. $file_name;
        			$size=getimagesize($bild); 
        			if($size[0] < THUMB_WIDTH){
        				copy('uploads/'. $file_name);
        			} else {
        				
        				
        		 		
  							$breite=$size[0]; 
  							$hoehe=$size[1]; 
  						
	  						define('THUMB_HEIGHT', intval($hoehe*THUMB_WIDTH/$breite)); 
  							if($size[2]==1) { 
  						
  								$altesBild=ImageCreateFromGIF($bild); 
  								$neuesBild=ImageCreate(THUMB_WIDTH,THUMB_HEIGHT); 
  								ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
  								ImageGIF(); 
  							} 

  							if($size[2]==2) { 
  							// JPG 
  								$altesBild=ImageCreateFromJPEG($bild); 
  								$neuesBild=imagecreatetruecolor(THUMB_WIDTH,THUMB_HEIGHT); 
  								ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
  								ImageJPEG(); 
  							} 

  							if($size[2]==3) { 
  						// PNG 
  								$altesBild=ImageCreateFromPNG($bild); 
  								$neuesBild=imagecreatetruecolor(THUMB_WIDTH,THUMB_HEIGHT); 
  								ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
  								ImagePNG(); 
  							}   
  						
  							if($size[2]==6){
  								$altesBild=ImageCreateFromBMP($bild); 
  								$neuesBild=imagecreatetruecolor(THUMB_WIDTH,THUMB_HEIGHT); 
  								ImageCopyResized($neuesBild,$altesBild,0,0,0,0,THUMB_WIDTH,THUMB_HEIGHT,$breite,$hoehe); 
  								ImageBMP();   			
  							}			
  						}
  					$time_stamp = time();
  					$user_id = mysql_real_escape_string($_SESSION['user_id']);
  					$description = mysql_real_escape_string($_POST['description']);
  					$view_handle = substr(md5($file_handle), 0, 30);
  					$query = "INSERT INTO image (ip, handle, user_id, description, file_name, size, upload_time, view_handle) VALUES ('$ip', '$file_handle', $user_id, '$description', '$file_name', $file_size, $time_stamp, '$view_handle')";
  					mysql_query($query);
            chmod( 'uploads/' . $file_name, 0755 );
            $id = mysql_insert_id();

 
            $counter = ALL_PICS_UPLOADED + 1;
            $query = "UPDATE var SET value='$counter' WHERE name='ALL_PICS_UPLOADED'";
            mysql_query($query);
            
            $new_size = ALL_PICS_UPL_SIZE + $file_size;
            $query = "UPDATE var SET value='$new_size' WHERE name='ALL_PICS_UPL_SIZE'";
            mysql_query($query);
            include 'tpl/upload/success.php';
        }
        else
        {
            include 'tpl/upload/form.php';
			
        }
    } else {
    	include 'tpl/upload/form.php';
    }
} else {
		include 'tpl/upload/form.php';
}
 

Back
Горе