Normalnie, jak każdy inny formularz, np ten który masz do rejestracji.
Ja dla wygody użytkownika podstawiam w większe pola, jak np sygnatura, dane w oryginalnej(zaczerpniętej z bazy) formie. Oprócz hasła oczywiście. Np
<input name="jakieśdane" type="text" value="
<?php echo $user[jakieśdane
]; ?>"/>
Przy czym dla bezpieczeństwa proponuję dać opcję wpisywania aktualnego hasła, przed zmianą na nowe.
Jeśli hasło aktualne pokrywa się z tym z bazy, wówczas wysyłasz nowe dane do bazy:
$upd = "UPDATE users SET user_email = '$email', user_password = '$newpass' WHERE `username`='$username' AND `password`='$password'";
Oczywiście dane dla '$username' i '$password' musisz sobie najpierw wydobyć z bazy danych, a potem sprawdzić.
Dobrym pomysłem jest też wstawienie dwóch pól dla nowego hasła użytkownika, i sprawdzenie, czy wpisane hasła się zgadzają. To zapobiegnie wpisaniu byle czego przez mniej rozgarniętych użytkowników, i zablokowania sobie przez nich dostępu do konta.