***********************  Using CAPTCHA IMAGE IN CLASSIC ASP  ******************************

(((((((((   Design Part   ))))))))))

<p>Security Code(required)<br>

<input name="strCode" type="text" id="strCode"/>&nbsp;&nbsp;&nbsp;&nbsp;

<img src="_capcha.asp" alt="Verification Code" width="86" height="21" align="absmiddle" />

<img src="images/spacer.gif" alt="Blank Image" />

</p>

<p>

(((((((((   SCRIPT CAPTCHA VALIDATION PART   ))))))))))

 <script type="text/javascript">

   //Created / Generates the captcha function    

        function DrawCaptcha()

        {

            var a = Math.ceil(Math.random() * 10)+ '';

            var b = Math.ceil(Math.random() * 10)+ '';          

            var c = Math.ceil(Math.random() * 10)+ '';  

            var d = Math.ceil(Math.random() * 10)+ '';  

           

            var code = a + ' ' + b + ' ' + ' ' + c + ' ' + d;

            document.getElementById("txtCaptcha").value = code;

    }

        // Validate the Entered input aganist the generated security code function  

        function Validate(){

            var str1 = removeSpaces(document.getElementById('txtCaptcha').value);

            var str2 = removeSpaces(document.getElementById('txtInput').value);

            if (str1 != str2){alert("The Value of Captcha does not match!!!"); return false;}            

            return true;

        }

   

        // Remove the spaces from the entered and generated code

        function removeSpaces(string)

        {

            return string.split(' ').join('');

        }

   

 

 </script>

(((((((((((((((        BODY ONLOAD METHOD        ))))))))))))))))))

<body id="home" onload="DrawCaptcha()">

(((((((((((((((((   SUBMIT YOUR INFORMATION        ))))))))))))))))))

<% Function CheckCAPTCHA(valCAPTCHA)

    SessionCAPTCHA = Trim(Session("CAPTCHA"))

    Session("CAPTCHA") = vbNullString

    if Len(SessionCAPTCHA) < 1 then

            CheckCAPTCHA = False

            exit function

        end if

    if CStr(SessionCAPTCHA) = CStr(valCAPTCHA) then

            CheckCAPTCHA = True

    else

            CheckCAPTCHA = False

    end if

End Function

strCAPTCHA=trim(request("strCode"))

if CheckCAPTCHA(strCAPTCHA) then

    sendmail=1

    elseif CheckCAPTCHA(strCAPTCHA) = false then

    response.Redirect("index.asp?strCode=false&message="&server.URLEncode("Please check your verification code."))

     

end iF

%>

((((   CREATE A NOTEPAD FILE AND RENAME THE FILE NAME TO " _capcha.asp "  and PASTE THE CODE GIVEN BELOW the below code  ))))

**************************************************************************************************************

<%@LANGUAGE="VBSCRIPT"%>

<%

Dim newBitmap(21,87)

Dim vDistort(8)

LDistortNum = 0

Const LeftMargin = 4

Const BottomMargin = 4

Const CharWidth = 10

Const CharHeight = 13

'Begin editable consts

Const CodeLength = 8 'Secure Code Length (Max:8)

Const Distort = True 'Vertical Image Distortion True/False

Const DistortEx = True 'Horizontal Image Distortion True/False

Const Noise = True 'Image Noise True/False

Const TClr = "FFFFFF" 'Text Color #CC0000

Const BClr = "000000" 'Background Color #FFFFFF

Const NClr = "000000" 'Noise Color #CC0000 (Recommend TClr=NClr)

'End editable consts

Const BmpHeader = "424D8C1500000000000036000000280000005600000015000000010018000000000056150000120B0000120B00000000000000000000"

Const BmpEndLine = "0000"

Sub IHex(iRow,iColumn,strHex,iRepeat)

    for x=0 to (iRepeat-1)

            newBitmap(iRow,iColumn+x) = strHex

    next

End Sub

Function Random(valMin,valMax)

        Randomize(timer)

        RangeSize = ((valMax - valMin))

        Random = Int((RangeSize * Rnd()))

End Function

Sub AddNoise()

        for x=0 to 28

            ColX = (x*3) + Random(1,3)

            for y=0 to 6

                RowY = (y*3) + Random(1,3)

                IHex RowY,ColX,NClr,1

            next

        next

