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...