This program is mainly a random number, and then according to the generated random number as the content of the XBM picture, finally displays this picture. Verify that the input numbers and session ("validatecode") compare, if equally Through verification (also pay attention to the type of two data compared).
How to display the generated picture? img>
About the format information of the XBM map, see here
Http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39134972,00.htm
Xbm.asp code is as follows
code:
<%
'Open the buffer
Response.buffer = TRUE
With response
EXPIRES = -1
.Addicheader "pragma", "no-cache"
.Addicheader "cache-ctrol", "no-cache"
End with
DIM NUM
Randomize
Num = int (7999 * RND 2000)
Session ("Validatecode") = NUM
DIM image
Dim Width, Height
DIM Digtal
DIM Length
DIM Sort
DIM HC
Length = 4
HC = CHR (13) & chr (10)
Redim Sort (Length)
Digital = ""
For i = 1 to Length - len (NUM)
Digital = DIGITAL & "0"
NEXT
For i = 1 to Len (NUM)
Digital = Digital & Mid (Num, i, 1)
NEXT
For i = 1 to Len (Digital)
Sort (i) = MID (Digital, i, 1)
NEXT
Width = 8 * len (Digital)
HEIGHT = 10
Response.contentType = "image / x-xbitmap"
Image = "#define counter_width" & width & HC
Image = Image & "#define counter_height" & height & hc
Image = image & "static unsigned char counter_bits [] = {" & hc
For i = 1 to Height
For J = 1 to Length
Image = image & a (sort (j), i) & ","
NEXT
NEXT
Image = left (image, len (image) - 1)
Image = image & "};" & hc
Response.write image
%>
The code of Numcode.asp is as follows:
code:
<%
DIM A (10, 10)
A (0, 1) = "0x3c" 'Digital 0A (0, 2) = "0x66"
A (0, 3) = "0xc3"
A (0, 4) = "0xc3"
A (0, 5) = "0xc3"
A (0, 6) = "0xc3"
A (0, 7) = "0xc3"
A (0, 8) = "0xc3"
A (0, 9) = "0x66"
A (0, 10) = "0x3c"
A (1, 1) = "0x18" number 1
A (1, 2) = "0x1c"
A (1,3) = "0x18"
A (1,4) = "0x18"
A (1,5) = "0x18"
A (1,6) = "0x18"
A (1,7) = "0x18"
A (1, 8) = "0x18"
A (1,9) = "0x18"
A (0, 10) = "0x7e"
A (2, 1) = "0x3c" 'number 2
A (2, 2) = "0x66"
A (2, 3) = "0x60"
A (2, 4) = "0x60"
A (2,5) = "0x30"
A (2,6) = "0x18"
A (2, 7) = "0x0c"
A (2, 8) = "0x06"
A (2, 9) = "0x06"
A (2, 10) = "0x7e"
A (3, 1) = "0x3c" 'number 3
A (3, 2) = "0x66"
A (3, 3) = "0xc0"
A (3, 4) = "0x60"
A (3, 5) = "0x1c"
A (3, 6) = "0x60"
A (3, 7) = "0xc0"
A (3, 8) = "0xc0"
A (3, 9) = "0x66"
A (3, 10) = "0x38"
A (4, 1) = "0x38" 'number 4
A (4, 2) = "0x3c"
A (4, 3) = "0x36"
A (4, 4) = "0x33"
A (4, 5) = "0x33"
A (4, 6) = "0x33"
A (4, 7) = "0xff"
A (4, 8) = "0x30"
A (4, 9) = "0x30"
A (4, 10) = "0xfe"
A (5, 1) = "0xfe" 'number 5
A (5, 2) = "0xfe"
A (5, 3) = "0x06"
A (5, 4) = "0x06"
A (5, 5) = "0x3e"
A (5, 6) = "0x60"
A (5, 7) = "0xc0"
A (5, 8) = "0xc3"
A (5, 9) = "0x66" a (5, 10) = "0x3c"
A (6, 1) = "0x60" 'number 6
A (6, 2) = "0x30"
A (6, 3) = "0x18"
A (6, 4) = "0x0c"
A (6,5) = "0x3e"
A (6, 6) = "0x63"
A (6, 7) = "0xc3"
A (6, 8) = "0xc3"
a (6,9) = "0x66"
A (6, 10) = "0x3c"
A (7, 1) = "0xff" 'number 7
A (7, 2) = "0xc0"
A (7, 3) = "0x60"
A (7, 4) = "0x30"
A (7,5) = "0x18"
A (7, 6) = "0x18"
A (7, 7) = "0x18"
A (7, 8) = "0x18"
A (7, 9) = "0x18"
A (7, 10) = "0x18"
A (8, 1) = "0x3c" 'number 8
A (8, 2) = "0x66"
A (8, 3) = "0xc3"
A (8, 4) = "0x66"
A (8, 5) = "0x3c"
A (8, 6) = "0x66"
A (8, 7) = "0xc3"
A (8, 8) = "0xc3"
A (8, 9) = "0x66"
A (8, 10) = "0x3c"
A (9, 1) = "0x3c" 'number 9
A (9, 2) = "0x66"
A (9, 3) = "0xc3"
A (9, 4) = "0xc3"
A (9, 5) = "0x66"
A (9, 6) = "0x3c"
A (9, 7) = "0x18"
A (9, 8) = "0x0c"
A (9, 9) = "0x06"
A (9, 10) = "0x03"
%>