End Sub

Sub WriteCanvas(valChar,iNumPart,iRow,iColumn)

    select case iNumPart

            case 1

                    select case valChar

                            case 0

                                    IHex iRow,iColumn+2,TClr,4

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+2,TClr,4

                            case 3

                                    IHex iRow,iColumn+2,TClr,3

                            case 4

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn+1,TClr,6

                            case 6

                                    IHex iRow,iColumn+2,TClr,4

                            case 7

                                    IHex iRow,iColumn,TClr,8

                            case 8

                                    IHex iRow,iColumn+2,TClr,4

                            case 9

                                    IHex iRow,iColumn+2,TClr,4

                    end select

            case 2

                    select case valChar

                            case 0

                                    IHex iRow,iColumn+1,TClr,6

                            case 1

                                    IHex iRow,iColumn+2,TClr,3

                            case 2

                                    IHex iRow,iColumn+1,TClr,6

                            case 3

                                    IHex iRow,iColumn+1,TClr,6

                            case 4

                                    IHex iRow,iColumn+4,TClr,3

                            case 5

                                    IHex iRow,iColumn+1,TClr,6

                            case 6

                                    IHex iRow,iColumn+1,TClr,6

                            case 7

                                    IHex iRow,iColumn,TClr,8

                            case 8

                                    IHex iRow,iColumn+1,TClr,6

                            case 9

                                    IHex iRow,iColumn+1,TClr,6

                    end select

            case 3

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,3

                                    IHex iRow,iColumn+5,TClr,3

                            case 1

                                    IHex iRow,iColumn+1,TClr,4

                            case 2

                                    IHex iRow,iColumn,TClr,3

                                    IHex iRow,iColumn+5,TClr,3

                            case 3

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+5,TClr,2

                            case 4

                                    IHex iRow,iColumn+4,TClr,3

                            case 5

                                    IHex iRow,iColumn+1,TClr,2

                            case 6

                                    IHex iRow,iColumn+1,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 7

                                    IHex iRow,iColumn+6,TClr,1

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                    end select

            case 4

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 3

                                    IHex iRow,iColumn+5,TClr,2

                            case 4

                                    IHex iRow,iColumn+3,TClr,4

                            case 5

                                    IHex iRow,iColumn,TClr,2

                            case 6

                                    IHex iRow,iColumn,TClr,2

                            case 7

                                    IHex iRow,iColumn+5,TClr,2

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                    end select

            case 5

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn,TClr,1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+6,TClr,2

                            case 3

                                    IHex iRow,iColumn+5,TClr,2

                            case 4

                                    IHex iRow,iColumn+2,TClr,2

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+3,TClr,3

                            case 6

                                    IHex iRow,iColumn,TClr,2

                            case 7

                                    IHex iRow,iColumn+4,TClr,2

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                    end select

            case 6

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+6,TClr,2

                            case 3

                                    IHex iRow,iColumn+3,TClr,3

                            case 4

                                    IHex iRow,iColumn+2,TClr,2

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn,TClr,7

                            case 6

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+3,TClr,3

                            case 7

                                    IHex iRow,iColumn+4,TClr,2

                            case 8

                                    IHex iRow,iColumn+1,TClr,6

                            case 9

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+5,TClr,3

                    end select

            case 7

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+5,TClr,2

                            case 3

                                    IHex iRow,iColumn+3,TClr,4

                            case 4

                                    IHex iRow,iColumn+1,TClr,2

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 6

                                    IHex iRow,iColumn,TClr,7

                            case 7

                                    IHex iRow,iColumn+3,TClr,2

                            case 8

                                    IHex iRow,iColumn+1,TClr,6

                            case 9

                                    IHex iRow,iColumn+1,TClr,7

                    end select

            case 8

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+4,TClr,2

                            case 3

                                    IHex iRow,iColumn+6,TClr,2

                            case 4

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn+6,TClr,2

                            case 6

                                    IHex iRow,iColumn,TClr,3

                                    IHex iRow,iColumn+6,TClr,2

                            case 7

                                    IHex iRow,iColumn+3,TClr,2

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn+2,TClr,3

                                    IHex iRow,iColumn+6,TClr,2

                    end select

            case 9

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+3,TClr,2

                            case 3

                                    IHex iRow,iColumn+6,TClr,2

                            case 4

                                    IHex iRow,iColumn,TClr,9

                            case 5

                                    IHex iRow,iColumn+6,TClr,2

                            case 6

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 7

                                    IHex iRow,iColumn+3,TClr,2

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn+6,TClr,2

                    end select

            case 10

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+2,TClr,2

                            case 3

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 4

                                    IHex iRow,iColumn,TClr,9

                            case 5

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 6

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 7

                                    IHex iRow,iColumn+3,TClr,2

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn+6,TClr,2

                    end select

            case 11

                    select case valChar

                            case 0

                                    IHex iRow,iColumn,TClr,3

                                    IHex iRow,iColumn+5,TClr,3

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn+1,TClr,2

                            case 3

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 4

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 6

                                    IHex iRow,iColumn+1,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 7

                                    IHex iRow,iColumn+2,TClr,2

                            case 8

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+6,TClr,2

                            case 9

                                    IHex iRow,iColumn,TClr,2

                                    IHex iRow,iColumn+5,TClr,2

                    end select

            case 12

                    select case valChar

                            case 0

                                    IHex iRow,iColumn+1,TClr,6

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn,TClr,8

                            case 3

                                    IHex iRow,iColumn+1,TClr,6

                            case 4

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn+1,TClr,6

                            case 6

                                    IHex iRow,iColumn+1,TClr,6

                            case 7

                                    IHex iRow,iColumn+2,TClr,2

                            case 8

                                    IHex iRow,iColumn+1,TClr,6

                            case 9

                                    IHex iRow,iColumn+1,TClr,6

                    end select

            case 13

                    select case valChar

                            case 0

                                    IHex iRow,iColumn+2,TClr,4

                            case 1

                                    IHex iRow,iColumn+3,TClr,2

                            case 2

                                    IHex iRow,iColumn,TClr,8

                            case 3

                                    IHex iRow,iColumn+2,TClr,4

                            case 4

                                    IHex iRow,iColumn+5,TClr,2

                            case 5

                                    IHex iRow,iColumn+2,TClr,4

                            case 6

                                    IHex iRow,iColumn+2,TClr,4

                            case 7

                                    IHex iRow,iColumn+2,TClr,2

                            case 8

                                    IHex iRow,iColumn+2,TClr,4

                            case 9

                                    IHex iRow,iColumn+2,TClr,4

                    end select

    end select

