update post meta front end

Let’s start debugging the problem. First let’s make sure that we’re getting into our IF conditional when the form $_POSTs. If you replace your code with this, then submit your form, you should see the message We’ve gotten into the $_POST conditional!”

<?php
if ( isset( $_POST['submit'] ) )
{
    echo "We've gotten into the $_POST conditional!"
    exit;
}
?>

<form method="post" action="">
   <input type="text" name="doors" value="<?php echo $doors ?>" />
   <input type="submit" value="save" />
</form>

According to your comment you did get into the $_POST conditional. So we can update the post meta.

<?php
    global $post;

    if ( isset( $_POST['submit'] ) )
    {   
        if( ! isset( $post ) ) {
            echo 'Error: Post Object Not Set';
            die();
        }
        else if( ! isset( $_POST['doors'] ) && ! empty( $_POST['doors'] ) ){
            echo 'Error: Doors Not Set';
            die();
        }

        update_post_meta( $post->ID, 'doors', sanitize_text_field( $_POST['doors'] ) );
    }

    $doors = get_post_meta($post->ID, 'doors', true);

    echo print_r($doors);
?>

    <form method="post" action="">
       <input type="text" name="doors" value="<?php echo isset($doors) ? $doors : "'; ?>' />
       <input type="submit" value="save" />
    </form>

If you don’t receive any errors that means both $post is in scope and set and that doors is also set and not empty. Which means that it should definitely update the post meta. If this doesn’t work there could be problems outside of the code given.