Tu problema es que no dominas programación, siendo decirlo de ese modo, pero ese es el error.
Tu estás validando al principio, pero se te escapa que PHP es un lenguaje lineal, que ejecuta de arriba abajo, y si no lo haces cancelar la ejecución, luego de ese IF seguirá con la primera linea subsiguiente, que es precisamente la que plantea el problema.
Al menos deberías contener todo lo que sigue dentro de un ELSE, y no dejarlo librado a la ejecución.
¿No te parece?
Código PHP:
// Selección de la foto:
if (empty($_FILES['foto']['name'])) {
$error = true;
$mensaje[] = ('Por favor, seleccione una foto para enviar.');
}
else{
// Formato de la foto:
// Peso de la foto:
$peso_permitido = 1000000;
$formato = getimagesize($_FILES['foto']['tmp_name']);
if ($formato['mime'] != 'image/jpeg') {
$error = true;
$mensaje[] = ('Sólo se pueden enviar fotos en formato JPG.');
}
elseif ($_FILES['foto']['size'] > $peso_permitido) {
$error = true;
$mensaje[] = ('No puede enviar fotos mayores a ' . ceil($peso_permitido / 1024) . ' MB.');
}
else{
//El resto del proceso
}
}