Avatar billede cavalier Nybegynder
14. september 2008 - 23:36 Der er 13 kommentarer og
1 løsning

Validering til gæstebog

Hej alle eksperter,

NU er jeg desperat, bliver overspammet i min gæstebog, det er pisse irriterende, men det ved i jo!

Jeg har brug for et valideringsfelt, eller noget der gør at man ikke umiddelbar via robot kan skrive i min gæstebog, PLS hjælp, hvad skal jeg gøre ?
Avatar billede w13 Novice
14. september 2008 - 23:45 #1
Du får brug for noget captcha til ASP (prøv Google). Det er det, der genererer et billede med nogle tegn, der skal indtastes, og det er umiddelbart den sikreste løsning.

Du kan også prøve at lave et felt, der bliver skjult med JavaScript, og hvis det er blevet udfyldt, ved du, at det er en robot, da alm. mennesker ikke kan se feltet og skrive i det. Og så kan du lade være med at gemme det.
Avatar billede w13 Novice
15. september 2008 - 08:41 #2
Eksempelvis www.tipstricks.org :)
Avatar billede j4k0b Nybegynder
15. september 2008 - 10:01 #3
En simpel måde at undgå spambots kan gøres vha. Javascript, ved at lade target-feltet stå tomt, eks.:


<script type="text/javascript">
    function submitForm(formObject, target) {
        formObject.target = target;
        formObject.submit();
    }
</script>

<form method="post" onsubmit="submitForm(this, 'skriv.asp')">
    ...
</form>
Avatar billede w13 Novice
15. september 2008 - 11:01 #4
Mener du ikke action-feltet?
Avatar billede j4k0b Nybegynder
15. september 2008 - 11:25 #5
Ups - jo, mener selvfølgelig action :-)
Avatar billede cavalier Nybegynder
15. september 2008 - 18:48 #6
Hej w13

Ser kanon ud... har prøvet at generere, men captcha virker ikke.... kan du se hvor fejlen er ??

<%
tabelnavn = "ado_indhold"

if sprog2 = "uk" then

varsql = "*" ' + uk + fælles
else

varsql = "*" ' dansk + fælles
end if

%>

<%
function TestCaptcha(byval valSession, byval valCaptcha)
    dim tmpSession
    valSession = Trim(valSession)
    valCaptcha = Trim(valCaptcha)
    if (valSession = vbNullString) or (valCaptcha = vbNullString) then
        TestCaptcha = false
    else
        tmpSession = valSession
        valSession = Trim(Session(valSession))
        Session(tmpSession) = vbNullString
        if valSession = vbNullString then
            TestCaptcha = false
        else
            valCaptcha = Replace(valCaptcha,"i","I")
            if StrComp(valSession,valCaptcha,1) = 0 then
                TestCaptcha = true
            else
                TestCaptcha = false
            end if
        end if       
    end if
end function
%>

<script language="javascript">
function RefreshImage(valImageId) {
    var objImage = document.images[valImageId];
    if (objImage == undefined) {
        return;
    }
    var now = new Date();
    objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}

function CheckFelter() {

    if(this.document.myForm.navn.value=='') {
        alert('Du skal skrive dit navn!');
            return false;
    }

    if(this.document.myForm.email.value=='') {
        alert('Du skal skrive din e-mail adresse!');
            return false;
    }

}

</script>
<%
if request.servervariables("CONTENT_LENGTH") <> 0 then 'spørger om der bliver data tilsendt
%>
<body onload="document.location='default.asp?id2=19'">
<%
tabelnavn ="ado_gaest"

'laver recordsættet til db
set opdatering = server.createobject("ADODB.recordset")
query ="select * from "& tabelnavn &""
opdatering.open query, connect, adopenstatic, adlockoptimistic

'opretter ny linie i db og indskriver tilsendt data
opdatering.addnew
opdatering("dato") = date
opdatering("navn") = trim(request.form("navn"))
opdatering("email") = trim(request.form("email"))
opdatering("www") = trim(request.form("www"))
opdatering("tekst") = trim(request.form("tekst"))
opdatering.update
opdatering.close
%>
Gæstebogen er opdateret<br><br>
Og den er ved at genloade
<%

else 'hvis der ikke bliver tilsendt data
%>

<table cellspacing="0" border="1" cellpadding="5">
<form id="myForm" name="myForm" form action="default.asp?id2=27" method="post" onSubmit="return CheckFelter()">
    <tr>
        <td colspan="2" class="header">
