cosmic2006 Posted May 12, 2006 Share Posted May 12, 2006 Hi I need a form to redirect to a url when you click on 'submit' - the redirect url all depends on which radio button you select. The submitting of the form works perfectly, but the redirect part of it doesn't work, I keep getting 404 pages after the form has submitted. Is there something wrong with the code below? It's taking me hours to try figure this out as although I have some knowledge of PHP I've never needed or used a php script like this before. Thanks in advance for your help [img src=\"style_emoticons/[#EMO_DIR#]/wink.gif\" style=\"vertical-align:middle\" emoid=\":wink:\" border=\"0\" alt=\"wink.gif\" /] Here's the code....<?phpif (isset($_POST['yesno'])){$yesno=$_POST['yesno'];if($yesno == "yes"){header("Location:http://www.google.com/");exit;}if($yesno == "no"){header("Location: [a href=\"http://www.yahoo.com/");\" target=\"_blank\"]http://www.yahoo.com/");[/a] exit;}if($yesno == "other"){header("Location: [a href=\"http://www.lycos.com/");\" target=\"_blank\"]http://www.lycos.com/");[/a] exit;}}?><form action="/cgi-bin/bizmail.cgi" method="POST"> <input name="yesno" type="radio" value="yes"> Google<br><input name="yesno" type="radio" value="no"> Yahoo<br><input name="yesno" type="radio" value="other"> Lycos<br><br><center><br><br><p><input type="submit" value="Submit Info"> </p></form> Quote Link to comment Share on other sites More sharing options...
Carth Posted May 12, 2006 Share Posted May 12, 2006 [code]<form action="/cgi-bin/bizmail.cgi" method="POST">[/code]Unless your PHP script is called bizmail.cgi, the action should be set to the name of your PHP script... I'm guessing that's why you get 404 error Quote Link to comment Share on other sites More sharing options...
redarrow Posted May 12, 2006 Share Posted May 12, 2006 Nearly there the actiion"" needed to post to it self good luck.[code]<?phpif (isset($_POST['yesno'])){$yesno=$_POST['yesno'];if($yesno == "yes"){header("Location:http://www.google.com/");exit;}if($yesno == "no"){header("Location: http://www.yahoo.com/"); exit;}if($yesno == "other"){header("Location: http://www.lycos.com/"); exit;}}?><form action="" method="POST"> <input name="yesno" type="radio" value="yes"> Google<br><input name="yesno" type="radio" value="no"> Yahoo<br><input name="yesno" type="radio" value="other"> Lycos<br><br><center><br><br><p><input type="submit" value="Submit Info"> </p></form> [/code] Quote Link to comment Share on other sites More sharing options...
cosmic2006 Posted May 14, 2006 Author Share Posted May 14, 2006 Thank you for your help. I still don't completely understand what I should do. The form script in the Action part was a CGI script, I am now using dodosmail.php. Can anyone tell me exactly what I should do next? in php beginners speak! Quote Link to comment Share on other sites More sharing options...
redarrow Posted May 14, 2006 Share Posted May 14, 2006 [!--quoteo(post=373636:date=May 14 2006, 02:11 AM:name=cosmic girl)--][div class=\'quotetop\']QUOTE(cosmic girl @ May 14 2006, 02:11 AM) [snapback]373636[/snapback][/div][div class=\'quotemain\'][!--quotec--]Thank you for your help. I still don't completely understand what I should do. The form script in the Action part was a CGI script, I am now using dodosmail.php. Can anyone tell me exactly what I should do next? in php beginners speak![/quote]If you also want to use a mailing script your have to add it to the existing code ok.It will be inpossable for you to redirect to a out side url and then also goto your mail script.What are you trying to do completly? Quote Link to comment Share on other sites More sharing options...
cosmic2006 Posted May 15, 2006 Author Share Posted May 15, 2006 [!--quoteo(post=373641:date=May 13 2006, 10:31 PM:name=redarrow)--][div class=\'quotetop\']QUOTE(redarrow @ May 13 2006, 10:31 PM) [snapback]373641[/snapback][/div][div class=\'quotemain\'][!--quotec--]If you also want to use a mailing script your have to add it to the existing code ok.It will be inpossable for you to redirect to a out side url and then also goto your mail script.What are you trying to do completly?[/quote]I would like to add that code I mentioned above so that it works with dodosmail.php (a mailform script), here is my dodosmail.php script...(excuse the long script)...[!--quoteo--][div class=\'quotetop\']QUOTE[/div][div class=\'quotemain\'][!--quotec--]<?##$your_email_address="pixelstardesign@aol.com";############################################################################### DodosMail Version 2.1 ## Copyright 2001 Ying Zhang [a href=\"http://pure-essence.net/domain/contact.php\" target=\"_blank\"]http://pure-essence.net/domain/contact.php[/a] ## Created 09/04/01 Last Modified 12/02/05 ## Regretless.com [a href=\"http://www.regretless.com/\" target=\"_blank\"]http://www.regretless.com/[/a] ################################################################################ COPYRIGHT NOTICE ## Copyright 2001-2005 Ying Zhang. All Rights Reserved. ## ## DodosMail may be used and modified free of charge by anyone so long as ## this copyright notice and the comments above remain intact. By using this ## code you agree to indemnify Ying Zhang from any liability that ## might arise from its use. ## ## Selling the code for this program without prior written consent is ## expressly forbidden. In other words, please ask first before you try and ## make money off of my program. ## ## Obtain permission before redistributing this software over the Internet or ## in any other medium. In all cases copyright and header must remain intact.###############################################################################if(empty($_GET) && empty($_POST)) { die('Please do not access this file directly. Visit <a href="http://regretless.com/scripts/" target="_blank">dodo\'s scripts collection</a> for more information!');}// Emular register_globals onif (!ini_get('register_globals')) { $superglobales = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET); if (isset($_SESSION)) { array_unshift($superglobales, $_SESSION); } foreach ($superglobales as $superglobal) { extract($superglobal, EXTR_SKIP); }}// to prevent header injectionif (eregi("\r",$_POST['your_email_address']) || eregi("\n",$_POST['your_email_address'])){ exit;}// kick anyone whoever tried to inject a header in the formforeach( $_POST as $value ){ if( strpos($value,'Content-Type:') !== FALSE ){ exit; }}$fields = array_keys($_POST);function headfunction($url) { header ("Location: $url");}// protect the variable $reserved_varsif(isset($reserved_vars)) { unset($reserved_vars);}$reserved_vars = array("css_file", "background_color", "background_image", "text_color", "link_color", "visited_link_color", "active_link_color", "font_name", "font_size", "highlight_color", "required_fields", "after_url", "check_email_address", "subject", "your_email_address", "env_report", "owner_name", "autoresponse", "response_subject", "response_mail", "dodosmail_header_file", "dodosmail_footer_file");function include_dodosmail_header($dodosmail_header_file) { global $reserved_vars; foreach($reserved_vars as $reserved_var) { global $$reserved_var; } if(is_file($dodosmail_header_file)) { include_once($dodosmail_header_file); return; } else { echo "<html>\n"; echo "<head>\n"; echo "<title>\n"; echo "DodosMail\n"; echo "</title>\n"; if($css_file != "") echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$css_file\">\n"; echo "</head>\n"; echo "<body bgcolor=\"$background_color\" background=\"$background_image\" text=\"$text_color\" link=\"$link_color\" vlink=\"$visited_link_color\" alink=\"$active_link_color\">\n"; echo "<font face=\"$font_name\" size=\"$font_size\">\n"; }}function include_dodosmail_footer($dodosmail_footer_file) { global $reserved_vars; foreach($reserved_vars as $reserved_var) { global $$reserved_var; } if(is_file($dodosmail_footer_file)) { include_once($dodosmail_footer_file); return; } else { echo "</font>\n</body>\n</html>"; }}function dodosmail_error_handle($msg) { global $highlight_color; if(isset($highlight_color)) { $extra_begin = "<font color=\"".$highlight_color."\">"; $extra_end = "</font>"; } else { $extra_begin = "<span class=\"DodosMailErrorHighLight\">"; $extra_end = "</span>"; } return $extra_begin.$msg.$extra_end;}// checking required fields// in case they used comma and space, replaceif(strstr($required_fields, ", ")) { $required_fields = str_replace(", ", ",", $required_fields);} else { $required_fields = $required_fields;}$required_fields = explode(",", $required_fields);for($i = 0; $i < count($required_fields); $i++) { $required_var_name = $required_fields[$i]; if(empty($$required_var_name)) { include_dodosmail_header($dodosmail_header_file); echo "<p class=\"DodosMailError\">DodosMail Error - the required field ".dodosmail_error_handle($required_var_name)." is not filled.\n"; echo "<br /><br /><a href=\"javascript:history.back(1)\">Back</a>\n"; echo "</p>\n"; include_dodosmail_footer($dodosmail_footer_file); exit; }}if($check_email_address == "yes" && !empty($email)) { if(!check_email($email)) { include_dodosmail_header($dodosmail_header_file); echo "<p class=\"DodosMailError\">DodosMail Error - the email ".dodosmail_error_handle($email)." is not valid.\n"; echo "<br /><br /><a href=\"javascript:history.back(1)\">Back</a>\n"; echo "</p>\n"; include_dodosmail_footer($dodosmail_footer_file); exit; }}for($i = 0; $i < count($fields); $i++) { $actual_var = $fields[$i]; if(in_array($actual_var, $reserved_vars)) { $inside_mail = $inside_mail; } else { if(is_array($$actual_var)) { $inside_mail.= "$actual_var: "; foreach($$actual_var as $actual_val) { $inside_mail.= "$actual_val "; } $inside_mail.= "\n"; } else { $actual_val = stripslashes($$actual_var); $inside_mail.= "$actual_var: $actual_val\n"; } }}// getting other information from the form$cname = gethostbyaddr($_SERVER[REMOTE_ADDR]);$inside_mail.="----------------------------------------------------------------------- SENDER INFO: IP: $_SERVER[REMOTE_ADDR] Computer Name: $cname Browser Type: $_SERVER[HTTP_USER_AGENT] Page Referer: $_SERVER[HTTP_REFERER]----------------------------------------------------------------------- Powered by DodosMail 2.0 [a href=\"http://regretless.com/scripts\" target=\"_blank\"]http://regretless.com/scripts[/a]";$headers .= "MIME-Version: 1.0\r\n";$headers .= "X-Priority: 3\r\n";$headers .= "X-MSMail-Priority: Normal\r\n";$headers .= "X-Mailer: DodosMail 2.0 [a href=\"http://regretless.com/scripts/\r\n";\" target=\"_blank\"]http://regretless.com/scripts/\r\n";[/a]$headers .= "Content-type: text/plain; charset=\"iso-8859-1\"\r\n";//$headers .= "Date: ".date("R")."\r\n";$headers .= "From: $name <$email>\r\n";$success = mail($your_email_address, $subject, $inside_mail, $headers);if($success) { if($autoresponse == "yes") { $response_subject = stripslashes($response_subject); $response_mail = stripslashes($response_mail); mail($email, $response_subject, $response_mail, "From: $owner_name <$your_email_address>"); } if($after_url == "") { // out put send info include_dodosmail_header($dodosmail_header_file); echo "<p>\n"; echo "The following email has been sent successfully!</p><ul>"; for($i = 0; $i < count($fields); $i++) { $actual_var = $fields[$i]; if(in_array($actual_var, $reserved_vars)) echo ""; else { if(is_array($$actual_var)) { echo "<li>$actual_var: "; foreach($$actual_var as $actual_val) { echo "$actual_val "; } echo "</li>\n"; } else { $actual_val = stripslashes($$actual_var); echo "<li>$actual_var: $actual_val</li>\n"; } } } echo "</ul>\n<p><a href=\"http://regretless.com/scripts/\">DodosMail</a> v2.0</p>"; include_dodosmail_footer($dodosmail_footer_file); exit; } else { headfunction($after_url); }} else { include_dodosmail_header($dodosmail_header_file); echo "<p class=\"DodosMailError\">DodosMail Error - the owner the php server is experiencing techinical difficulties. Please email use ".dodosmail_error_handle($your_email_address)." to send your email.\n"; echo "<br /><br /><a href=\"javascript:history.back(1)\">Back</a>\n"; echo "</p>\n"; include_dodosmail_footer($dodosmail_footer_file); exit;}function check_email($email) { if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',$email)) ) { return true; } return false;}?>[/quote] 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.