Snitz Forums 2000
Snitz Forums 2000
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Community Forums
 Code Support: ASP (Non-Forum Related)
 Captcha Program

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!
Before posting, make sure you have read this topic!

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
   

T O P I C    R E V I E W
Carefree Posted - 05 October 2015 : 08:51:18
I've seen several sites using an image-based CAPTCHA program, where you select all the photos with specific content from a random group. I decided to write one, just to see if I could make it work. I have it working, but there's a random bug. Sometimes it will display all the images, sometimes, it will only display 3 on a line (below) instead of 4; but not because an image is missing. It just ignores the for-next loop. I also tried it with a Do While loop, but it ignores that as well on occasion. All the images have displayed at one time or another, so it's not a case of missing images. Can anyone spot the reason?




<!--#INCLUDE FILE="config.asp"-->
<!--#INCLUDE FILE="includes/inc_header.asp" -->
<%
If Request("Submit") = "Submit" Then
	intError = 0 : intIsValid = 0
	Dim strR, strV
	For i = 1 To 16
		strR = "CI" & CStr(i) : strV = "CJ" & CStr(i)
		strSql = "SELECT CI_TYPE FROM " & strTablePrefix & "CAP_IMAGES WHERE C_ID=" & Request(strV)
		Set rsV=my_Conn.Execute(strSql)
		If Not rsV.EOF Then
			strType = rsV("CI_TYPE")
			rsV.Close
		End If
		Set rsV = Nothing
		If (Request(strR) = "1" And strType <> Request("strImages")) Or (Request(strR) = "0" And strType = Request("strImages")) Then
			intError = 1
			Exit For
		End If
	Next
	If intError = 1 Then
		Response.Write	"Improper selection made.  <a href=""Javascript:history.go(-1)"">Try again</a>." & vbNewLine
		Response.End
	Else
		intIsValid = 1
		'Valid - continue routine goes here
		Response.Write	"Authenticated."
		Response.End
	End If
