bindiya Posted March 11, 2011 Share Posted March 11, 2011 I have a contact form in html with captcha image.The Captcha image is randomnly created using a php file and stored in a session variable. But when i check whether the session (captcha variable) and the use entered captcha value i dont get answer. posting my code below contact.php(html's action page) if(isset($_POST['csubmit'])) { $name=$_POST['cname']; $lname=$_POST['last_name']; $email=$_POST['cemail']; $tele=$_POST['telephone']; $comments=$_POST['comments']; $date_posted=date('Y:m:d H:i:s');$status='Inactive'; $security_code=$_POST['security_code']; //echo $security_code; //echo"<br>". $_SESSION['security_code']; //$_SESSION['security_code'] = $code; //echo $_SESSION['security_code']; //if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) { //if(!(empty($_SESSION['security_code'] ) ||strcmp($_SESSION['security_code'], $_POST['security_code']) != 0)) //if(empty($_SESSION['security_code'] ) || $_POST['security_code']) != 0) //if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) { $sql="insert into contact_us(first_name,last_name,email,contact_number,comments,status,date_posted) values('$name','$lname','$email','$tele','$comments','$status','$date_posted')"; $res=mysql_query($sql); $mail_to_user ="qq@qq.com"; $mail_subject_user="Comments "; $mail_body_user='<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"> Sir,<br> Please see the comments </td> </tr> <tr> <td width="20%"> </td> <td width="14%"><strong>First Name</strong></td> <td width="66%">'.$_POST[cname].'</td> </tr> <tr> <td> </td> <td><strong>Last Name</strong></td> <td>'.$_POST[last_name].'</td> </tr> <tr> <td> </td> <td><strong>Email</strong></td> <td>'.$_POST[cemail].'</td> </tr> <tr> <td> </td> <td><strong>Telephone Number</strong></td> <td>'.$_POST[telephone].'</td> </tr> <tr> <td> </td> <td><strong>Comments</strong></td> <td>'.$_POST[comments].'</td> </tr> <tr> <td> </td> <td> </td> <td> </td> </tr> </table>'; $headers_user="MIME-Verson:1.0\n"; $headers_user.="Content-Type: text/html;charset=iso-8859-1\n"; $headers_user.="Content-Transfer-Encoding: 8bit\n"; $headers_user.="From: bb@qq.com\n"; $headers_user .="Bcc: aa@gg.com\r\n"; mail($mail_to_user,$mail_subject_user,$mail_body_user,$headers_user); echo "<script language='javascript'>alert('Message has been sent to the Administrator.');</script>"; //=================email to user $mail_to_user1 = $_POST['cemail']; $mail_subject_user1 = "Thanks for contacting with us "; $mail_body_user1 ='<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td> Sir,<br> We are very much glad to hear from you. We will contact you soon. <br/><br/> Thanks, <br/>Cusrtomer Care</td> <td> </td> <td> </td> </tr> </table>'; $headers_user1="MIME-Verson:1.0\n"; $headers_user1.="Content-Type: text/html;charset=iso-8859-1\n"; $headers_user1.="Content-Transfer-Encoding: 8bit\n"; $headers_user1.="From: aa@qq.com "; mail($mail_to_user1,$mail_subject_user1,$mail_body_user1,$headers_user1); //header('Location:contact_us.html'); echo "<script> self.location='contact_us.html';</script>"; //} /*else{ //Note: the captcha code is compared case insensitively. //if you want case sensitive match, update the check above to // strcmp() //unset($_SESSION['security_code']); echo"<script language='javascript'>alert('The security code you entered is not correct');</script>"; echo "<script> self.location='contact_us.html';</script>"; //header('Location:contact_us.html'); // $errors .= "\n The captcha code does not match!"; }*/ /*else{ ?> <script language="javascript"> alert("The security code you entered is not correct"); history.go(-1); </script> <?php } */ } unset($_SESSION['security_code']); html form=========contact_us.html <form name='contact_form' id='contact_form' method="post" action="contact.php"> <table width="518" height="341" align="center" border="0" style=" vertical-align:top"> <tbody><tr><td width="202" height="28" valign="middle" align="left"> <label for="first_name"><span class="style26 style20">First Name *</span></label> </td> <td width="14" align="center" valign="middle">:</td> <td width="448" valign="top" > <div class="con" ><input type="text" size="30" maxlength="50" name="cname" id="cname" class="contact_text"> </div> </td> </tr> <tr> <td valign='middle'> <label for="last_name"><span class="style26 style20">Last Name *</span></label> </td> <td align="center" valign="middle">:</td> <td valign="top"> <div class="con" > <input type="text" size="30" maxlength="50" name="last_name" id="last_name" class="contact_text"></div> </td> </tr> <tr> <td valign="middle"> <label for="email"><span class="style26 style20">Email Address *</span></label> </td> <td align="center" valign="middle">:</td> <td valign="top"><div class="con" ><input type="text" size="30" maxlength="50" name="cemail" id="cemail" class="contact_text"/></div></td> </tr> <tr> <td valign="middle"> <label for="telephone"><span class="style26 style20">Telephone Number</span></label> </td> <td align="center" valign="middle">:</td> <td valign="top"> <div class="con" > <input type="text" size="30" maxlength="80" name="telephone" id="telephone" class="contact_text" > </div> </td> </tr> <tr> <td height="123" valign="middle"> <label for="comments"><span class="style26 style20">Comments *</span></label> </td> <td align="center" valign="middle">:</td> <td valign="middle"> <div class="cmn_ct"><textarea rows="6" cols="25" maxlength="1000" name="comments" id="comments" onfocus=" this.value = this.value.replace(/\s+/g,'');" onblur="checkLength(this.value,0,100);" class="cmn_text"></textarea></div> </td> </tr> <tr><td><label for="security code"><span class="style26 style20">Security Code *</span></label></td><td align="center" valign="middle"></td><td><img src="CaptchaSecurityImages.php?width=100&height=40&characters=5" alt="security_code" height="22" id="security_code" name='security_code' class='secuimage'/><br /> <div class="se_code"><input id="security_code" name="security_code" type="text" class="secuInput" /></div> <center></td> <tr> <td height="26" colspan="3" style="text-align: center;"> <table width=69% align="right"> <tr><td align='left'> <input type="submit" value="Submit" name="csubmit" onclick="return verify();"> </td></tr></table> </td> </tr></table></form></p> CaptchaSecurityImages.php <?php class CaptchaSecurityImages { var $font = 'monofont.ttf'; function generateCode($characters) { /* list all possible characters, similar looking characters and vowels have been removed */ $possible = '23456789bcdfghjkmnpqrstvwxyz'; $code = ''; $i = 0; while ($i < $characters) { $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1); $i++; } return $code; } function CaptchaSecurityImages($width='120',$height='40',$characters='6') { $code = $this->generateCode($characters); /* font size will be 75% of the image height */ $font_size = $height * 0.75; $image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream'); /* set the colours */ $background_color = imagecolorallocate($image, 255, 255, 255); $text_color = imagecolorallocate($image, 20, 40, 100); $noise_color = imagecolorallocate($image, 100, 120, 180); /* generate random dots in background */ for( $i=0; $i<($width*$height)/3; $i++ ) { imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color); } /* generate random lines in background */ for( $i=0; $i<($width*$height)/150; $i++ ) { imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color); } /* create textbox and add text */ $textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Error in imagettfbbox function'); $x = ($width - $textbox[4])/2; $y = ($height - $textbox[5])/2; imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function'); /* output captcha image to browser */ header('Content-Type: image/jpeg'); imagejpeg($image); imagedestroy($image); $_SESSION['security_code'] = $code; } } $width = isset($_GET['width']) ? $_GET['width'] : '120'; $height = isset($_GET['height']) ? $_GET['height'] : '40'; $characters = isset($_GET['characters']) && $_GET['characters'] > 1 ? $_GET['characters'] : '6'; $captcha = new CaptchaSecurityImages($width,$height,$characters); ?> I just want to know how will i pass a session variable frm php to html thru js and from there to the php page where action of the html page occurs? 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.