Simple form validation for custom post type in front end. Not working

Your validation is not working because the variables with the empty array return true with isset;

Go to http://writecodeonline.com/php/ and try this code, and you’ll understand:

$test = "";
if ( isset($test) ){
    echo "true";
}

The right function for it, instead of isset is empty. Try it out:

$test = "";
if ( empty($test) ){
    echo "empty";
}

Further, if you’re doing lots of modelling and validations in wordpress, I suggest using the wonderfull PHPActiveRecord.
I learned how to use it here, and I’m in love with it. 🙂