Has the space already gone if you var_dump($message) prior to sending the email in your code above, or is it still present at that point? I’m wondering if it’s anything to do with how your mail client deals with the incoming html email, I can’t say I’ve ever sent an email that includes a form input tag.
$message = <<< END
....
....
<td>City</td><td><input type="text" name="city" value="{$city}"></td>
....
....
END;
var_dump($message); // is the space still here at this point?
mail("admin@houston-asp.com","Submit a Review",$message,$headers);
Sorry, I can’t add anything. Your screen-shot shows the city name correctly at the top, then it seems to go wrong once you add it into the $message string. I haven’t used that notation other than in the quick test above, so I don’t know whether that might cause problems in itself, and of course there’s lots of code missing out of your example above - are you sure nothing else happens to $city anywhere else?