Al margen de lo que te han sugerido, revise un poco tu codigo:
Código PHP:
Ver originalif($tipo == "gif" || $tipo == "jpg" || $tipo == "bmp"|| $tipo == "png"|| $tipo == "jpeg"){
$tipo ='jpg'; // No importa la extension de la imagen, siempre asignas jpg
/* ... ... */
// Despues, mas abajo simplemente mueves el archivo a la carpeta destino
// Simplemente cambias la extension... pero sin convertir!
move_uploaded_file ( $_FILES [ 'foto' ][ 'tmp_name' ], $destino . '/' .$foto_nombre.'.'.$tipo);
Entonces, si subes un png y lo renombras a jpg, creo que es normal que no se muestre la imagen.