webForumDet fria alternativet

Förhindra multisändning av meddelande....

ASP

10 svar · 234 visningar · startad av Harback

Medlem sedan juni 2001206 inlägg
Frågan#1

Hejsan.

Jag undrar vilket som är det bästa sättet att förhindra att besökare skickar en massa inlägg med samma innehåll (spam)?

Tänkte på cookies och sätta en expires som går ut efter ett antal sekunder men det går väl inte sätta den på mindre än en dag eller?

Tacksam för svar.

------------------
MVH
Harback

Medlem sedan dec. 19995 874 inlägg
#2

om innehållet som skickas är exakt samma som skribentens föregående inlägg så går det inte att posta...

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

Medlem sedan juni 2001206 inlägg
#3

Ska jag göra en koppling till databasen innan jag lägger in det ordentligt och kolla ifall någon post har ett exakt likadant innehåll eller?

------------------
MVH
Harback

Medlem sedan dec. 200012 464 inlägg
#4

Jo, det är ett sätt. Ett annat alternativ är att man definerar, i databasen, att vissa kolumner skall vara unika och man sedan kontrollerar vilket fel man får vid insert.

------------------
essentitia preter non sans multiplicandum

Medlem sedan aug. 20003 575 inlägg
#5

När personen skickar sitt meddelande,
så kollar först kollar du om det senaste meddelandet från honom inte är exakt likadant som det innan. såhär gör du

förts hämtar du det senaste meddelandet han skickade
antar att du använder en session som identifierare, den kallar jag Session("Id")
antar också att du har någon slags datumordning

<%
SQL = "Select * From Messages Where UsrId = '"&Session("Id")&"' Order By Datum desc;"
Set Rs = Conn.Execute
%>

Nu får du ut meddelandet som t.ex. Rs("Message")
säg att det skickade meddelandet sparas i variabeln
sMessage


If sMessage <> Rs("Message") Then
'du lägger in meddelandet eftersom det inte stämde med det andra

SQL = "Input Into messages(MessageID,HostId,RemoteID,Subject,Message,Datum)"
SQL = SQL&" Values('"&Session("Id")&"','"&sRemoteId&"','"&sSubject&"','"&sMessage&"',#"&Now()&"#)"

så det borde vara det =)

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan okt. 20005 273 inlägg
#6

SQL = "Input Into messages(MessageID,HostId,RemoteID,Subject,Message,Datum)"

??
ska det inte vara INSERT ;)

------------------
Korvfarbror--Med ring på fingret

Medlem sedan juni 2001206 inlägg
#7

Okej, tack så mycket för alla svaren!

Men är det inte bättre ur prestandasynpunkt att hämta ut enbart den senaste posten med sql-strängen

Select TOP 1 * From Messages Where UsrId = '"&Session("Id")&"' Order By Datum desc

?

------------------
MVH
Harback

Medlem sedan dec. 200012 464 inlägg
#8

Nej, men däremot så borde du skicka med message i villkoret

sql = "Select 1 From Messages " & _
"Where UsrId = '"&Session("Id")& _
"' and message = '" & sMessage & _
"' Order By Datum desc"
set rs = connect.execute(sql)
if rs.eof then
'insert data
end if

------------------
essentitia preter non sans multiplicandum

Medlem sedan aug. 20003 575 inlägg
#9

Okej, gjorde en liten tabbe där...
Insert istället för input

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan jan. 2002286 inlägg
#10

borde inte detta funka då???

SQL = "SELECT TOP 1 \* FROM gastbok where nickid like '" & request.cokkies("nickid") & "' AND inlagg = '"& request.form("inlagg") &"' ORDER by datum desc"
Set kolla = Connect.execute(SQL)
if kolla.EOF then
    skriver till databas

end if

för det gör det nämligen inte.
Det blir bara att jag inte kan ha 2 likadana inlägg i databasen..
och jag skriver inte inläggen direkt efter varandra

jag skrev
test1
test2
test1

Medlem sedan jan. 20001 372 inlägg
#11

En tanke från min sida är att man skulle kunna använda distinct() när man listar inläggen.

Detta i sig hindrar ju inte från att lägga in massa likadana inlägg men det kommer ju endast att visas ett.

------------------
// David - Probably the best guy in the world

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)