webForumDet fria alternativet

Captcha hjälp (gruvsjö)

ASP

17 svar · 4 714 visningar · startad av blåjeans

Medlem sedan sep. 2005849 inlägg
Frågan#1

Jag har ett problem med min gästbok, har försökt uppgradera den till gruvsjös version 4, där det ska visas en sån där bildkod. Men problemet är att det visas ingen kod, och jag vet inte vad jag ska göra åt det. (dessutom har alla rutor tappat bort sin "padding" eller nåt, för det är hur ihoptjoffsat som helst, men det är ett annat problem...)

Hoppas någon kan hjälpa mig!
Såhär ser koden ut: (vet inte riktigt vad jag behöver visa, så det kanske är lite mycket)

<%

Function Link(strText)
   strText = Server.HTMLEncode(strText)

   Set regExp = New regexp

   regExp.Global = true
   regExp.IgnoreCase = true

   regExp.Pattern = "(http://|www)([\S]*)"
   strText = regExp.Replace(strText,"<a href=""http://$1$2"" target=""_blank"">$1$2</a>")

   regExp.Pattern = "(ftp://)([\S]*)"
   strText = regExp.Replace(strText,"<a href=""$1$2"" target=""_blank"">$1$2</a>")

   regExp.Pattern = "([\S]*@[\S]*[.se|.com|.nu|.net|.org])"
   strText = regExp.Replace(strText,"<a href=""mailto:$1"" target=""_blank"">$1</a>")

   regExp.Pattern = "([.|,|!|?|:|;|)|\|&]]*)</a> "
   strText = regExp.Replace(strText,"</a>$1 ")

   regExp.Pattern = "([.|,|!|?|:|;|)|\|&]]*)"" target=""_blank"">([^<]*)</a>"
   strText = regExp.Replace(strText,""">$2</a>")

   strText = Replace(Trim(strText),vbCrLf, "<br>")
   strText = Replace(Trim(strText),"http://http://", "http://")

Link = strText 				' Skriver ut texten, uppdelad och fin!

End Function

Public Function FixSQL(ByVal sString) ' As String  
    If Len("" & sString) = 0 Then Exit Function  
    sString = Replace(sString, "'","''")  
    sString = Replace(sString, "\","\\")  
    FixSQL = sString  
End Function

Function FixDigits(Value,Digits)
    FixDigits = Space(Digits) & Value
    FixDigits = Right(FixDigits,Digits)
    FixDigits = Replace(FixDigits," ","0")
End Function%>

<script src="js.js"></script>

<table cellpadding="1" cellspacing="0" width="100%" border="0">

<%Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db

If Request.Querystring("do")= "" Then%>
<!-- textfälten -->

<table border="0" width="500" align="center" cellpadding="3" cellspacing="10">
  <form method="post" action="<%=INC%>?do=add" name="gastbok"  onSubmit="return Gb()">
    <tr> 
      <td colspan="2" style="border-bottom: 1px solid #1c304b"><font size="3"><b>
	  <p><div align="center"><div class="titel">Gästbok</div></p></b></font>
	<p>&nbsp;</p>
	  </td>
	  </tr>
    <tr> 
      <td>Ditt namn:<br><input type="text" name="rubrik" size="25"></td>
	  <td>Plats:<br><input type="text" name="namn" size="25"></td>
     </tr>
    <tr>
      <td>Din e-mail:<br><input type="text" name="mail" size="25"></td>
      <td>Hemsida:<br><input type="text" name="url" size="25"></td>
    </tr>
    <tr> 
      <td valign="top" colspan="2">Meddelande:<br><textarea name="msg" cols="50" rows="8"></textarea></td>
    </tr>
    <tr> 
      <td colspan="2">
<!-- include the Web Wiz CAPTCHA form -->
	<!--#include file="CAPTCHA/CAPTCHA_form_inc.asp" -->
	  <br /><center><input type="submit" value="Skicka / Send"> </center>
	  	  
	  </td>
    </tr>
  </form>
</table>

<%Set Recset = Server.CreateObject("ADODB.Recordset")
Sidan = Request.QueryString("next")
If Sidan = "" then 
    sida = 1 
Else 
    sida = Sidan 
End If 

With RecSet
    .CursorLocation = 3
    .CacheSize = InlaggPerSida
End With

SQL = "Select * From gastbok Order By datum desc"
RecSet.Open SQL, Conn

If RecSet.EOF Then%>
<br>
<table border="0" width="500" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td><i>Ingen har skrivit i gästboken.</i></td>
  </tr>
</table>
<%Else%>
<br>
<%With RecSet
     .MoveFirst 
     .PageSize = InlaggPerSida
     .AbsolutePage = sida
End With

Sidor =  RecSet.PageCount
If Sidor > 1 Then%>
<!--sidnummer-->
<table border="0" width="500" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #1c304b">
  <tr>
     <td valign="top" bgcolor="#d2c0c0">
     <%If (Int(sida)) > 1 Then%>
         <a href="<%=INC%>?next=<%=(Int(sida)-1)%>"><b>Previous</b></a> |
     <%Else%><%End If
     For Sid = 1 To Sidor
           If (Int(Sid)) = (Int(sida)) Then%> <b><%=FixDigits(Sid,2)%></b><%Else%> <a href="<%=INC%>?next=<%=Sid%>"><%=FixDigits(Sid,2)%></a><%End If
     Next
     If (Int(sida)) <> (Int(Sidor)) Then%>
           | <a href="<%=INC%>?next=<%=(Int(sida)+1)%>"><b>Next</b></a>
     <%Else%><%End If%>
     </td>
   </tr>
</table>
<br>
<%End If
X = 0
Do While Not RecSet.EOF And X < RecSet.PageSize%>
<!--inläggen-->
<table border="0" width="500" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #1c304b">
  <tr>
    <td bgcolor="#d2c0c0" width="400"><b><%=Recset("rubrik")%></b> | <%=Recset("namn")%></td>
	<td align="right" bgcolor="#d2c0c0" width="100"><img src="gastbok/bilder/klocka.gif" border="0" alt="<%=FormatDateTime(RecSet("datum"),2)%> (<%=FormatDateTime(RecSet("datum"),4)%>)"> <%If RecSet("url") <> "" Then%><a href="<%=RecSet("url")%>" target="_blank"><img src="gastbok/bilder/homepg.gif" border="0" alt="<%=RecSet("url")%>"></a> <%End If%><%If RecSet("mail") <> "" Then%><a href="mailto:<%=RecSet("mail")%>"><img src="gastbok/bilder/email.gif" border="0" alt="<%=RecSet("mail")%>"></a><%End If%></td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#FFFFFF" align="left"><%=smiley(Link(RecSet("msg")))%></td>
  </tr>
<%If Recset("svar") <> "" Then%>
  <tr> 
    <td colspan="2" bgcolor="#FFFFFF" align="center">
		<table><tr><td width="250" style="border-bottom: 1px solid #1c304b">&nbsp;</td></tr></table>
	</td>
  </tr> 
  <tr>
    <td colspan="2" bgcolor="#FFFFFF"><b>Svar:</b> <i><%=Replace(RecSet("svar"), vbCrLf, "<br>")%></i></td>
  </tr>
<%End If%>
</table>
<br>
<%X = X+ 1 
Recset.MoveNext
Loop
If Sidor > 1 Then%>
<!--sidnummer bottom-->
<table border="0" width="500" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #1c304b">
  <tr>
     <td valign="top" bgcolor="#d2c0c0">
     <%For Sid = 1 To Sidor
         If (Int(Sid)) = (Int(sida)) Then%><b><%=FixDigits(Sid,2)%></b><%Else%> <a href="<%=INC%>?next=<%=Sid%>"><%=FixDigits(Sid,2)%></a> <%End If
     Next%>
     </td>
   </tr>
</table>

<%End If
Recset.Close:Set Recset = Nothing
End If
conn.close:set conn=nothing

ElseIf Request.QueryString("do") = "add" Then%>
   <!-- Include file for CAPTCHA form processing -->             
   <!-- #include file="CAPTCHA/CAPTCHA_process_form.asp" -->
   <%msg = ""
   If blnCAPTCHAcodeCorrect = True Then
	   Namn       = FixSQL(Request.Form("namn"))
	   Rubrik      = FixSQL(Request.Form("rubrik"))
	   Mail          = FixSQL(Request.Form("mail"))
	   Msg	        = FixSQL(Request.Form("msg"))
	   Ip   	  = FixSQL(Request.Servervariables("REMOTE_ADDR"))
	   Url   	  = FixSQL(Request.Form("url"))
	   If Url <> "" Then
	     If Left(Url,7) = "http://" Then
	       Url = Url
	     Else
	       Url = "http://" & Url
	     End If
	   End If
	
	   Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
	   Conn.Close:Set Conn=Nothing
	   Response.Redirect INC

  ElseIf  blnCAPTCHAcodeCorrect = False Then
	  Conn.Close:Set Conn=Nothing
	  Response.write "<script language=Javascript>"
	  Response.write "alert('Wrong code.');"
	  Response.write "javascript:history.back();"
	  Response.write "</script>"
  End If
End If%>

</table>

Här kommer koden från detta dokument: (<!-- #include file="CAPTCHA/CAPTCHA_process_form.asp" --> )


%>
<script language="javaScript">
function reloadCAPTCHA() {
	document.getElementById('CAPTCHA').src='CAPTCHA/CAPTCHA_image.asp?'+Date();
}
</script>           
<table width="100%" border="0" cellspacing="0" cellpadding="2">
 <tr>
  <td width="50%" valign="top"><b>Kod:</b><br><input type="text" name="securityCode" id="securityCode" style="width:80%" class="input" maxlength="12" autocomplete="off" /></td>
  <td width="50%" valign="top"><img src="CAPTCHA/CAPTCHA_image.asp" alt="Code Image - Please contact webmaster if you have problems seeing this image code" id="CAPTCHA" />&nbsp;<a href="javascript:reloadCAPTCHA();" class="vit"><% = strTxtLoadNewCode %></a></td>
 </tr>
</table>

Det är alltså texten i ovanstående kod som syns istället för koden... (Code Image - Please contact webmaster if you have problems seeing this image code)

Medlem sedan dec. 200012 464 inlägg
#2

Flyttas från Script - ASP

Medlem sedan juni 20019 519 inlägg
#3

ser ut som du inte ha "CAPTCHA/CAPTCHA_image.asp" filen.. får "404" på bilden eller Kryss som vi alla älskar... du kör i FireFox som skriver ut texten istället för att skriva ut ett "X".

Medlem sedan sep. 2005849 inlägg
#4

Konstigt, jag har lagt ut den filen också, så det borde ju funka??

Medlem sedan juni 20019 519 inlägg
#5

vad händer om du försöker gå in på adressen CAPTCHA/CAPTCHA_image.asp kan vara ett skript fel som gör det...

Medlem sedan sep. 2005849 inlägg
#6

Tack för svar, jag uppskattar verkligen att du vill hjälpa mig!

Då visas "The page cannot be found" (404)
Jag testade att gå in på Captcha_form_inc.asp bara för att se om det skulle gå, och den visas ju...

Medlem sedan juni 20019 519 inlägg
#7

kontrollera att du har CAPATCH_image.asp på servern..

Medlem sedan sep. 2005849 inlägg
#8

Det har jag :)

Medlem sedan juni 20019 519 inlägg
#9

men du få 404 ändå? Kolla så att den inte kör någon response.redirect?

Medlem sedan sep. 2005849 inlägg
#10

...Hur gör jag det? Jag är inte så haj på sånt här... :r

Medlem sedan juni 20019 519 inlägg
#11

öppna filen... och läs igenom koden?

Medlem sedan sep. 2005849 inlägg
#12

Ok, det här står i koden till Captcha_image.asp:

'Set the buffer to true
Response.Buffer = True

'Function to send convert hex to binary output for browser
Private Function displayImage(strHexImage)

	'Dimension variables
	Dim sarryHex		'Holds each hex value in the image
	Dim lngHexArrayPosition	'Holds the array position

	'Place the Hex image into an array
	sarryHex = split(strHexImage, " ")

	'Loop through the array to convert to binary
	For lngHexArrayPosition = 0 to CLng(UBound(sarryHex))

		'Write the binary output
 		Response.BinaryWrite ChrB(CLng("&H" & sarryHex(lngHexArrayPosition)))
	Next

End Function

'Declare variables
Dim strHexImage(240,1)	'Holds the images as hex format
Dim intRandomNumber	'Used to select the security code to be used

'Set so the CAPTCHA image is not cached
Response.Expires = -1
Response.ExpiresAbsolute = Now() - 2
Response.CacheControl = "No-Store"
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"

'Set the content type for the CAPTCHA image
Response.ContentType = "image/gif"

'Array holding CAPTCHA image in hex format, stored in file so no extra components required
[en massa siffror, bla bla bla]

'Randomise the system timer
Randomize Timer

'Create random number 
intRandomNumber = CInt(Rnd * UBound(strHexImage))

'Save the CAPTCHA security code in a session variable to check against later
Session("strSecurityCode") = strHexImage(intRandomNumber,1)

'Call the function to convert hex for a binary write to clients browser
Call displayImage(strHexImage(intRandomNumber,0))

'Send buffered client response to the client
Response.Flush
Medlem sedan sep. 2005849 inlägg
#13

Någon som vet vad som kan vara problemet??

Medlem sedan sep. 2005849 inlägg
#14

Har använt en annan gästbok...

Medlem sedan juli 200012 978 inlägg
#15

Bra det behöver väl inte vara så krångligt att stoppa automatmail. En liten enkel säkehetskod på några siffror borde väl räcka!
Men bra att det har löst sig.

Medlem sedan sep. 2005849 inlägg
#16

Problemet är ju när man inte vet hur man gör. ;) Jag kan inget om asp egentligen.

Medlem sedan nov. 200810 inlägg
#17

Eller så laddar du bara ner Gruvsjö's senaste Gästbok istället :)

Medlem sedan juni 200032 967 inlägg
#18

Eller så kan du hoppa över att dra upp trådar som är så gamla så de har möglat.

299 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
164 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)