End Sub

Function LeftTracking(iNumber)

    select case iNumber

            case 1

                    LeftTracking = 2

            case 4

                    LeftTracking = 0

            case else

                    LeftTracking = 1

    end select

End Function

'http://support.microsoft.com/default.aspx?scid=kb;en-us;320375

Function CreateGUID(tmpLength)

  Randomize Timer

  Dim tmpCounter,tmpGUID

  Const strValid = "01234567890"

  For tmpCounter = 1 To tmpLength

        tmpGUID = tmpGUID & Mid(strValid, Int(Rnd(1) * Len(strValid)) + 1, 1)

  Next

  CreateGUID = tmpGUID

End Function

Function GetStartColumn(iNumber,iLine)

    if DistortEx = true then

            DistortNum = (Random(1,3) - 1)

            if DistortNum = 0 then

                    DistortNum = LDistortNum

            end if

            LDistortNum = DistortNum

    else

            DistortNum = 0

    end if

    GetStartColumn =  LeftMargin + ((CharWidth * (iLine-1)) + LeftTracking(iNumber)) + DistortNum

End Function

Sub SendHex(valHex)

    for i=1 to Len(valHex)

            strHex = "&H" & Mid(valHex,i,2)

            Response.BinaryWrite ChrB(CInt(strHex))

            i=i+1

    next

End Sub

Sub SendClient()

    Response.Buffer = True

    Response.ContentType = "image/bmp"

    Response.CacheControl = "no-cache"

    Response.AddHeader "Pragma", "no-cache"

    Response.Expires = -1

        if Noise = true then

            AddNoise()

        end if

    SendHex(BmpHeader)

    for y=1 to 21

            for x=1 to 86

                    tmpHex = newBitmap(y,x)

                    if tmpHex = vbNullString then

                            SendHex(BClr)

                    else

                            SendHex(tmpHex)

                    end if

                    if x=86 then

                            SendHex(BmpEndLine)

                    end if

            next

    next

    SendHex(BmpEndLine)

    Response.Flush

