mrjap1 Posted May 22, 2011 Share Posted May 22, 2011 Hello, Please... could someone look at my existing code below at tell me how I can establish a REDIRECT PAGE {header("Location: thankyou.php");} to fit in my code and WITHOUT generating a MySQL error once the php page is processed on the server? I wish to place the HTML CODE at bottom of my page labeled " // THE RESULTS OF THE FORM RENDERED AS PURE HTML " to be on a separate " thanks.php " page. thx mrjap1 <?php $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $email = $_POST['email']; $registration_date = $_POST['registration_date']; // 1. Create a database connection $con = mysql_connect("localhost","mrino_mydata","runns100"); if (!$con) { die('Database connection failed could not connect: ' . mysql_error()); } // 2. Select a database to use $db_select = mysql_select_db("mrino_FULLENTRYDATA",$con); if (!$db_select) { die('Database selection failed could not connect: ' . mysql_error()); } mysql_select_db("mrino_FULLENTRYDATA", $con); // Data Submitted With My Form $sql="INSERT IGNORE INTO `mrino_FULLENTRYDATA`.`backpage1` (`id` , `first_name` , `last_name` , `email` , `registration_date`) VALUES (NULL , '$_POST[first_name]' , '$_POST[last_name]' , '$_POST[email]', NOW( ))"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } // 3. Close Connection mysql_close($con); ?> <?php // ALL THE SUBJECT and EMAIL VARIABLES $emailSubject = 'MY TEST EMAIL SCRIPTING!!! '; $webMaster = 'myemailaddress@gmail.com'; // GATHERING the FORM DATA VARIABLES $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $email = $_POST['email']; $registration_date = $_POST['registration_date']; $date = date ("l, F jS, Y"); $time = date ("h:i A"); $body = <<<EOD <br /><hr><br /> <strong>First Name:</strong> $first_name <br /> <strong>Last Name: </strong>$last_name <br /> <strong>Email:</strong> $email <br /> <strong>Registration Date:</strong> $date at $time <br /> EOD; // THIS SHOW ALL E-MAILED DATA, ONCE IN THE E-MAILBOX AS READABLE HTML // Remove Header Injections $match = "/(bcc:|cc:|content\-type:)/i"; if (preg_match($match, $from) || preg_match($match, $subject) || preg_match($match, $body)) { die("Header injection detected."); } // Simple filtering on all of our input variables $headers = "From: $email\r\n"; $headers .= "Content-type: text/html\r\n"; $success = mail($webMaster, $emailSubject, $body, $headers); $from = preg_replace("([\r\n])", "", $_POST['email']); $emailSubject = preg_replace("([\r\n])", "", $_POST['$emailSubject']); // THE RESULTS OF THE FORM RENDERED AS PURE HTML $theResults = <<<EOD <!DOCTYPE HTML> <html lang="en"> <head> <style type="text/css"> body { font-family:Arial, Helvetica, sans-serif; font-size:11px; font-weight:bold; } #thankyou_block { width: 400px; height: 250px; text-align:center; border: 1px solid #666; padding: 5px; background-color: #0CF; border-radius:8px; -webkit-border-radius:8px; -moz-border-radius:8px; -opera-border-radius:8px; -khtml-border-radius:8px; box-shadow:0px 0px 10px #000; -webkit-box-shadow: 0px 0px 10px #000; -moz-box-shadow: 0px 0px 10px #000; -o-box-shadow: 0px 0px 10px #000; margin: 25px auto; } p { font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 18px; letter-spacing:1px; color: #333; } </style> <meta charset="UTF-8"> <title>THANK YOU!!!</title> </head> <body> <div id="thankyou_block"> <br><br><br> <h1>CONGRATULATIONS!!</h1> <h2>YOUR FORM HAS BEEN PROCESSED!!!</h2> <p>You are now registered in our Database...<br> we will get back to you very shortly.<br> Please have a very wondeful day.</p> </div> </body> </html> EOD; echo "$theResults"; ?> Quote Link to comment https://forums.phpfreaks.com/topic/237128-re-redirect-page-052211/ Share on other sites More sharing options...
wildteen88 Posted May 22, 2011 Share Posted May 22, 2011 Just replace the HTML with header('Location: thankyou.php'); However you will want to remove this gap ?> <?php Before using that function. header() will not work if there is any kind of output beforehand. Quote Link to comment https://forums.phpfreaks.com/topic/237128-re-redirect-page-052211/#findComment-1218729 Share on other sites More sharing options...
mrjap1 Posted May 22, 2011 Author Share Posted May 22, 2011 Hello, Thank you, Thank you, very, very kindly for your suggestion... however, I know that the header will not work if something is currently processed before hand... I tried your exact recommendation earlier before I wrote this post. What I have is a Form being processed before hand from another php page. Then the form processing take place on this page ( with the code presented in this post ).... next I would like the visitor to go to a separate " thank you.php " page when everything is complete. The question is, is it indeed possible or a way that I can get a redirect without generating the error stated below. Maybe I am going about this the wrong way... I am open for any solutions. I know this can be done I just do not know how. The "/~/ " are my url paths. Warning: Cannot modify header information - headers already sent by (output started at /~/~/~/shortform/form_proceessed2011-NEW.php:67) in /~/~/~/shortform/form_proceessed2011-NEW.php on line 180 thx mrjap1 Quote Link to comment https://forums.phpfreaks.com/topic/237128-re-redirect-page-052211/#findComment-1218756 Share on other sites More sharing options...
wildteen88 Posted May 22, 2011 Share Posted May 22, 2011 On line 67 in form_proceessed2011-NEW.php there is some form of output therefore header() will not work. The solution would be to modify your script so there is no output before the use of the header() function. Or for a simple fix revert to using output buffering. Quote Link to comment https://forums.phpfreaks.com/topic/237128-re-redirect-page-052211/#findComment-1218774 Share on other sites More sharing options...
mrjap1 Posted May 22, 2011 Author Share Posted May 22, 2011 Hello, Thanks for the suggestion.... so how do you do "revert to using output buffering? " I appreciate your help. thx mrjap1 Quote Link to comment https://forums.phpfreaks.com/topic/237128-re-redirect-page-052211/#findComment-1218776 Share on other sites More sharing options...
wildteen88 Posted May 22, 2011 Share Posted May 22, 2011 Have look at the manual on output buffering. Quote Link to comment https://forums.phpfreaks.com/topic/237128-re-redirect-page-052211/#findComment-1218781 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.