iconicCreator Posted February 17, 2009 Share Posted February 17, 2009 Okay, still taking baby steps with PHP, this forum has been an enormous help and resource and I wanna thank everyone! Now, I have created a form, the problem is I cannot get the confirmation message to appear after the user has submitted the form. This is the problem: When I put the PHP code and the validation message in a separate PHP page it works perfectly, the problem with this method is I do-not know how to add the validation when the form script is in a separate page. But when I add the script and the XHTML code on the same page, I can add the validation but the confirmation message appears when the form loads in the browser with the form - before the user has even submitted it. How can I add confirmation message to this form after the user has submitted it? Complete code without confirmation page. Any help or ideas will be appreciated. <?php $post = array("firstName" => "","lastName" => "","Email" => "","phoneNumber" => "","comments" => ""); $errors = $post; if (isset($_POST["send"])) { foreach ($post as $k => $v) $post[$k] = stripslashes($_POST[$k]); if (empty($post["firstName"])) $errors["firstName"] = "**Required!"; if (empty($post["last"])) $errors["lastName"] = "**Required!"; if (empty($post["email"])) $errors["Email"] = "**Required!"; else { if (!preg_match('/[^@]+@[^.]+(\.[^.]+)+/', $post["Email"])) { $errors["Email"] = "Invalid Email!"; } } if (empty($post["phoneNumber"])) $errors["phoneNumber"] = "**Required!"; else { if (!preg_match('/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/', $post["phoneNumber"])) { $errors["phoneNumber"] = "**Invalid!"; } } if (empty($post["comments"])) $errors["comments"] = "**Required!"; $error = false; foreach($errors as $k => $v) { if ($errors[$k] != "") $error = true; } if (!$error) { $address = "test@test.com"; $subject = "New Form Details Entered!"; $message = "You have recieved new information via your website form. The details entered are as follows:<br><br>"; $message .= "<b>First Name:</b> ".$post['first']."<br>"; $message .= "<b>Last Name:</b> ".$post['last']."<br>"; $message .= "<b>Email:</b> ".$post['email']."<br>"; $message .= "<b>Phone Number:</b> ".$post['phone']."<br>"; $message .= "<b>DOB:</b> ".$post['month']." ".$post['day']." ".$post['year']."<br><br>"; $message .= "<b>Like Colors:</b> ".$post['love']."<br>"; $message .= "<b>Favorite Colors:</b> ".$post['favorite']."<br><br>"; $message .= "<b>Favorite Genre:</b> ".$post['genre']."<br><br>"; $message .= "<b>Comments/Message:</b> ".$post['comments']."<br>"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: '.$post['firstName']." ".$post['lastName'].'<test@test.com>' . "\r\n"; mail($address, $subject, $message, $headers); } } ?> This the confirmation I tried to add but it's not working and appears in the browser when the page loads. <!--CONFIRMATION MESSAGE--> <?php $confirmation = "Thanks <span class=\"sendersName\">$firstName</span> for your message, we will contact within 24 hours."; ?> <div class="confirmation_message"> <?php echo $confirmation; ?> </div> <!--END CONFIRMATION MESSAGE--> Quote Link to comment Share on other sites More sharing options...
MadTechie Posted February 17, 2009 Share Posted February 17, 2009 put the confirmation message in a if block ie <?php if (isset($_POST["send"])) { ?> <!--CONFIRMATION MESSAGE--> <?php $confirmation = "Thanks <span class=\"sendersName\">$firstName</span> for your message, we will contact within 24 hours."; ?> <div class="confirmation_message"> <?php echo $confirmation; ?> </div> <!--END CONFIRMATION MESSAGE--> <?php } ?> Quote Link to comment Share on other sites More sharing options...
iconicCreator Posted February 17, 2009 Author Share Posted February 17, 2009 put the confirmation message in a if block ie <?php if (isset($_POST["send"])) { ?> <!--CONFIRMATION MESSAGE--> <?php $confirmation = "Thanks <span class=\"sendersName\">$firstName</span> for your message, we will contact within 24 hours."; ?> <div class="confirmation_message"> <?php echo $confirmation; ?> </div> <!--END CONFIRMATION MESSAGE--> <?php } ?> Hey thanks for the help, however, the confirmation message is wrapped in a div tag and so where do I insert this? Because since the div tags are XHTML, they show up in the form anyway. Just confused. It works when I have the script and the form in separate pages but then I do not know how to apply the validation with the form and the script being in separate pages. IC Quote Link to comment Share on other sites More sharing options...
iconicCreator Posted February 17, 2009 Author Share Posted February 17, 2009 Got it, basically I placed the confirmation message in another page and added it to the action attribute. Thanks for you help! IC Quote Link to comment 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.