Avatar billede malte Nybegynder
13. maj 2001 - 20:47 Der er 22 kommentarer og
1 løsning

1 stemme pr. dag

hvordan kan jeg omskrive det her script så \"stemmeforbuddet\" der er forbundet med ip adressen bliver ophævet efter 1 døgn??
<html>
<head>
    <link rel=\"StyleSheet\" HREF=\"surveyadmin.css\" type=\"text/css\">
    <title>Mini Survey</title>
</head>

<body bgcolor=\"#ffe4b5\">

<%
   
    lAnketID = request(\"ID\")
    lSecenekID = request(\"optSecenek\")
    UserIP = Request.ServerVariables(\"REMOTE_ADDR\")
   
    if lSecenekID = 0 then
        %>
           
            <p class=\"smalltext\">
            You should select an option.<br>
            <a href=\"<%=request(\"http_referer\")%>\">Gå tilbage</a>
        <%
        response.end
    end if

    set conn = Server.CreateObject(\"ADODB.Connection\")
    Set rs = Server.CreateObject(\"ADODB.Recordset\")
    conn.open sConnAnket
    set rs.ActiveConnection = conn
    rs.CursorType = adOpenStatic

    sSQL = \"SELECT IP FROM Answers WHERE IP =\'\" & UserIP & \"\' AND SurveyID = \" & lAnketID
    rs.Open sSQL, , , adCmdTable
   
    If rs.Eof then
   
        rs.close
        sSQL = \"SELECT SurveyID, OptionID, IP FROM Answers WHERE AnswerID = 0\"
        rs.Open sSQL, , , adCmdTable
   
        rs.AddNew
        rs(\"SurveyID\") = lAnketID
        rs(\"OptionID\") = lSecenekID
        rs(\"IP\") = UserIP
       
        rs.update
   
        rs.close
       
        %>
       
        <table border=\"0\" cellspacing=\"1\" cellpadding=\"2\" width=\"100%\" bgcolor=\"#ffe4b5\">
<tr>
    <td colspan=2 class=\"header2\">Tak fordi du tog dig tid til at deltage.</td>
</tr>


<%
    sSQL = \"SELECT COUNT(AnswerID) AS TotalAnswers From Answers WHERE SurveyID = \" & lAnketID
    rs.Open sSQL, , , adCmdTable
    lToplamOy = rs(\"TotalAnswers\")
    rs.close

    sSQL =           \"SELECT Count(Answers.OptionID) AS TotalAnswers, Options.OptionText \"
    sSQL = sSQL & \"FROM Answers INNER JOIN Options ON Answers.OptionID = Options.OptionID \"
    sSQL = sSQL & \"WHERE Answers.SurveyID=\" & lAnketID &  \" \"
    sSQL = sSQL & \"GROUP BY Options.OptionText \"
    sSQL = sSQL & \"ORDER BY Count(Answers.OptionID) DESC;\"

    rs.Open sSQL, , , adCmdTable
   
    response.write \"<tr><td colspan=2 class=\"\"header2\"\">Total \" & lToplamOy & \" votes cast.</td></tr>\"
   
    do while not rs.eof
        if lToplamOy <> 0 then
            lYuzde = (rs(\"TotalAnswers\") / lToplamOy) * 100
        else
            lYuzde = 0
        end if
       
        %>
           
            <tr>
                <td class=\"smalltext\"><%=rs(\"OptionText\")%></td>
                <td class=\"smalltext\" align=right><%=formatnumber((rs(\"TotalAnswers\")/lToplamOy)*100,2) & \"%\"%></td>
            </tr>
            <tr>
                <td class=\"smalltext\" colspan=2><img src=\"images/pb.gif\" height=8 width=<%=(lYuzde)*0.9%>%\"><img src=\"images/pbw.gif\" height=8 width=<%=(100-lYuzde)*0.9%>%\"></td>
            </tr>       
        <%
        rs.movenext
    loop

   

%>
</table>
<%Else%>
       
        <table border=\"0\" cellspacing=\"1\" cellpadding=\"2\" width=\"100%\" bgcolor=\"#ffe4b5\">
<tr>
    <td colspan=2 class=\"header2\">Desværre, kun en stemme.</td>
</tr>


<%
    rs.Close
    sSQL = \"SELECT COUNT(AnswerID) AS TotalAnswers From Answers WHERE SurveyID = \" & lAnketID
    rs.Open sSQL, , , adCmdTable
    lToplamOy = rs(\"TotalAnswers\")
    rs.close

    sSQL =           \"SELECT Count(Answers.OptionID) AS TotalAnswers, Options.OptionText \"
    sSQL = sSQL & \"FROM Answers INNER JOIN Options ON Answers.OptionID = Options.OptionID \"
    sSQL = sSQL & \"WHERE Answers.SurveyID=\" & lAnketID &  \" \"
    sSQL = sSQL & \"GROUP BY Options.OptionText \"
    sSQL = sSQL & \"ORDER BY Count(Answers.OptionID) DESC;\"

    rs.Open sSQL, , , adCmdTable
   
    response.write \"<tr><td colspan=2 class=\"\"header2\"\">Total \" & lToplamOy & \" votes cast.</td></tr>\"
   
    do while not rs.eof
        if lToplamOy <> 0 then
            lYuzde = (rs(\"TotalAnswers\") / lToplamOy) * 100
        else
            lYuzde = 0
        end if
       
        %>
           
            <tr>
                <td class=\"smalltext\"><%=rs(\"OptionText\")%></td>
                <td class=\"smalltext\" align=right><%=formatnumber((rs(\"TotalAnswers\")/lToplamOy)*100,2) & \"%\"%></td>
            </tr>
            <tr>
                <td class=\"smalltext\" colspan=2><img src=\"images/pb.gif\" height=8 width=<%=(lYuzde)*0.9%>%\"><img src=\"images/pbw.gif\" height=8 width=<%=(100-lYuzde)*0.9%>%\"></td>
            </tr>       
        <%
        rs.movenext
    loop

%>
</table>   
<%End If%>
</body>
</html>
Avatar billede milo Nybegynder
13. maj 2001 - 20:48 #1
Ja
Avatar billede egede Nybegynder
13. maj 2001 - 20:49 #2
Nu gad jeg ikke læse det hele igennem, men hvad med en cookie der sletter sig selv efter 24 timer.
Avatar billede malte Nybegynder
13. maj 2001 - 22:42 #3
Jeg tro det kører i en database. Hvis det ikke gør, hvordan laver jeg så en cookie der sletter sig selv efter 1 døgn ??
Avatar billede madrich Nybegynder
14. maj 2001 - 00:16 #4
hvis det kører med IP log(har ikke gidet læse det igennem, så) kan du smide en kolonne mere i basen hvor du ligger en værdi med datoen ind, sådan at der kan stemmes, hvis datoen ikke er den samme som request...date() --> det ville da ikke være så svært!
Avatar billede jacobchr Nybegynder
14. maj 2001 - 04:02 #5
Hvad vil du gøre hvis det er en modem bruger, som logger af internettet og en ny logger på og får tildelt samme IP , så kan han ikke stemme ?

Ville bare lige gøre opmærksom på situationen, har ingen løsning til det og derfor er dette ikke et svar.

/jacob
Avatar billede jacobchr Nybegynder
14. maj 2001 - 04:02 #6
glemte lige at skrive bag en proxy for den sags skyld ..

/jacob
Avatar billede malte Nybegynder
14. maj 2001 - 06:27 #7
Madrich Kan du lægge en kolonne mere ind hvis jeg sender dig databasen og scriptet ?
Avatar billede madrich Nybegynder
14. maj 2001 - 06:44 #8
Det kan jeg sagtens!, men jeg gider nok ikke her før omkring 14:00:) (SLEEP FUNCTION ON)

desuden ville jeg droppe det der IP-log, da det egentligt er noget lidt fjollet noget, og erstatte det med en eller anden Cookie-funktion, hvor den udløber når kl ikke er den samme dato mere (læs ved midnat:))
Avatar billede madrich Nybegynder
14. maj 2001 - 06:52 #9
http://www.eksperten.dk/spm/7500

eller bare søg på Cookie, det giver dig 10000 svar eller noget i den forretning.
Avatar billede madrich Nybegynder
14. maj 2001 - 06:53 #10
Så kan du gå ind og kalde cookie\'en istedet for et base træk extra, og det skulle efter de kloge vist nok være smart!
Avatar billede malte Nybegynder
14. maj 2001 - 22:10 #11
Madrich>>Vil du lave det hvis jeg sender dig scriptet ??
Hvis Ja hvad er din mail ?
Avatar billede egede Nybegynder
15. maj 2001 - 13:59 #12
Jeg er meget newbier i ASP, så jeg vil da gerne forsøge med det, for at få lidt træning :)

Jeg ved bare ikke hvad der skal gøres hvis cookies er slået fra. Husk også at det er muligt at slette cookies, men det er der nok ikke nogen der vil.
Avatar billede egede Nybegynder
15. maj 2001 - 14:22 #13
Håber det kan bruges, de skal lige testes først:
Til at skrive til cookien:


<%
\'Information lagres i cookien

Response.Cookies(\"afstemning\")(\"stemt\") = \"ja\"

\'Cookien får en udløbsdato -> 1 DAG <-

Response.Cookies(\"ASPprøvecookie\").Expires = Date + 1

\'Cookien skal kun kunne læses fra -> www.DITDOMAIN.DK <-

Response.Cookies(\"afstemning\").Domain = \"www.DITDOMAIN.dk\"

\'Og så hvilke undermapper den kun må læses af, fx hvis du har
\'en undermappe på en server.

Response.Cookies(\"ASPprøvecookies\").Path = \"/dinmappe\"
%>



----------> Til at læse om man har stemt <----------


<%
\'Her samles cookiens output

tekst = Request.Cookies(\"afstemning\")(\"stem\")

\'Hvis cookien har et output skrives det, husk
\'at ændre det til en \"spærrer\"

If
tekst <> \"\"
Response.Write \"Du har stemt\"
Else
Response.Write \"Bare stem løs\"

%>



Husk at ændre diverse stier og hvad der skal stå, håber det kan bruges.
Avatar billede egede Nybegynder
15. maj 2001 - 14:24 #14
FEJL:


<%
\'Her samles cookiens output

tekst = Request.Cookies(\"afstemning\")(\"stemt\")




Husk at der ikke er taget højde for om cookies er slået fra!
Avatar billede egede Nybegynder
18. maj 2001 - 15:51 #15
Kunne det bruges?
Avatar billede malte Nybegynder
18. maj 2001 - 16:03 #16
egede vil du rette det til hvis jeg sender dig scriptet ??
Avatar billede egede Nybegynder
19. maj 2001 - 22:40 #17
malte -> Systemet har allerede en der checker IP!!
Jeg prøvede at lave det med en cookie, det lykkedes ikke, sikkert fordi IP\'en bliver tjekket!

Så bare brug dokumentet:)
Avatar billede malte Nybegynder
20. maj 2001 - 07:55 #18
egede>>Så bare brug dokumentet:) ??
Kan man ikke få ip adressen i databasen til at \"udløbe\" via cookies??
Avatar billede egede Nybegynder
20. maj 2001 - 12:54 #19
cookies og Ip\'er er langt fra det samme.
Jeg har ikke acces, men jeg kunne lave det sådan at den kun checker om der er stemt via cookies.
Avatar billede malte Nybegynder
20. maj 2001 - 20:28 #20
egede>< Hvis du ville gøre det vil jeg blive glad :-)
Avatar billede malte Nybegynder
30. maj 2001 - 20:22 #21
nå
Avatar billede egede Nybegynder
30. maj 2001 - 20:24 #22
uups, undskyld havde helt glemt det...:(
Avatar billede egede Nybegynder
30. maj 2001 - 22:05 #23
Malte, kiggede lidt på den, og kunne ikke helt se hvordan den skulle ændres :(
Endnu engang undskyld for at jeg glmete at svare.
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
Kurser inden for grundlæggende programmering

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