What is Security Image / Security Code?
Security image is a form of protection against a form of SPAM attacks.
For example Have you completing the registration form to get an email account on yahoo??
See the bottom of the submit button above, there is a security code that appears ... and you need to fill the security code
How It Works?
First:
Form will show that in the security code generated by PHP scripts, if the page is in the security code refresh will in turn generate more so that this codenya very useful for countering spam attacks.
Second:
After the submit, php script will validate your data and a security pin code you have entered a security code if not equal, then the process will be canceled if the same security code, then the process will continue.
The following files will be used:
1. script form.html
2. script action.php
3. script captchasecurityimages.php
4. file font
Feel free to download the completed scripts with the font here
Just place it on your document root and run the form.html script.
Explanation:2. script action.php
3. script captchasecurityimages.php
4. file font
Feel free to download the completed scripts with the font here
Just place it on your document root and run the form.html script.
==========================================
remember this is only an example, you can develop your own script
==========================================
1. script form.htm
<form action="action.php" method="post"> Pesan: <input type="text" name="message" /><br /> <img src="/captchasecurityimages.php?width=100&height=40&character=5" /> <br /> Security Code: <input id="security_code" name="security_code" type="text" /> <br /> <input type="submit" name="submit" value="Submit" /> </form> |
2. script action.php
<?php session_start(); if( isset($_POST['submit'])) { if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) ) { // enter the script if validation is correct echo 'Thank you, your message is : "'.$_POST['message'].'"'; } else { // enter the script if validation is incorrect echo 'Sorry, wrong security code<br />'; include "form.htm"; } } else { include "form.htm"; }?> |
3. script captchasecurityimages.php
<?php session_start(); 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 colors */ $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); $x = ($width - $textbox[4])/2; $y = ($height - $textbox[5])/2; imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code); /* output captcha image to browser */ 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'] : '6'; header('Content-Type: image/jpeg'); $captcha = new captchasecurityimages($width,$height,$characters); |
4. file font
Use font: monofont.ttf <Download here>
*note:
You should upload the font file it also, as an example I used the font "monofont.ttf", font files are the smallest size suitable for the website, all the above files should be in place in the same folder.
0 comments:
Post a Comment