how to add a custom form in a page

A basic example of inserting data into post meta fields.

In your chosen template file you can do something similar to,

<?php   
//this does not include data validation and sensitization but will check for the
//existence of $_POST values being set. 

if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "add_meta") {

if (isset ($_POST['post_id']) ) {
    $post_id    = $_POST['post_id'];
} else {
    echo 'Enter a post ID';
}

if (isset ($_POST['meta_key']) ) {
    $meta_key   = $_POST['meta_key'];
} else {
    echo 'Enter a meta key';
}

if (isset ($_POST['meta_value']) ) {
    $meta_value = $_POST['meta_key'];
} else {
    echo 'Enter a meta value';
}
    update_post_meta($post_id, $meta_key, $meta_value);

}

?>

Form HTML

<form name="add_meta" action="" "method="POST">
<input type="text" name="post_id" value="" />
<input type="text" name="meta_key" value="" />
<input type="text" name="meta_value" value="" />
<input type="submit" name="submit" value="Submit" />
</form>

I highly recommend you read about Data Validation and Sensitization on the WordPress Codex followed by this good tutorial at WPTuts by Stephen Harris

This is only a starting point, you need to make the effort and show us what further research you have done, what code you are trying/writing and provide a detailed explanation of what problems you are facing to receive further help.