webForumDet fria alternativet

Spam i gästboken!

ASP

20 svar · 1 162 visningar · startad av ragnared

Medlem sedan apr. 2003152 inlägg
Frågan#1

Jag undrar hur fan man ska göra för att slippa dessa obehagliga meddelande. Jag såg på en sida att dom hade ett fält där det stod vad blir 4+5 och då skulle man fylla i 9 om man fyllde i fel siffra så skickades man inte vidare. Hur gör man en sådan grej eller vet ni ett annat sätt man kan göra på för inte få det problemet??

Medlem sedan juni 20019 519 inlägg
#2

Jag hade kanske gjort något liknande:
skapa två random tal -> addera dom spara dom i Session -> Visa båda talen och be dom addera dom -> Vid postning av gästboksinlägget kontrollera det värdet du har i inputen med session värdet -> Om det stämmer då är det Ok att posta inlägget.

Medlem sedan apr. 2003152 inlägg
#3

Hur gör man ett sådant script ???

Är det någon som kan hjälpa mig med detta vet inte riktigt hur man ska göra.

Medlem sedan juni 20019 519 inlägg
#4

På din "formulär sida"

Randomize()
sngRandomValue = Round(1 * Rnd() * 10)
sngRandomValue2 = Round(1 * Rnd() * 10)
'Spara till Session
Session("<insertName>") = CInt(sngRandomValue + sngRandomValue2) ' Spara så vi vet vilket Värde det _ska_ vara på nästa sida.
Response.Write "Vad blir <strong>" & sngRandomValue & " + " & sngRandomValue2 & "</strong>? <input type=""text"" name=""sum"">"

Och när du gå till "postning sidan" gör du kontrollen:

If Session("<insertName>") = Request.Form("sum") Then
	'Jepp han räknade rätt! gör saker
Else
	'FEL!
End If

Inte testat... snabbt gjord.. kanske inte 100% men bör fungera.

Medlem sedan apr. 2003152 inlägg
#5

Vad ska jag lägga in det i min script får inte det att fungera!!!!

Jag har bifogat koderna om det är någon snäll människa som vill hjälpa mig???

Medlem sedan juni 20019 519 inlägg
#6

Har du någon erfarenhet av ASP ragnared? Det är rätt mycket kod att läsa igenom. Börja lite själv och om du får problem så finns vi på wF här för att hjälpa dig.

Medlem sedan juni 20019 519 inlägg
#7

Det är ändå fredag....

Efter:

<%If Request.Querystring("do")= "" Then%>

Så lägger du in:

Randomize()
sngRandomValue = Round(1 * Rnd() * 10)
sngRandomValue2 = Round(1 * Rnd() * 10)
'Spara till Session
Session("<insertName>") = CInt(sngRandomValue + sngRandomValue2) ' Spara så vi vet vilket Värde det _ska_ vara på nästa sida.

och ändra <insertname> till ett namn som passa dig?

Sen placera du ut:

Response.Write " <input type=""text"" name=""sum"">"

Där du vill ha den, du skriver något liknande:

    <tr> 
      <td width="183" height="38"><b><font face="Verdana" size="1">Vad blir <%= sngRandomValue %> + <%= sngRandomValue2 %>?<br>
      <input type="text" name="sum" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">
        </font>
        </b></td>
      <td width="287" height="38"><font face="Verdana" size="1">&nbsp;</font> </td>
    </tr>
    <tr>

