Avatar billede malte Nybegynder
17. november 2002 - 10:39 Der er 17 kommentarer og
1 løsning

afstemning cookies eller session

Dette er en del af et afstemningsscript jeg har til mine artikler. Hvordan kan lave sådan at det ikke er muligt for et medlem at bar stemme løs for at "snyde" ?
www.counselor.dk

<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Giv din
        vurdering</b></font>
      <form name="stem" method="post" action="nyheder.asp?mode=nyhed&id=<% response.write "" & rstemp("id") & "" %>&funktion=stem">
              <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Giv
              din vurdering - optil 5 roser</font> <br>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><br>
        </font>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="27%">
              <select name="karakter">
                      <option value="1">1 rose</option>
                      <option value="2">2 roser</option>
                      <option value="3">3 roser</option>
                      <option value="4">4 roser</option>
                      <option value="5">5 roser</option>
                    </select>
            </td>
            <td width="73%">
              <input type="submit" name="submit" value="Vurder">
            </td>
          </tr>
        </table>
      </form>
Avatar billede ztyxx Nybegynder
17. november 2002 - 10:41 #1
cookies med lang holdbarhedstid, og så skal du så forny cookien hos brugeren når han/hun kommer ind på siden, kender ikke til asp, så kan derfor ikke hjælpe med at kode det
Avatar billede ztyxx Nybegynder
17. november 2002 - 10:45 #2
Avatar billede coolstar Nybegynder
17. november 2002 - 11:01 #3
problemet med cookies er at folk kan slå dem fra. men de er nemmest at bruge i dit tilfælde. overvej situationen...
Avatar billede malte Nybegynder
17. november 2002 - 11:06 #4
Hvad med at bruge session den holder jo i den tid jeg sætter den til og folk er jo logget ind når de stemmer
Avatar billede coolstar Nybegynder
17. november 2002 - 11:11 #5
ja så kan du godt bruge sessions - jeg troede ikke man loggede ind nemlig. men logger du ind starter du en session og den kan du jo bruge....
Avatar billede malte Nybegynder
17. november 2002 - 11:15 #6
Kan du give mig et eksempel hvis jeg viser dig hele scriptet? Det er langt ca. 100 linier
Avatar billede coolstar Nybegynder
17. november 2002 - 11:18 #7
nej det vil jeg ikke. jeg sidder ikke og kigger 100 linier kode igennem... desværre. men jeg kan give råd til hvordan m an gør...

jeg gør ikke sådanne ting gratis eller for point. $$ giver brød på bordet :)
Avatar billede malte Nybegynder
17. november 2002 - 11:28 #8
:-) ok kom med rådene ;-)
Avatar billede coolstar Nybegynder
17. november 2002 - 11:53 #9
du skal bruge din session til at holde styr på brugeren om ser logget ind. dvs. du laver en funktion der holder styr på hvem som har stemt. evt. lav et felt i din DB som så bliver true når man har stemt.

du laver så en sql som udtrækker afstemningen ved feltet er false ellers vises den ikke....
Avatar billede eagleeye Praktikant
17. november 2002 - 12:09 #10
Hvis du ikke vil havde folk bare stemmer løs. Så er der kun en "let" mulighed og det er cookies. Session vil kun være aktiv så længe man er på siden aå man kan bare lukke briowseren og åbne den igen så kan man stemme igen det er let at omgå sessions.

For at være 100% sikker på folk ikke åbne/lukker browseren eller sletter cookien kan du lave en tabel i databasen som gemmer om folk har stemt, eks på tabellen.:
navn: stemt
spmID  brugerID
tal    tal

Så kan du inden du viser stemme formen lave et tjek:
Set rs = Conn.Execute ("SELECT spmID FROM stemt WHERE brugerID = " & Session("userID"))
if rs.EOF then
  'Vises stemme formen

else
  Response.write "Du har stemt på det spørgsmål!"
end if
Avatar billede coolstar Nybegynder
17. november 2002 - 12:24 #11
JA  det er en fin måde at lave det på - det var også sådan jeg beskrev mit råd til ham som. jeg ville bare bruge session til at holde styr på det mens brugeren er online... eks. skal man være logget ind for at stemme. så kan man ikke bare stemme løs.....

man kan slå cookies fra i sin browser, derfor holder ideen ikke 100 %
Avatar billede malte Nybegynder
17. november 2002 - 15:07 #12
eagle eye kan du sætte det ind i denne kode for mig ??
<!--#include virtual="/dev/_header.asp"-->

