Scusa, $flag lo setti in una funzione e lo testi in un'altra funzione? Se non lo metti global o lo passi come parametro la variabile "muore" alla fine della funzione.