I'm having a problem with a php form. The problem is when I submit the form, I would like for it to clear the data entered after it sends the email, and go to another page that says, "Information Received" and then automatically go back to the form page. When it goes back to the form page, if somebody refreshes the page, it wont submit the data again. Can this be done? If so, how because I've tried everything? Thanks
Here's my code -
<html>
<head>
<script language="JavaScript">
function checkForm()
{
var cname, cemail, cphone, ccomments;
with(window.document.msgform)
{
cname = sname;
cemail = email;
cphone = phone;
ccomments = comments;
}
if(trim(cname.value) == '')
{
alert('Please enter your name');
cname.focus();
return false;
}
else if(trim(cemail.value) == '')
{
alert('Please enter your email');
cemail.focus();
return false;
}
else if(!isEmail(trim(cemail.value)))
{
alert('Email address is not valid');
cemail.focus();
return false;
}
else if(trim(cphone.value) == '')
{
alert('Please enter message subject');
cphone.focus();
return false;
}
else if(trim(ccomments.value) == '')
{
alert('Please enter your message');
ccomments.focus();
return false;
}
else
{
cname.value = trim(cname.value);
cemail.value = trim(cemail.value);
cphone.value = trim(cphone.value);
ccomments.value = trim(ccomments.value);
return true;
}
}
/*
Strip whitespace from the beginning and end of a string
Input : a string
*/
function trim(str)
{
return str.replace(/^\s+|\s+$/g,'');
}
/*
Check if a string is in valid email format.
Returns true if valid, false otherwise.
*/
function isEmail(str)
{
var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn |bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk| dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs |gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr| kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum |mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr |pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf |tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za| zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
return regex.test(str);
}
</script>
</head>
<body>
<?php
$errmsg = ''; // error message
$sname = ''; // sender's name
$email = ''; // sender's email addres
$phone = ''; // sender's phone number
$comments = ''; // sender's comments
$subject = ''; // message subject
if(isset($_POST['send']))
{
$sname = $_POST['sname'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$comments = $_POST['comments'];
$subject = $_POST['subject'];
if(trim($sname) == '')
{
$errmsg = 'Please enter your name';
}
else if(trim($phone) == '')
{
$errmsg = 'Please enter your Phone Number';
}
else if(trim($email) == '')
{
$errmsg = 'Please enter your email address';
}
else if(!isEmail($email))
{
$errmsg = 'Your Email Address is not valid';
}
else if(trim($comments) == '')
{
$errmsg = 'Please enter your Comments';
}
if($errmsg == '')
{
if(get_magic_quotes_gpc())
{
$comments = stripslashes($comments);
$subject = stripslashes($subject);
}
// the email will be sent here
$to = "somebody@somebody.com";
$from = "\"$sname\" <$email>";
// the email subject ( modify it as you wish )
$subject = 'Contact Form';
// the mail message ( add any additional information if you want )
$msg = "From : $sname \n\n Phone: $phone \n\n Email: $email \n\n Comments: $comments \n\n ";
mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n");
?>
<?php
}
}
{
?>
<form method="post" name="msgform" id="msgform">
<table width="500" border="0" align="center" cellpadding="2" cellspacing="1" class="maincell">
<tr>
<td width="106"></td>
<td width="381"> </td>
</tr>
<tr>
<td width="106" align="center" class="bold">Name:</td>
<td width="381"><input name="sname" type="text" class="box" id="sname" size="30" value="<?=$sname;?>"></td>
</tr>
<tr>
<td align="center" class="bold">Phone:</td>
<td><input name="phone" type="text" class="box" id="phone" size="30" value="<?=$phone;?>"></td>
</tr>
<tr>
<td align="center" class="bold"> Email Address:</td>
<td><input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>"></td>
</tr>
<tr>
<td align="center" class="bold">Comments:</td>
<td><textarea name="comments" type="text" cols="55" rows="10" wrap="VIRTUAL" class="box" id="comments" value="<?=$comments;?>"></textarea>
</td>
</tr>
<tr align="center">
<td height="33" colspan="2">
<input name="send" type="submit" class="graybox" id="send" value="Send Comments" onclick="return checkForm();"></td>
</tr>
<tr align="center">
<td colspan="2"><div align="center" class="errmsg"><?=$errmsg;?></div></td>
</tr>
<tr align="left">
<td colspan="2"><br>
</td>
</tr>
</table>
</form>
<?php
}
function isEmail($email)
{
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn |bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk| dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs |gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr| kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum |mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr |pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf |tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za| zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
,$email));
}
?>
</body>
</html>