End Sub

%>

<%

secureCode = CreateGUID(CodeLength)

Session("CAPTCHA") = secureCode

for i=1 to CharHeight

    rowNum = (21 - (BottomMargin + (i-1)))

    for j=1 to Len(secureCode)

            if (Distort = true) and (i=1) then

                    vDistort(j) = (Random(1,6) - 3)

            elseif (i=1) then

                    vDistort(j) = 0

            end if

            tmpNum = CInt(Mid(secureCode,j,1))

            clmNum = GetStartColumn(tmpNum,j)

            WriteCanvas tmpNum,i,rowNum+vDistort(j),clmNum

    next

next

SendClient()

%>

**************************************************************************************************************

(((((((((((((((((((   sEND MAIL EXAMPLE PAGE        )))))))))))))))))))

<%

Function CheckCAPTCHA(valCAPTCHA)

    SessionCAPTCHA = Trim(Session("CAPTCHA"))

    Session("CAPTCHA") = vbNullString

    if Len(SessionCAPTCHA) < 1 then

            CheckCAPTCHA = False

            exit function

        end if

    if CStr(SessionCAPTCHA) = CStr(valCAPTCHA) then

            CheckCAPTCHA = True

    else

            CheckCAPTCHA = False

    end if

End Function

strCAPTCHA=trim(request("strCode"))

if CheckCAPTCHA(strCAPTCHA) then

     sendmail=1

elseif CheckCAPTCHA(strCAPTCHA) = false then

     response.Redirect("index.asp?strCode=false&message="&server.URLEncode("Please check your verification code."))      

end if    

Names=request("name")

interest=request("interest")

country=request("country")

EmailID=request("email")

ContactNo=request("phone")

dim strhtml2

strhtml2=strhtml2&"<table width='600' border='0' align='center' cellpadding='2' cellspacing='2' bgcolor='946e4d' style=' font-family:Arial, Helvetica, sans-serif; color:946e4d; font-size:12px; line-height:22px;'>"

strhtml2=strhtml2&"<tr>"

strhtml2=strhtml2&"<td colspan='2' align='center' bgcolor='e6e5c5'><strong> Enquiry Form </strong></td>"

strhtml2=strhtml2&"</tr>"

strhtml2=strhtml2&"<tr>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>Name:</td>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>"&Names

strhtml2=strhtml2&"</td>"

strhtml2=strhtml2&"</tr>"

strhtml2=strhtml2&"<tr>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>Email: </td>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>"&EmailID

strhtml2=strhtml2&"</td>"

strhtml2=strhtml2&"</tr>"

strhtml2=strhtml2&"<tr>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>Phone : </td>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>"&ContactNo

strhtml2=strhtml2&"</td>"

strhtml2=strhtml2&"</tr>"

strhtml2=strhtml2&"<tr>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>Interest: </td>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>"&interest

strhtml2=strhtml2&"</td>"

strhtml2=strhtml2&"</tr>"

strhtml2=strhtml2&"<tr>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>Country: </td>"

strhtml2=strhtml2&"<td bgcolor='#FFFFFF'>"&country

strhtml2=strhtml2&"</td>"

strhtml2=strhtml2&"</tr>"

strhtml2=strhtml2&"</table>"

strhtml2=strhtml2&"</body>"

sTextBody =  strHtml2

Set objCDOSYSMail = Server.CreateObject("CDO.Message")

Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

'Update the CDOSYS Configuration

Set objCDOSYSMail.Configuration = objCDOSYSCon

objCDOSYSMail.From =EmailID

objCDOSYSMail.To = "krishna.jha@magnonsolutions.com"

objCDOSYSMail.CC="nitin.naresh@magnonsolutions.com,vineet.bajpai@magnonsolutions.com"

objCDOSYSMail.Subject = "Contact Form!!"

objCDOSYSMail.HTMLBody = sTextBody

objCDOSYSMail.Send

'Close the server mail object

Set objCDOSYSMail = Nothing

Set objCDOSYSCon = Nothing

%>

(((((((((((((((((((((((((((((((((((                 END OF FILE                     )))))))))))))))))))))))))))))))))))