<font size="3" face="Verdana, Arial, Helvetica, sans-serif">&nbsp; </font>
<table width="96%" border="0" align="center">
  <tr bgcolor="#000000">
    <td align="left" valign="top" width="150" height="3"></td>
    <td align="left" valign="top" height="3"></td>
    <td width="150" align="left" valign="top" height="3"></td>
  </tr>
  <tr>
    <td align="left" valign="top" colspan="3">
      <p>&nbsp;
      <font size="3" face="Verdana, Arial, Helvetica, sans-serif"><font face="Arial, Helvetica, sans-serif" color="#000000">
      <b><font face="Verdana, Arial, Helvetica, sans-serif">
      <%
'Åbn databasen
  Set conntemp = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/data/users.mdb") & "; UID=Administrator; PWD="
  conntemp.open DSN
  funktion=request("funktion")
mode=request("mode")
%>
      <% if funktion="stem" then %>
      <% stem1 = "SELECT * from Nyheder WHERE id=" & request("id")
    set rstemp = conntemp.execute(stem1) %>
      <% strkarakter = rstemp("Vurdering")
        strkarakter = strkarakter + Request.Form("karakter")
        strvurderinger = rstemp("AntalVurderinger")
        strvurderinger = strvurderinger + 1
        strGennemsnit = (strkarakter / strvurderinger)  %>
      <% SQLstem = "UPDATE Nyheder SET vurdering ='" & (strkarakter) & "', snit ='" & (strGennemsnit) & "', AntalVurderinger ='" & (strvurderinger) & "' WHERE id="& request("id")&" "
      conntemp.execute(sqlstem) %>
      <% end if %>
      <% if funktion="kommentar" then %>
      <%     

conntemp.execute("UPDATE nyheder SET Kommentarer = Kommentarer + 1 WHERE id="& request("id"))
%>
      <%
        strkommentar = Request.Form("kommentar")
        strkommentar = Replace(strkommentar,"'","&#39;")
        strkommentar = Replace(strkommentar,vbCRLF,"<br>")
        strnavn = Request.Form("navn")
        strnavn = Replace(strnavn,"'","&#39;")
        stremail = Request.Form("email")
        stremail = Replace(stremail,"'","&#39;")
        strartikelid = Request.Form("artikelid")
        strartikelid = strartikelid
  %>
      <% 
SQLkommentar = "INSERT INTO [kommentarer] (kommentar,navn,email,artikelid) VALUES ('" & (strkommentar) & "', '" & (strnavn) & "', '" & (stremail) & "', '" & (strartikelid) & "')"

      conntemp.execute(SQLkommentar) %>
      <% end if %>
      <%
if mode="nyhed" then %>
      <% sql = "SELECT * from Nyheder WHERE id=" & request("id")
    set rstemp = conntemp.execute(sql)
%>
      <%     

conntemp.execute("UPDATE nyheder SET count = count + 1 WHERE id="& rstemp("id"))
%>
      <% response.write "" & rstemp("overskrift") & "" %>
      </font></b></font></font>
      <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">
        <% response.write "" & rstemp("tekst") & "" %>
        </font>
      <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Skrevet af
        : <a href="nyheder.asp?mode=journalist&id=<% response.write "" & rstemp("Journalist") & "" %>">
        <% response.write "" & rstemp("Journalist") & "" %>
        </a> den
        <% response.write "" & rstemp("dato") & "" %>
        </font> <br>
        <br>
      <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Vurdering</b></font></p>
      <p>
        <% if funktion="stem" then %>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Tak for din
        stemme.</font></p>
      <p>
        <% end if %>
        <%
      intVurdering = rstemp("Vurdering")
      intAntalVurderinger = rstemp("AntalVurderinger")
If intAntalVurderinger = 0 Then %>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Denne artikel
        er endnu ikke blevet vurderet.</font><br>
        <%
      Else

        intGennemsnit = (intVurdering / intAntalVurderinger)
