Click to See Complete Forum and Search --> : Check box problem


speed1972
06-28-2009, 08:32 AM
Ok so i've nearly finished my site and i'm left with 2 small annoying problems. The first one is that it doesn't matter whether or not someone checks the terms and conditions checkbox, the form still submits.

The second is that when someone enters a £ sign in a field, when i recieve the email after its submitted the £ sign has a capital A with an arrow above it in front of the £ sign.



Hopefully 2 easy to fix problems, here is the code for my page. I know its bad in many ways but it works and looks fine when uploaded.



<?php
ini_set('display_errors', 1);

extract($_POST);

if (!file_exists("../config.php"))
{
$host = $_SERVER[HTTP_HOST ];
$path = pathinfo($_SERVER['PHP_SELF']);
$file_path = $path['dirname'];

exit;
}
include "../config.php";


if ($sendto_email == "changeme@example.com")
{

exit;
}

if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$", $senders_email))
{
$error = "1";
$info_error .= $lang_invalidemail . "<br>";
}
if (empty ($security_code))
{
$error = "1";
$info_error .= $lang_nocode . "<br>";
}

if ($terms != 1) {
if ($senders_name != '') {
$error = "1";
$info_error .= "Please accept the terms and conditions and try again";
}
}

elseif ($security_code != $randomness)
{
$error = "1";
$info_error .= $lang_wrongcode . "<br>";
}
if ($showlink != "no")
{
$link = "<br><span style=\"font-size: 10px;\">Powered by <a href=\"http://www.bellonline.co.uk/web-services/free/scripts/php-mailer-script/\" title=\"free PHP mailer script\">BELLonline PHP mailer script</a></span>";
}
if ($error == "1")
{
$info_notice = "<span style=\"color: " . $error_colour . "; font-weight: bold;\">" . $lang_error . "</span><br>";

if (empty ($submit))
{
$info_error = "";
$info_notice = $lang_notice;
}

function Random()
{
$chars = "ABCDEFGHJKLMNPQRSTUVWZYZ23456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 4)
{
$num = rand() % 32;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
$random_code = Random();
$mail_message = stripslashes($mail_message);

print "<form name=\"BELLonline_email\" method=\"post\" style=\"margin: 0;\" action=\"\">


";

echo "<strong><font color=\"FF0000\">".$info_error."</font></strong>";
?>
<!--Elitetradesmen form -->

<p>To quote for this job please fill in the details below: </p>
<p><BR>
<LABEL for="job_number">Job Number: </LABEL>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label for="your_business_name">Your Business Name: <br />
<input name="job_number" type="text" id="job_number" value="<?=$job_number;?>" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" id="your_business_name" name="your_business_name" value="<?=$your_business_name;?>" />
<br />
</label>
<BR>
<label for="your_start_date">Your Start Date: </label>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Your Completion Date:<BR>
<INPUT type="text" id="your_start_date" name="your_start_date" value="<?=$your_start_date;?>">
<label for="your_completion_date">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" id="your_completion_date" name="your_completion_date" value="<?=$your_completion_date;?>"/>
<br /><br />

<label for="email">Email:</label>
<br />
<input type="text" id="senders_email" name="senders_email" value="<?=$senders_email;?>"/>
<br />
<label for="additional_information">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</label>
Your quote with any additional information:
<br />
<textarea name="additional_information" cols="35" rows="5" id="details" name="additional_information"><?=$additional_information;?></textarea>
<br />
<BR>
<label>
<input name="terms" type="checkbox" id="terms" value="1" /> Please check the box to confirm you have read and agree to our <a href="../policies.html">Terms and conditions
</a></label>
<a href="../policies.html"><br/>
</a><br/>


<!-- end elite tradesmen form -->


<?
// DO NOT EDIT THE BELOW
print "
Please enter the text in the box. (case sensitive): <input name=\"security_code\" type=\"text\" id=\"security_code\" size=\"5\">
&nbsp;&nbsp;&nbsp;&nbsp;<b>$random_code</b><input name=\"randomness\" type=\"hidden\" id=\"randomness\" value=\"$random_code\">
<p><br />
<input name=\"submit\" type=\"submit\" id=\"submit\" value=\"$lang_submit\" class=\"mailform_button\">
</form>";
}
else
{



if ($checkdomain == "yes")
{
$sender_domain = substr($senders_email, (strpos($senders_email, '@')) +1);
$recipient_domain = substr($sendto_email, (strpos($sendto_email, '@')) +1);
if ($sender_domain == $recipient_domain)
{
print "Sorry, you cannot send messages from this domain ($sender_domain)";
exit;
}
}


$info_notice = $lang_sent;
/* THE FOLLOWING CODE FORMATS THE EMAIL CONTENT */
//We create a mail_message field with any POSTED FORM ELEMENT.
//To access such an element, we use the name of any form input with a
//$ symbol before it, so for example to get their name, I use senders_name
$mail_subject = "Email enquiry from Elite Tradesmen website";

$mail_message = "***<b>ELITE TRADESMEN WEBSITE - QUOTE FOR WORK</b>***<br/><br/>". $mail_message ."Job Number: ". $job_number . "<br/><br/>Business Name: ". $your_business_name . "<br/><br/>Email: ". $senders_email . "<br/><br/>Start Date: ". $your_start_date ."<br/><br/>Completion Date: ". $your_completion_date ."<br/><br/>Quote with additional information: ". $additional_information;

/* END CODE TO FORMAT MAIL CONTENT */


//$mail_message = stripslashes($mail_message);
$senders_email = preg_replace("/[^a-zA-Z0-9s.@-_]/", "-", $senders_email);
$senders_name = preg_replace("/[^a-zA-Z0-9s]/", " ", $senders_name);
$headers = "From: $senders_name <$senders_email> \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n";
$headers .= "X-Mailer: Mailscript by Dave Hayward http://www.megaginge.info megaginge@gmail.com \r\n";
mail($sendto_email, $mail_subject, $mail_message, $headers);
// THE FOLLOWING CODE SORTS THE REDIRECT TO THANKS PAGE //
?>

<script type="text/javascript">
<!--
window.location = "thankyou5.html";
//-->
</script>
<?
//END OF REDIRECT CODE

}

?>

HHCOwner
07-02-2009, 12:20 PM
Hi speed1972,

I'm just wondering if all of the codes you put are on the same page, because if they are, then you need to re-arrange the order their placed to say the least. It'd be best to have them on seperate pages, otherwise the first PHP section won't be able to read the information from the form.

Could you please revise? :)