You have a form like
<form action="http://some/url/form_two.php" method="POST">
<input type="whatever" value="nothing" />
<input type="hidden" name="form_one_displayed" value="1" />
<input type="submit" value="Send" />
</form>
in e.g form_one.php
In form_two.php
you validate the data that was send (or not)
<?php
$result = do_some_validation_with( $_POST );
if ( false == $result )
wp_redirect( 'form_one.php' );
else
display_form_two();
function do_some_validation_with( $postdata = array() ) {
// nothing was send
if ( empty( $postdata ) )
return false;
// if the first form wasn't send, stop validation
if ( ! isset( $postdata['form_one_displayed'] ) )
return false;
// do more validation
// if validation pass
return true;
}
function display_form_two() {}
I think it is easier to use an ajax request to validate the form data and display the second form only if the first one was validated.