%>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Denne artikel
        har f&aring;et vurdering
        <% Response.Write "" & (left(intGennemsnit,4)) & "" %>
              ud af 5 roser<br>
        Den er blevet vurderet
        <% Response.Write "" & intAntalVurderinger & ""%>
        gang(e)</font>
        <% end if %>
      </p>
      <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Giv din
        vurdering</b></font>
      <form name="stem" method="post" action="nyheder.asp?mode=nyhed&id=<% response.write "" & rstemp("id") & "" %>&funktion=stem">
              <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Giv
              din vurdering - optil 5 roser</font> <br>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><br>
        </font>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="27%">
              <select name="karakter">
                      <option value="1">1 rose</option>
                      <option value="2">2 roser</option>
                      <option value="3">3 roser</option>
                      <option value="4">4 roser</option>
                      <option value="5">5 roser</option>
                    </select>
            </td>
            <td width="73%">
              <input type="submit" name="submit" value="Vurder">
            </td>
          </tr>
        </table>
      </form>
      <br>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Kommentarer</b></font>
      <p>
        <%
sqlkommentar = "SELECT * from kommentarer WHERE ArtikelID=" & request("id") & " ORDER BY dato desc"
set RS = conntemp.execute(sqlkommentar)
  If (Not RS.BOF) And (Not RS.EOF) Then
    RS.MoveFirst
    While Not RS.EOF
%>
        <font size="2" face="Verdana, Arial, Helvetica, sans-serif" >
        <% response.write "" & rs("kommentar") & "" %>
        </font> <br>
        <font size="1" face="Verdana, Arial, Helvetica, sans-serif" >skrevet af
        <a href="http://www.counselor.dk/dev/myDeV/users.asp?username=<% response.write "" & rs("Navn") & "" %>">
        <% response.write "" & rs("navn") & "" %>
        </a>


        den
        <% response.write "" & rs("dato") & "" %>
        </font>
      <p>
        <% RS.MoveNext
    Wend
  Else %>
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Der er endnu
        ikke skrevet kommentarer til denne artikel.<br>
        </font> <br>
        <%
   
  End If
%>
    <%
  if Session("devUserName") <> "" then        '<------------------- HER
%>
      <form name="kommentar" method="post" action="nyheder.asp?mode=nyhed&id=<% response.write "" & rstemp("id") & "" %>&funktion=kommentar">
        <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Kom med
        en kommentar </b></font>
        <p>
          <% if funktion="kommentar" then %>
          <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Tak for
          din kommentar </font>
        <p>
          <% end if %>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr align="left" valign="top">
            <td width="23%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Kommentar
              </font></td>
            <td width="77%">
              <textarea name="kommentar" cols="35" rows="4"></textarea>
            </td>
          </tr>
          <tr align="left" valign="top">
            <td width="23%">&nbsp;</td>
            <td width="77%">
              <input type="hidden" name="navn" size="35" value="<%=session("devusername")%>">
            </td>
          </tr>
          <tr align="left" valign="top">
            <td width="23%">&nbsp;</td>
            <td width="77%">
              <input type="hidden" name="artikelid" size="35" value="<% response.write "" & rstemp("id") & "" %>">
            </td>
          </tr>
          <tr>
            <td width="23%">&nbsp;</td>
            <td width="77%">
              <input type="submit" name="submit" value="Kommenter">
            </td>
          </tr>
        </table>
      </form>
      <div align="center">
        <% else                          '<--------------------------- HER
  Response.write "<b>Hvis du var medlem og logget ind ville du kunne skrive en kommentar</b>"
end if %>
      </div>
      <p>&nbsp;
      <p>&nbsp;
      <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
        <%       
Elseif mode="journalist" and request("id") <> "" then %>
        <% sql = "SELECT * from admin WHERE navn='" & request("id") & "'"
    set rstemp = conntemp.execute(sql)
%>
        </font><font face="Verdana, Arial, Helvetica, sans-serif" size="3"> <b>Journalist
        oplysninger</b><br>
        <br>
        </font>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="16%"><font face="Verdana, Arial, Helvetica, sans-serif" font size="2">Navn</font></td>
          <td width="84%"><font face="Verdana, Arial, Helvetica, sans-serif" font size="2">
            <% response.write "" & rstemp("navn") & "" %>
            </font></td>
        </tr>
        <tr>
          <td width="16%"><font face="Verdana, Arial, Helvetica, sans-serif" font size="2">Email</font></td>
          <td width="84%"><font face="Verdana, Arial, Helvetica, sans-serif" font size="2">
            <a href="mailto:<% response.write "" & rstemp("email") & "" %>">
            <% response.write "" & rstemp("email") & "" %>
            </a> </font></td>
        </tr>
      </table>
      <% else %>
            <p><font face="Verdana, Arial, Helvetica, sans-serif" font size="3"><b>Artikeloversigt</b></font>
              <% sql = "SELECT * from Nyheder ORDER BY id desc"
    set rstemp = conntemp.execute(sql)

    do while not (rstemp.eof or rstemp.bof)
  %>
      </p>
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="50%" colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" font size="2"><a href="nyheder.asp?mode=nyhed&id=<% response.write "" & rstemp("id") & "" %>">
            <b>
            <% response.write "" & rstemp("overskrift") & "" %>
            </b></a></font></td>
          <td width="50%" colspan="2">
            <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Skrevet
              af <a href="nyheder.asp?mode=journalist&id=<% response.write "" & rstemp("Journalist") & "" %>">
              <% response.write "" & rstemp("Journalist") & "" %>
              </a></font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
              </font> </div>
          </td>
        </tr>
        <tr>
          <td colspan="4"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            <br>
            <% 

