mdmartiny Posted March 5, 2012 Share Posted March 5, 2012 Hello Everyone, I have created a form for a personal project that I am working on. I have some error checking and stuff in the form but what I would like to happen is when an error has occurred for the page to reopen the form with the error message. I know that this can be done with the header function. But how do I get the form to display the error. Here is the block of code that I am working with if ($file_error > 0) { header ('Location: add_category.php'); echo "There was an error uploading file."; } else { if ($file_type != $image_array) { header ('Location: add_category.php'); echo "Invalid Image Type"; } if ($file_name == FALSE) { header ('Location: add_category.php'); echo "Please choose a image for your category"; } if ($file_size > 5000000) { header ('Location: add_category.php'); echo "File size is to large. Images must be smaller than 5MB."; } if (str_word_count($description) > 300) { header ('Location: add_category.php'); echo "<p>category description must be less than 300 words<br />You have '.str_word_count($description).' words</p>"; } This is the form code that I am working with <div id="content"> <form id="add_cat_form" name="add_cat_form" action="do_category.php" method="post" enctype="multipart/form-data"> <fieldset> <legend><p>Add Category</p></legend> <p> <label for="cat_name">Category Name:</label> <input class="input_box" type="text" name="cat_name" id="cat_name" /> </p> <p> <label for="cat_image">Category Image:</label> <input class="file" type="file" name="cat_image" id="cat_image" /> </p> <p> <label for="cat_desc">Description:</label><br /><textarea class="cat_desc" name="cat_desc" id="cat_desc"></textarea><br /> <span id="word_count">300 words Max</span> </p> <input class="submit_button" type="submit" value="Add Category" /> </fieldset> </form> </div> Quote Link to comment https://forums.phpfreaks.com/topic/258323-going-back-to-form-when-there-is-an-error-in-submission/ Share on other sites More sharing options...
scootstah Posted March 5, 2012 Share Posted March 5, 2012 You shouldn't use a header redirect, because then all of the form data would be lost. If you process the form on the same page as you display it, this task is trivial. This codes a bit ugly but it should give you an idea of the process: <?php // check if the form was submitted if (!empty($_POST)) { // set an array of required fields to check $required = array('firstname', 'lastname'); $errors = array(); // loop through the required fields and make sure they are not empty foreach($required as $key) { if (empty($_POST[$key])) { // populate the errors array if a required field is empty $errors[$key] = 'This field is required'; } } // if no errors were found, continue processing the script if (empty($errors)) { header('location: http://example.com'); exit; } // if there are errors, the form will be redisplayed } echo '<form action="" method="post"> First Name: <input type="text" name="firstname" value="' . (isset($_POST['firstname']) ? $_POST['firstname'] : '') . '" /><br /> ' . (isset($errors['firstname']) ? $errors['firstname'] . '<br />' : '') . ' Last Name: <input type="text" name="lastname" value="' . (isset($_POST['lastname']) ? $_POST['lastname'] : '') . '" /><br /> ' . (isset($errors['lastname']) ? $errors['lastname'] . '<br />' : '') . ' <input type="submit" name="submit" value="Submit" /> </form>'; Quote Link to comment https://forums.phpfreaks.com/topic/258323-going-back-to-form-when-there-is-an-error-in-submission/#findComment-1324172 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.