(Du borde verkligen göra en CSS mall för det. Just nu har du hur mycket kod som gör din sida seg att ladda för en användare.

Och sist:

If Request.QueryString("do")= "jepp" Then

Efter den där gör du själva kontrollen:

If Session("<insertName>") = Request.Form("sum") Then
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas/main.mdb")

	Namn		= Request.Form("namn")
	Email		= Request.Form("email")
	Hemsida   	= Request.Form("hemsida")
	Meddelande	= Request.Form("meddelande")
	Datum		= Now

	If Hemsida <> "" Then
		If Left(Hemsida,7) = "http://" Then
			Hemsida = Hemsida
		Else
			Hemsida = "http://" & Hemsida
		End If
	End If

	SQL="Insert Into inlagg"
	SQL = SQL & "(Namn, Email, Hemsida, Meddelande, Datum)" 
	SQL = SQL & "Values('"& Namn &"','"& Email &"','"& Hemsida &"','"&Meddelande &"',#"& Datum &"#)"
	'Response.Write SQL
	Conn.Execute(SQL)

	Conn.Close
	Set Conn = Nothing
End If

Response.Redirect "gastbok.asp"

... något sådant borde fungera... ändra bara '<insertName>' till något mer passande.

Medlem sedan apr. 2003152 inlägg
#8

Jag har gjort som du visat men det blir ett fel och det är när jag fyllt i alla uppgifterna samt fyllt i tex. 1+2 att det blir 3 så kommer jag tillbaka till samma sida men det uppdateras inte ute i gästboken det jag skrivit och jag har fyllt i rätt summa oxå. Vad är det då som blir fel. sen vill jag tacka dig för all tid du lagt ner och hjälpt mig ......

Medlem sedan apr. 2003152 inlägg
#9

Här är hela scriptet igen !!!!

	
				 <% Response.Buffer = True %>

<!-- #include file="adovbs.inc" -->
<!-- #include file="installning.asp" -->
  
<script language="javascript">
	function checkForm( formular )
	{
		var tester = new formChecker( formular.name );
		tester.addCheck( CT_FILLED, 0, "namn", "Ditt kortnummer saknas!" );
		tester.addCheck( CT_FILLED, 0, "email", "Din kod på baksidan saknas!" );
		return tester.checkAll();
	}

	function checkForm2( formular )
	{
		var tester = new formChecker( formular.name );
		tester.addCheck( CT_FILLED, 0, "kortnr", "Ditt kortnummer saknas!" );
		tester.addCheck( CT_FILLED, 0, "kortnr1", "Din kod på baksidan saknas!" );
		return tester.checkAll();
	}
function foretagSubmit(form){
	var cType = form.options[form.selectedIndex].value
	var root = document.forms[0]
	var first = root.user1.value
	var second = root.user2.value
	document.location.href='login.asp?customerType='+cType+'&firstName='+first+'&lastName='+second
}
</script>
              
              
<%If Request.Querystring("do")= "" Then
 Randomize()
sngRandomValue = Round(1 * Rnd() * 10)
sngRandomValue2 = Round(1 * Rnd() * 10)
'Spara till Session
Session("<www>") = CInt(sngRandomValue + sngRandomValue2) ' Spara så vi vet vilket Värde det _ska_ vara på nästa sida.

%>           
  
  <center>  
  
  
<table border="0" width="482" height="79">
  <form method="post" action="gastbok.asp?do=jepp" name="gastbok"  onSubmit="return tecken()">

    <tr> 
      <td width="183" height="38"><b><font face="Verdana" size="1">Ditt namn:<br>
      <input type="text" name="namn" size="25" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">
        </font>
        </b></td>
      <td width="287" height="38"><b><font face="Verdana" size="1">Din e-mail:</font></b><font face="Verdana" size="1"><br>
      
      <input type="text" name="email" size="25" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">
        
        </font>
      </td>
    </tr>
    <tr> 
      <td width="183" height="38"><b><font face="Verdana" size="1">Hemsida:<br>
      
      <input type="text" name="hemsida" size="25" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">
      
        </font>
        </b></td>
      <td width="287" height="38"><font face="Verdana" size="1"><b>Vad blir <%= sngRandomValue %> + <%= sngRandomValue2 %>?</b><br>
      <input type="text" name="sum" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">
        </font>
        </b></td>
    </tr>
    <tr> 
      <td height="1" valign="middle" colspan="2" width="476"> <b><font face="Verdana" size="1">
		Meddelande:</font></b><font face="Verdana" size="1"><br>
       

<textarea name="Meddelande" cols="67" rows="9" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000"></textarea>

        </font>
      </td>
    </tr>
    <tr> 
      <td valign="top" colspan="2" height="1" width="476"> <font face="Verdana" size="1">
        <input type="image" src="images/knapp_skicka.gif"></font>
 </td>
    </tr>
  </form>
</table>
<table border="0" width="482" >
<%
Set Conn	= Server.CreateObject("ADODB.Connection")
Set Recset = Server.CreateObject("ADODB.Recordset")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas/main.mdb")

Const perSida = 4
If Request.QueryString("page") = "" then 
page = 1 
Else 
page = Request.QueryString("page") 
End If 

RecSet.CursorLocation = 3
RecSet.CacheSize = perSida

SQL = "SELECT * From inlagg Order By Datum DESC"
Recset.Open SQL, Conn, 1, 2

If RecSet.EOF Then%>
  <tr>
    <td width="476">
      ------------------------------------------------------------------------------
    </td>
  </tr>
  <tr>
    <td width="476"><i><font face="Verdana" size="1">Inget har 
	skrivit i gästboken.</font></i></td>
  </tr>

<%
Else

RecSet.MoveFirst 
RecSet.PageSize = perSida

TotalPages = RecSet.PageCount 
RecSet.AbsolutePage = page 

Count = 0 
Do While Not RecSet.EOF And Count < RecSet.PageSize 
%>

  <tr>
    <td width="476">
      ------------------------------------------------------------------------------
    </td>
  </tr>
<%If Recset("Email") <> "" Then%>
  <tr>
    <td width="476">
      <b>
      <font face="Verdana" size="1">
      Inskickat:
      </font>
 </b>
      <font face="Verdana" size="1">
      <%=FormatDateTime(Recset("Datum"),2)%> 
      av <b><a href="mailto:<%=Recset("Email")%>" onfocus=this.blur()><%=Recset("Namn")%></a></b>
      </font>
    </td>
  </tr>

<%Else%>

  <tr>
    <td width="476">

      <b>
      <font face="Verdana" size="1">

      Inskickat:
      </font>
 </b> 
      <font face="Verdana" size="1">

 <%=FormatDateTime(Recset("Datum"),2)%> 
      av <b><%=Recset("Namn")%></b>
      </font>
    </td>
  </tr>

<%End If%>
  <tr>
    <td width="476">
      <font face="Verdana" size="1">
      <%=Replace(Server.HTMLEncode(RecSet("Meddelande")), vbCrLf, "<br>" )%>
      </font>
    </td>
  </tr>
 <tr>
    <td width="476">
      <font face="Verdana" size="1">
      <%If RecSet("Hemsida") <> "" Then%>

        <a href="<%=RecSet("Hemsida")%>" target="_blank" onfocus="this.blur()"> <b>
		Hemsida:</b> </a>
      <%End If%>
      </font>
    </td>
  </tr>
		
<%
Count = Count + 1 
Recset.MoveNext
Loop
Recset.Close
Conn.Close

Set Recset = Nothing
Set Conn = Nothing

End If
%>

  <tr>
    <td width="476">
      ------------------------------------------------------------------------------<font face="Verdana" size="1"><br></font></td>
  </tr>
  <tr>
     <td valign="top" width="476">
        <font size="1">
        <font face="Verdana">
        <% 
          If TotalPages <> 1 Then
          If (Int(page)) <> 1 Then
          %>
        <a href="gastbok.asp?page=<%=(Int(page)-1)%>" onfocus="this.blur()"><b>
		« Bakåt</b></a>
          <%Else%>
          
          <%End If%>
          <%
          For Pages = 1 To TotalPages 
          %> 
          <%If (Int(Pages)) = (Int(page)) Then%><b><font color="#000000"><%=Pages%></font></b> <%Else%><a href="gastbok.asp?page=<%=Pages%>" onfocus="this.blur()"><b><%=Pages%></b></a> <%End If%><%Next%> 
          <%End If%> 

          <%
          If (Int(page)) <> (Int(TotalPages)) AND Count > 0 Then
          %>
          <a href="gastbok.asp?page=<%=(Int(page)+1)%>" onfocus="this.blur()"><b>
		Framåt »</b></a>
          <%Else%>
          
          <%End If%>
          
        </font></font>
     </td>
   </tr>
  </table>

<%End If%>

<%If Request.QueryString("do")= "jepp" Then
If Session("<www>") = Request.Form("sum") Then
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas/main.mdb")

	Namn		= Request.Form("namn")
	Email		= Request.Form("email")
	Hemsida   	= Request.Form("hemsida")
	Meddelande	= Request.Form("meddelande")
	Datum		= Now

	If Hemsida <> "" Then
		If Left(Hemsida,7) = "http://" Then
			Hemsida = Hemsida
		Else
			Hemsida = "http://" & Hemsida
		End If
	End If

	SQL="Insert Into inlagg"
	SQL = SQL & "(Namn, Email, Hemsida, Meddelande, Datum)" 
	SQL = SQL & "Values('"& Namn &"','"& Email &"','"& Hemsida &"','"&Meddelande &"',#"& Datum &"#)"
	'Response.Write SQL
	Conn.Execute(SQL)

	Conn.Close
	Set Conn = Nothing
End If

Response.Redirect "gastbok.asp"
End If%>
Medlem sedan juni 20019 519 inlägg
#10

har inte kollat igenom din kod (kan kanske göra det ikväll) men <> i din session namn behöver du inte ha... var mer att du skulle ändra <insert> till = www vet inte om det är det som är felet med... återkommer ikväll om du inte har löst det.

Medlem sedan apr. 2003152 inlägg
#11

I vilken av koderna räkna den ut att det är rätt siffra jag fyller i ?

Medlem sedan apr. 2003152 inlägg
#12

Nu har jag ändrat <> så det bara står sand i den texten inte <www> men ändå fungerar det inte....

Medlem sedan apr. 2003152 inlägg
#13

<%If Request.Querystring("do")= "" Then
Randomize()
sngRandomValue = Round(1 * Rnd() * 10)
sngRandomValue2 = Round(1 * Rnd() * 10)
'Spara till Session
Session("sand") = CInt(sngRandomValue + sngRandomValue2) ' Spara så vi vet vilket Värde det _ska_ vara på nästa sida.

<b>Vad blir <%= sngRandomValue %> + <%= sngRandomValue2 %>?</b><br>
<input type="text" name="sum" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">

<%If Request.QueryString("do")= "jepp" Then
If Session("sand") = Request.Form("sum") Then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas/main.mdb")

Medlem sedan apr. 2003152 inlägg
#14

får inte det att fungera. snyft

Medlem sedan juni 20019 519 inlägg
#15

Vad händer om du skriver efter do = jepp:

Response.Write Session("sand") & "<br>" & Request.form("sum")
Response.End
Kontrollera att Sessin och sum är samma värde..

Du får helt enkelt börja felsöka din kod. Du vet att felet är mellan första sidan och när du ska spara datan i databasen. Gör små moment och ta response.End för att se om datan du vill ha verkligen blir det.

Medlem sedan apr. 2003152 inlägg
#16

vad menar du med att session och sum är samma värde ? jag provade att lägga in det du skrev men funka inte det heller. Jag har fått sidan till att fungera som du skrev från början men den slår i från hela tiden tex om det står 3+1 och jag skriver 4 så blir det inget inlägg i gästboken så det är något mellan den kombinationen. Att den inte känner av om summan är riktig ?

Medlem sedan juni 20019 519 inlägg
#17

Kolla om Sessionen finns... som jag skrev i mitt förra inlägg...

efter
If Request.QueryString("do")= "jepp" Then

skriver du det jag skrev i inlägget ovan.

Medlem sedan apr. 2003152 inlägg
#18

Jag kommer till gästboken men den är helt tom förutom att det står 5 och sedan under 5. men inget annat står på sidan. jag fyllde i uppgifterna på sidan och vad blir 0+5 var frågan då svarade jag 5 om det har med varandra att göra annars vet jag inte vad det är för fel som jag gör.

              
<%If Request.Querystring("do")= "" Then
Randomize()
sngRandomValue = Round(1 * Rnd() * 10)
sngRandomValue2 = Round(1 * Rnd() * 10)
'Spara till Session
Session("sand") = CInt(sngRandomValue + sngRandomValue2) ' Spara så vi vet vilket Värde det _ska_ vara på nästa sida.
%>

<b>Vad blir <%= sngRandomValue %> + <%= sngRandomValue2 %>?<br>
      <input type="text" name="sum" style="font-family: Verdana; font-size: 8pt; border: 1 solid #000000">
        </b>

<%If Request.QueryString("do")= "jepp" Then
Response.Write Session("sand") & "<br>" & Request.form("sum")
Response.End
	Set Conn = Server.CreateObject("ADODB.Connection")
	Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas/main.mdb")

	Namn		= Request.Form("namn")
	Email		= Request.Form("email")
	Hemsida   	= Request.Form("hemsida")
	Meddelande	= Request.Form("meddelande")
	Datum		= Now

	If Hemsida <> "" Then
		If Left(Hemsida,7) = "http://" Then
			Hemsida = Hemsida
		Else
			Hemsida = "http://" & Hemsida
		End If

End If
	SQL="Insert Into inlagg"
	SQL = SQL & "(Namn, Email, Hemsida, Meddelande, Datum)" 
	SQL = SQL & "Values('"& Namn &"','"& Email &"','"& Hemsida &"','"&Meddelande &"',#"& Datum &"#)"
	'Response.Write SQL
	Conn.Execute(SQL)

	Conn.Close
	Set Conn = Nothing

Response.Redirect "gastbok.asp"

End If%>
Medlem sedan juni 20019 519 inlägg
#19
<%
If Request.QueryString("do")= "jepp" Then
	If CStr(Session("sand") & "") = CStr(Request.form("sum") & "") Then
		Set Conn = Server.CreateObject("ADODB.Connection")
		Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("databas/main.mdb")

		Namn		= Request.Form("namn")
		Email		= Request.Form("email")
		Hemsida   	= Request.Form("hemsida")
		Meddelande	= Request.Form("meddelande")
		Datum		= Now

		If Hemsida <> "" Then
			If Left(Hemsida,7) = "http://" Then
				Hemsida = Hemsida
			Else
				Hemsida = "http://" & Hemsida
			End If
		End If
		
		SQL="Insert Into inlagg"
		SQL = SQL & "(Namn, Email, Hemsida, Meddelande, Datum)" 
		SQL = SQL & "Values('"& Namn &"','"& Email &"','"& Hemsida &"','"&Meddelande &"',#"& Datum &"#)"
		'Response.Write SQL
		Conn.Execute(SQL)

		Conn.Close
		Set Conn = Nothing
	End If
	Response.Redirect "gastbok.asp"

End If%>
Medlem sedan apr. 2003152 inlägg
#20

Tack så mycket !!!!

Tack så himla mycket voigtann1 nu funkar det. Det är skönt att det finns så snälla människor på webforum.nu. Utan er så hade inte många som mig kommit så långt... Ha det gått och tack ännu en gång....

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)