strtekst = rstemp("tekst")
            strtekst = Replace(strtekst,"<br>"," ") %>
            <% response.write "" & (left((strtekst),70)) & "" %>.....
            <br>
            &nbsp; </font></td>
        </tr>
        <tr>
          <td width="25%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Skrevet
            den
            <% response.write "" & (left(rstemp("dato"),5)) & "" %>
            </font></td>
          <td width="25%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">L&aelig;st
            <% response.write "" & rstemp("count") & "" %> gange
            </font></td>
          <td width="25%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Karakter
            <% response.write "" & (left(rstemp("snit"),3)) & "" %>
            </font></td>
          <td width="25%"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Kommenteret
            <% response.write "" & rstemp("kommentarer") & "" %> gange
            </font></td>
        </tr>
      </table>
      <br>
      <% 
    rstemp.movenext
    loop
%>
      <% end if %>
      <%

    rstemp.close
 
     


conntemp.close
  set conntemp=nothing

%>
      <font face="Verdana, Arial, Helvetica, sans-serif">&nbsp; </font><font face="Arial, Helvetica, sans-serif">&nbsp;
      </font> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><br>
      </font><br>
    </td>
  </tr>
  <tr bgcolor="#000000">
    <td align="left" valign="top" width="150" height="3"></td>
    <td align="left" valign="top" height="3"></td>
    <td width="150" align="left" valign="top" height="3"></td>
  </tr>
</table>
<!--#include virtual="/dev/_footer.asp"-->
Avatar billede mccannon Nybegynder
17. november 2002 - 18:00 #13
umm lige en lille note til sessions..hvis cookies er slået fra og /eller at sikkerhedslevel er på normal eller højere virker sessions heller ikke, da de også lave en lille "cookie"

bare en lille fyi
Avatar billede coolstar Nybegynder
17. november 2002 - 18:27 #14
Jeg vil da lige undersøge det med cookies laves ved session. det tror jeg ikke helt er sandt. jeg har slået cookies fra i min browser og jeg kører kanon med sessions....

så den forklaring holder ikke helt ;) Nice try :)
Avatar billede malte Nybegynder
17. november 2002 - 19:02 #15
Nogen der vil lave et eksempel med mit script til mig???
Avatar billede oasen Nybegynder
20. november 2002 - 11:31 #16
Hvis klienten ikke tillader cookies, kan der heller ej sættes sessions(!), idet klienten tildeles et ID-nummer for den aktuelle session.

Dette ID-nummer vil ikke være tilgængelig på brugerens maskine som en cookie men i stedet ligge i hukommelsen.

Serveren vil ikke kunne identificere brugeren, hvis sikkerhedsniveauet er for højt og således vil både sessions og cookies ej kunne anvendes.

**************************

Hvis personen er logget ind, når der stemmes, kan du jo angive i din database, hvilke brugere, der har stemt, og hvilke der ikke har.
Således vil hver bruger kun kunne stemme een gang uanset hvad.

Hvis du insisterer på at benytte cookies, kan du få lidt inspiration her:


Response.Cookies("MinCookie")("Værdi") ' Tildeler værdi
Response.Cookies("MinCookie").Expires = Date + 365 ' Udløber om et år
Response.Cookies("MinCookie").Domain = "www.minside.dk" ' Beskyt oplysninger

Request.Cookies("MinCookie")("Værdi") ' Henter værdi
Avatar billede malte Nybegynder
07. december 2002 - 20:23 #17
ok jeg lukker
Avatar billede malte Nybegynder
07. december 2002 - 20:24 #18
1
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