Do you actually see the message "Your password has been changed..."? If yes, then try adding a "To" header as well:
...
if (mysqli_affected_rows($dbc) == 1) { // If it ran OK.
$headers="";
$headers.="From: northherner@hotmail.com".PHP_EOL;
$headers.="To: ".$_POST['email'].PHP_EOL;
// Send an email:
$body = "Your password to log into <whatever site> has been temporarily changed to '$p'. Please log in using that password and this email address. Then you may change your password to something more familiar.";
mail($_POST['email'], 'Your temporary password.', $body, $headers);
// Print a message and wrap up:
echo '<h3>Your password has been changed.</h3><p>You will receive the new, temporary password via email. Once you have logged in with this new password, you may change it by clicking on the "Change Password" link.</p>';
include ('./includes/footer.html');
exit(); // Stop the script.
}
...