Lo que estan haciendo es pasar lo que hay en $_FILES['img']['tmp_name'] a $img
Código PHP:
$img=$_FILES['img']['tmp_name'];
Pero si te fijas bien $_FILES es un arreglo y cuando no subes nada el arreglo no existe
tu codigo tendria que ser algo asi
Código PHP:
if (isset($_FILES['img']['size'])){
if ($_FILES['img']['size'] > 0){
.
.
.
}
}
Claro con los ajustes que debe tener, pero a ti te interesa las primeras lineas
el isset