Para hacer la redimension de las imagenes es muy sencillo, solo necesitas aplicarle una funcion pasandole los parametros necesarios y ya. Te explicare algo sencillo, la funcion solo buscara en tu directorio la imagen segun la ruta que le pases, la copiara y creara una nueva con los tamaños que le asignes. La funcion seria una como esta:
   Código PHP:
    <?php 
function cambiartam($nombre,$archivo,$ancho,$alto) 
    { 
    $verificar = explode('.',$nombre);
    $tmp = $verificar[1]; 
    if (preg_match('/jpg|jpeg|JPG/',$tmp)) 
        { 
        $imagen=imagecreatefromjpeg($nombre); 
        } 
    if (preg_match('/png|PNG/',$tmp)) 
        { 
        $imagen=imagecreatefrompng($nombre); 
        } 
    if (preg_match('/gif|GIF/',$tmp)) 
        { 
        $imagen=imagecreatefromgif($nombre); 
        } 
    $x=imageSX($imagen); 
    $y=imageSY($imagen); 
    if ($x > $y)  
        { 
        $w=$ancho; 
        $h=$y*($alto/$x); 
        } 
    if ($x < $y)  
        { 
        $w=$x*($ancho/$y); 
        $h=$alto; 
        } 
    if ($x == $y)  
        { 
        $w=$ancho; 
        $h=$alto; 
        } 
    $destino=ImageCreateTrueColor($w,$h); 
   echo imagecopyresampled($destino,$imagen,0,0,0,0,$w,$h,$x,$y);  
    if (preg_match("/png/",$tmp)) 
        { 
        imagepng($destino,$archivo);  
        }  
    if (preg_match("/gif/",$tmp)) 
        { 
        imagegif($destino,$archivo); 
        } 
    else  
        { 
        imagejpeg($destino,$archivo);  
        } 
    imagedestroy($destino);  
  echo  imagedestroy($imagen);  
}// fin de la función
/*Ahora solo te faltaría aplicarla, lo cual es muy sencillo. Hare un ejemplo con el código que tenias arriba.*/
$nombre_archivo=$_FILES['imagen']['name'];
  
$tam=getimagesize($nombre_archivo);  
                
     if($tam[0] > 500 OR $tam[1] > 500)  { 
                    
     cambiartam($directorio, $directorio, 500, 500); 
    
    } 
                    
?>    
  Cualquier duda vuelves a preguntas. Saludos