Else
	On Error Resume Next
	Dim intCap, intCI, strImages, strCII, strCIJ, strIM, intI, intJ
	Randomize
	IntCap = CInt(((Rnd * 30)+10)/10)
	intICap = (5*(intCap-1))+1
	strImages=Mid("SignsFruitPizzaCandy",intICap,5)
	Response.Write	"<form action=""captcha_image.asp"" method=""post"">" & vbNewLine & _
		"	<input type=""hidden"" name=""strImages"" value=""" & strImages & """ />" & vbNewLine & _
		"	<table width=""320"" bgColor=""transparent"" border=""0"" cellpadding=""0"" cellspacing=""0"">" & vbNewLine & _
		"		<tr vAlign=""middle"">" & vbNewLine & _
		"			<td align=""center"" colspan=""4"" width=""100%"" bgColor=""" & strTableBorderColor & """>" & vbNewLine & _
		"				<table width=""100%""  bgColor=""" & strForumCellColor & """ border=""1"" style=""border-collapse:collapse;"" cellpadding=""2"" cellspacing=""0"">" & vbNewLine & _
		"					<tr vAlign=""middle"">" & vbNewLine & _
		"						<td align=""center"" colspan=""4"" width=""100%"" bgColor=""" & strHeadCellColor & """>" & vbNewLine & _
		"							<font face=""" & strDefaultFontFace & """ size=""" & strHeaderFontSize & """ color=""" & strHeadFontColor & """>Select all images with <b>" & strImages & "</b>.</font>" & vbNewLine & _
		"						</td>" & vbNewLine & _
		"					</tr>" & vbNewLine
	strSqlCJ = "UPDATE " & strTablePrefix & "CAP_IMAGES SET CIU=0"
	my_Conn.Execute(strSqlCJ),,adCmdText + adExecuteNoRecords
	For intI = 0 To 3
		Response.Write	"					<tr vAlign=""top"">" & vbNewLine
		intJ = 1
		Do While intJ < 5
			strSqlC = "SELECT COUNT (CIU) AS CNT FROM " & strTablePrefix & "CAP_IMAGES WHERE CIU=0"
			Set rsCnt = my_Conn.Execute(strSqlC)
			If Not rsCnt.EOF Then
				intCnt = rsCnt("CNT")
				rsCnt.Close
			End If
			Set rsCnt = Nothing
			Randomize
			intCI = CInt(Rnd * intCnt)		
			strSql = "SELECT * FROM " & strTablePrefix & "CAP_IMAGES WHERE CIU=0"
			Set rsCI = my_Conn.Execute(strSql)
			If Not rsCI.EOF Then
				rsCI.Move(intCI)
				intID = (intI * 4) + intJ
				strID = rsCI("C_ID")
				strCII = "CI" & CStr(intID) : strCIJ = "CJ" & CStr(intID) : strIM = strImageURL & "CI/"	& strID & ".png"
				Response.Write	"						<td vAlign=""top"" bgColor=""" & strForumCellColor & """ nowrap align=""center"" width=""90"">" & vbNewLine & _
					"							<input type=""hidden"" name=""" & strCIJ & """ value=""" & rsCI("C_ID") & """ />" & vbNewLine & _
					"							On<input type=""radio"" class=""radio"" style=""background:" & strForumCellColor & ";"" name=""" & strCII & """ value=""1""" & chkRadio(Request(strCII),0,false) & "> Off<input type=""radio"" class=""radio"" style=""background:" & strForumCellColor & ";"" name=""" & strCII & """ value=""0""" & chkRadio(Request(strCII),0,true) & "><br />" & vbNewLine & _
					"							<image src=""" & strIM & """ height=""70"" width=""70"" style=""border:none; text-decoration:none;"" />" & vbNewLine & _
					"						</td>" & vbNewLine
				strSqlCJ = "UPDATE " & strTablePrefix & "CAP_IMAGES SET CIU = 1 WHERE C_ID=" & rsCI("C_ID")
				my_Conn.Execute(strSqlCJ),,adCmdText + adExecuteNoRecords
				rsCI.Close
			End If
			Set rsCI = Nothing
			intJ = intJ + 1
		Loop
		Response.Write	"					</tr>" & vbNewLine
	Next
	Response.Write	"				</table>" & vbNewLine & _
		"			</td>" & vbNewLine & _
		"		</tr>" & vbNewLine & _
		"		<tr>" & vbNewLine & _
		"			<td bgColor=""" & strForumCellColor & """ colspan=""4"" width=""100%"" align=""center"" style=""line-height:50%;""><br />" & vbNewLine & _
		"   		<input style=""color:" & strHeadFontColor & "; font-weight:bold; font-family:" & strDefaultFontFace & "; padding:3px 6px 3px 6px; border:1px solid " & strTableBorderColor & "; text-shadow:0px 1px 1px #000; font-weight:bold; text-decoratiOnnone; border-radius:25px; -webkit-border-radius:25px; background:"&strHColor&";"" type=""Submit"" class=""button2"" name=""submit"" value=""Submit"" />" & vbNewLine & _
		"			</td>" & vbNewLine & _
		"		</tr>" & vbNewLine & _
		"	</table>" & vbNewLine & _
		"</form>" & vbNewLine
End If
WriteFooter

Function chkRadio(actualValue, thisValue, boltf)
	If IsNumeric(actualValue) Then actualValue = cLng(actualValue)
	If actualValue = thisValue EQV boltf Then
		chkRadio = " checked"
	Else
		chkRadio = ""
	End If
End Function
%>

1   L A T E S T    R E P L I E S    (Newest First)
HuwR Posted - 06 October 2015 : 07:27:18
I'll try and take a look later, but can't see anything glaringly obvious from first look.

Snitz Forums 2000 © 2000-2021 Snitz™ Communications Go To Top Of Page
This page was generated in 0.05 seconds. Powered By: Snitz Forums 2000 Version 3.4.07