Secondo me ci sono un paio di errori tipo:

Codice PHP:
$dsn 'mysql:dbname=db_tirocinio;host=127.0.0.1'//sbagliata
$dsn 'mysql:host=127.0.0.1;dbname=db_tirocinio'//corretta

$sql_up_pass"UPDATE utenti SET password='$up_new_pass' WHERE username='$user' AND password='$pass'"// sbagliata
$sql_up_pass"UPDATE utenti SET password = :password WHERE username = :username AND password = :password"//corretta

$q_up_pass $conn->prepare($sql_up_pass);
$q_up_pass->bindParam(':up_new_pass'$up_new_pass); // sbagliato (tutti i bindParam)
$q_up_pass->bindParam(':password'$up_new_pass); //modo corretto 
non so se il problema è questo comunque...