<% If sprog2 = "uk" then %>
<b>Write in our guestbook</b>
<% Else %>
<b>Skriv en kommentar i vores gæstebog</b>
<% End If %>
</td>
    </tr>
    <tr>
        <td class="indhold">
<% If sprog2 = "uk" then %>
Your name:&nbsp;
<% Else %>
Skriv venligst dit navn:&nbsp;
<% End If %>
</td>
    <td align="right"><input name="navn" type="text" size="75" class="adminfeltnyh"></td>   
    </tr>
    <tr>
        <td class="indhold">
<% If sprog2 = "uk" then %>
Your e-mail address:&nbsp;
<% Else %>
Din e-mail adresse:&nbsp;
<% End If %>
</td>
    <td align="right"><input name="email" type="text" size="75" class="adminfeltnyh"></td>   
    </tr>
    <tr>
        <td class="indhold">
<% If sprog2 = "uk" then %>
Your website:&nbsp;
<% Else %>
Evt. din hjemmeside:&nbsp;
<% End If %>
</td>
    <td align="right"><input name="www" type="text" size="75" class="adminfeltnyh" value="http://"></td>
    </tr>
    <tr>
        <td valign="top">
<% If sprog2 = "uk" then %>
Your comments:&nbsp;
<% Else %>
Bemærkninger til os:&nbsp;
<% End If %>
</td>
        <td align="right"><textarea name="tekst" cols="76" rows="6" class="adminfeltnyh"></textarea></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td align="right" valign="top"><a href="java script:void(0)" onclick="RefreshImage('imgCaptcha')" class="valid">
<% If sprog2 = "uk" then %>
Change image
<% Else %>
Skift kombination
<% End If %></a>&nbsp;
<img id="imgCaptcha" src="captcha.asp" />
</td>
    </tr>
        <tr>
        <td>&nbsp;</td>
        <td align="right">
<% If sprog2 = "uk" then %>
Write the characters in the image above&nbsp;
<% Else %>
Skriv ovenstående kombinationen i feltet&nbsp;&nbsp;&nbsp;
<% End If %>
<input name="captchacode" type="text" id="captchacode" size="20" class="adminfeltnyh"></td>
    </tr>
    <tr>
        <td colspan="2" align="right"><input type="reset" value=<% If sprog2 = "uk" then %>" Cancel "<% Else %>" Slet "<% End If %> class="loginknap">&nbsp;<input type="submit" name="btnTest" id="btnTest" value="Send" class="loginknap"></td>
    </tr>
  <%
    if not IsEmpty(Request.Form("btnTest")) then
        Response.Write("<tr><td colspan=""2"" align=""center"">")
        if TestCaptcha("ASPCAPTCHA", Request.Form("captchacode")) then
            Response.Write("<b style=""color:#00CC33"">The code you enter verified.</b>")
        else
            Response.Write("<b style=""color:#FF0000"">You entered the wrong code.</b>")
        end if
        Response.Write("</td></tr>" & vbCrLf)
    end if
    %>


</form>
</table>

<% end if%>
Avatar billede w13 Novice
15. september 2008 - 19:42 #7
Nej, hvor siger koden, fejlen er? :)
Avatar billede cavalier Nybegynder
15. september 2008 - 20:02 #8
den udskriver ikke fejl, det er som om den ikke når cpatcha´en... jeg kan sagtens skrive i gæstebogen uden at indskrive noget i feltet overhovedet
Avatar billede w13 Novice
15. september 2008 - 20:14 #9
Men genererer den captchaen?
Avatar billede cavalier Nybegynder
15. september 2008 - 20:18 #10
jeg kan se den... men den skal ikke valideres når jeg trykker på send... jag kan uden vider bare springe den over uden at skrive noget
Avatar billede cavalier Nybegynder
16. september 2008 - 18:54 #11
Det er som om captcha´en ikke bliver "fanget" !!!
Avatar billede w13 Novice
27. september 2008 - 13:33 #12
Du må nok bare prøve at debugge og se, hvor din kode køres, og hvor noget springes over. F.eks. ved at response.write forskellige steder i koden.
Avatar billede cavalier Nybegynder
26. november 2008 - 16:35 #13
send et svar w13.. så får du point... virker stadig ikke
Avatar billede w13 Novice
26. november 2008 - 17:32 #14
Ok.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester