Avatar billede tormood Nybegynder
28. december 2003 - 21:15 Der er 12 kommentarer og
1 løsning

stemme flere ganger

Jeg har et vote system hvor man kun kan stemme en gang pr. pc på grunn av cockies. Hvordan kan jeg gjøre det slik at man kan stemme flere ganger?

Her er litt kode:

function stem(id)

  font    = "<font size='2' face='Tahoma'>"
  faktor  = 1
  barcolor = "#FF0000"

  Set RsVote = Server.CreateObject("ADODB.Connection")
  RsVote.Open "Driver={SQL Server}; Server=146.192.208.204; Database=Stord; uid=stord; pwd=Default07;"

  Sql = "Select * from vote where Id = " & id
  Set Record =  RsVote.Execute(Sql)
  If Not Record.EOF then
    If (Len(Request.Cookies("stem")(CSTR(id))))  then
      Dim Valg(9)
      valg(1) = Record("valg1")
      valg(2) = Record("valg2")
      valg(3) = Record("valg3")
      valg(4) = Record("valg4")
      valg(5) = Record("valg5")
      valg(6) = Record("valg6")
      valg(7) = Record("valg7")
      valg(8) = Record("valg8")
      valg(9) = Record("valg9")
   

      response.write font & Record("Beskrivelse")  & "<br><br>"

      Sql = "Select count(*) as Found from votesvar where VoteId = " & id
      Set Record =  RsVote.Execute(Sql)
      Ialt = Record("found")

      Response.Write "<div align='left'><table border='0'><tr>"
      For i = 1 to 9
        If valg(i) <> "" then
          Sql = "Select count(*) as Found from votesvar where VoteId = " & id & " and vote = '" & Valg(i) & "'"
          Set Record = RsVote.Execute(Sql)
          Procent = 100/Ialt * Record("Found")
          response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
      Response.Write "<br>"
      Response.Write "Basert på " & Ialt & " stemmer."    
    else
      session("retur") = Request.ServerVariables("SCRIPT_NAME")
      response.write font & Record("Beskrivelse")
      response.write "<html><head><title>Stem</title></head><body>"
      response.write "<form method='POST' action='stemreg.asp'>"
      response.write "<input type='hidden' name='Voteid' value=" & Id & ">"
      If Record("Valg1") <> "" then
        response.write "<input type='radio' value='" & Record("Valg1") & "' name='R1'>" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<input type='radio' value='" & Record("Valg2") & "' name='R1'>" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<input type='radio' value='" & Record("Valg3") & "' name='R1'>" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<input type='radio' value='" & Record("Valg4") & "' name='R1'>" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<input type='radio' value='" & Record("Valg5") & "' name='R1'>" & Record("Valg5") & "<br>"
      end if
      If Record("Valg6") <> "" then
        response.write "<input type='radio' value='" & Record("Valg6") & "' name='R1'>" & Record("Valg6") & "<br>"
      end if
      If Record("Valg7") <> "" then
        response.write "<input type='radio' value='" & Record("Valg7") & "' name='R1'>" & Record("Valg7") & "<br>"
      end if
      If Record("Valg8") <> "" then
        response.write "<input type='radio' value='" & Record("Valg8") & "' name='R1'>" & Record("Valg8") & "<br>"
      end if
      If Record("Valg9") <> "" then
        response.write "<input type='radio' value='" & Record("Valg9") & "' name='R1'>" & Record("Valg9") & "<br>"
      end if

      response.write "<p>&nbsp;<input type='submit' value='Stem' name='B1'></p>"
      response.write "</form></body></html>"
    end if
  else
    response.write font & "Fejl"
  end if

end function


%>
Avatar billede eagleeye Praktikant
28. december 2003 - 21:45 #1
Hvis den altid skal skrive det samme ud, både hvad der er stem og stemme formen så kan du slette denne linje:

If (Len(Request.Cookies("stem")(CSTR(id))))  then


Samt slette den else som er imellem diss to linjer:

    Response.Write "Basert på " & Ialt & " stemmer."   
    else  'Slettes
      session("retur") = Request.ServerVariables("SCRIPT_NAME")


Og slette det End if som er lige denne:

      response.write "</form></body></html>"
    end if  'slettes



men det skal nok også lige rettes lidt til sådan den ikke skriver <html> og <head> tags inde midt i det hele.
Men er det sådan den bare skal vise det hele?
Avatar billede tormood Nybegynder
28. december 2003 - 21:53 #2
Det hjelper ikke.

Problemet mitt er at når jeg har stemt en gang kommer bare resultatet opp når jeg går inn på siden senere. Jeg får ikke muighet til å stemme en gang til.

Slik at hvis det foreksempel er flere i en familie med en pc så kan man bare stemme en gang.

Jeg vil at man skal kunne stemme igjen neste gang man går inn på siden.
Avatar billede eagleeye Praktikant
28. december 2003 - 21:58 #3
Ja det var også meningen med den. Prøv dette så, den skulle ikke tjekke på om der er en cookie:



function stem(id)

  font    = "<font size='2' face='Tahoma'>"
  faktor  = 1
  barcolor = "#FF0000"

  Set RsVote = Server.CreateObject("ADODB.Connection")
  RsVote.Open "Driver={SQL Server}; Server=146.192.208.204; Database=Stord; uid=stord; pwd=Default07;"

  Sql = "Select * from vote where Id = " & id
  Set Record =  RsVote.Execute(Sql)
  If Not Record.EOF then
      Dim Valg(9)
      valg(1) = Record("valg1")
      valg(2) = Record("valg2")
      valg(3) = Record("valg3")
      valg(4) = Record("valg4")
      valg(5) = Record("valg5")
      valg(6) = Record("valg6")
      valg(7) = Record("valg7")
      valg(8) = Record("valg8")
      valg(9) = Record("valg9")
   
      response.write font & Record("Beskrivelse")  & "<br><br>"

      Sql = "Select count(*) as Found from votesvar where VoteId = " & id
      Set Record =  RsVote.Execute(Sql)
      Ialt = Record("found")

      Response.Write "<div align='left'><table border='0'><tr>"
      For i = 1 to 9
        If valg(i) <> "" then
          Sql = "Select count(*) as Found from votesvar where VoteId = " & id & " and vote = '" & Valg(i) & "'"
          Set Record = RsVote.Execute(Sql)
          Procent = 100/Ialt * Record("Found")
          response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
      Response.Write "<br>"
      Response.Write "Basert på " & Ialt & " stemmer."   
      session("retur") = Request.ServerVariables("SCRIPT_NAME")
      response.write font & Record("Beskrivelse")
      response.write "<form method='POST' action='stemreg.asp'>"
      response.write "<input type='hidden' name='Voteid' value=" & Id & ">"
      If Record("Valg1") <> "" then
        response.write "<input type='radio' value='" & Record("Valg1") & "' name='R1'>" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<input type='radio' value='" & Record("Valg2") & "' name='R1'>" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<input type='radio' value='" & Record("Valg3") & "' name='R1'>" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<input type='radio' value='" & Record("Valg4") & "' name='R1'>" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<input type='radio' value='" & Record("Valg5") & "' name='R1'>" & Record("Valg5") & "<br>"
      end if
      If Record("Valg6") <> "" then
        response.write "<input type='radio' value='" & Record("Valg6") & "' name='R1'>" & Record("Valg6") & "<br>"
      end if
      If Record("Valg7") <> "" then
        response.write "<input type='radio' value='" & Record("Valg7") & "' name='R1'>" & Record("Valg7") & "<br>"
      end if
      If Record("Valg8") <> "" then
        response.write "<input type='radio' value='" & Record("Valg8") & "' name='R1'>" & Record("Valg8") & "<br>"
      end if
      If Record("Valg9") <> "" then
        response.write "<input type='radio' value='" & Record("Valg9") & "' name='R1'>" & Record("Valg9") & "<br>"
      end if

      response.write "<p>&nbsp;<input type='submit' value='Stem' name='B1'></p>"
      response.write "</form>"
  else
    response.write font & "Fejl"
  end if

end function
Avatar billede tormood Nybegynder
28. december 2003 - 22:29 #4
får denne feilmeldingen:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/vote/vote/stem.inc, line 45

dette er linje 45

response.write font & Record("Beskrivelse")
Avatar billede tormood Nybegynder
28. december 2003 - 22:30 #5
dette er filen som er koblet til kanskje det ligger her?

<%

  If Request("R1") <> "" then
    Response.Cookies("stem")(Request("Voteid")) = "x"
    Response.Cookies("stem").Expires = "19-01-2038"
    Set RsVote = Server.CreateObject("ADODB.Connection")
    RsVote.Open "Driver={SQL Server}; Server=; Database=; uid=; pwd=;"
    Sql = "Insert into votesvar (Voteid, Vote) values('" & Request("Voteid") & "','" & Request("R1") & "')"
    RsVote.Execute(Sql)
  end if

  Response.redirect session("retur")
%>
Avatar billede tormood Nybegynder
28. december 2003 - 22:31 #6
fremdeles kommer bare resultatet av stmmingen opp med feilmeldingen under
Avatar billede eagleeye Praktikant
28. december 2003 - 22:35 #7
og der er en kolonne i vote som hedder  Beskrivelse?
Avatar billede tormood Nybegynder
28. december 2003 - 22:38 #8
ja, og jeg har prøvd å fjerne den men da kommer samme meldingen på neste linje med kolonne. Men uansett så får man ikke stemme på nytt med den koden.
Avatar billede eagleeye Praktikant
28. december 2003 - 22:45 #9
Arh.. den bruger samme recordset til to ting ;)
Prøv lige sådan her:


function stem(id)

  font    = "<font size='2' face='Tahoma'>"
  faktor  = 1
  barcolor = "#FF0000"

  Set RsVote = Server.CreateObject("ADODB.Connection")
  RsVote.Open "Driver={SQL Server}; Server=146.192.208.204; Database=Stord; uid=stord; pwd=Default07;"

  Sql = "Select * from vote where Id = " & id
  Set Record =  RsVote.Execute(Sql)
  If Not Record.EOF then
      Dim Valg(9)
      valg(1) = Record("valg1")
      valg(2) = Record("valg2")
      valg(3) = Record("valg3")
      valg(4) = Record("valg4")
      valg(5) = Record("valg5")
      valg(6) = Record("valg6")
      valg(7) = Record("valg7")
      valg(8) = Record("valg8")
      valg(9) = Record("valg9")
   
      response.write font & Record("Beskrivelse")  & "<br><br>"

      Sql = "Select count(*) as Found from votesvar where VoteId = " & id
      Set Record_count =  RsVote.Execute(Sql)
      Ialt = Record_count("found")

      Response.Write "<div align='left'><table border='0'><tr>"
      For i = 1 to 9
        If valg(i) <> "" then
          Sql = "Select count(*) as Found from votesvar where VoteId = " & id & " and vote = '" & Valg(i) & "'"
          Set Record_count = RsVote.Execute(Sql)
          Procent = 100/Ialt * Record_count("Found")
          response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
      Response.Write "<br>"
      Response.Write "Basert på " & Ialt & " stemmer."   
      session("retur") = Request.ServerVariables("SCRIPT_NAME")
      response.write font & Record("Beskrivelse")
      response.write "<form method='POST' action='stemreg.asp'>"
      response.write "<input type='hidden' name='Voteid' value=" & Id & ">"
      If Record("Valg1") <> "" then
        response.write "<input type='radio' value='" & Record("Valg1") & "' name='R1'>" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<input type='radio' value='" & Record("Valg2") & "' name='R1'>" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<input type='radio' value='" & Record("Valg3") & "' name='R1'>" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<input type='radio' value='" & Record("Valg4") & "' name='R1'>" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<input type='radio' value='" & Record("Valg5") & "' name='R1'>" & Record("Valg5") & "<br>"
      end if
      If Record("Valg6") <> "" then
        response.write "<input type='radio' value='" & Record("Valg6") & "' name='R1'>" & Record("Valg6") & "<br>"
      end if
      If Record("Valg7") <> "" then
        response.write "<input type='radio' value='" & Record("Valg7") & "' name='R1'>" & Record("Valg7") & "<br>"
      end if
      If Record("Valg8") <> "" then
        response.write "<input type='radio' value='" & Record("Valg8") & "' name='R1'>" & Record("Valg8") & "<br>"
      end if
      If Record("Valg9") <> "" then
        response.write "<input type='radio' value='" & Record("Valg9") & "' name='R1'>" & Record("Valg9") & "<br>"
      end if

      response.write "<p>&nbsp;<input type='submit' value='Stem' name='B1'></p>"
      response.write "</form>"
  else
    response.write font & "Fejl"
  end if

end function
Avatar billede tormood Nybegynder
28. december 2003 - 22:55 #10
Det virker på den måten at men får resultatet øverst og valgmulighetene under.

Min hensikt er at man stemmer så kommer resultatet opp. Så neste gang man kommer in på siden kan man stemme igjen. Resultatet skal ikke ligge der altid.
Avatar billede eagleeye Praktikant
28. december 2003 - 23:06 #11
Ok, så prøv sådan her:



function stem(id)

  font    = "<font size='2' face='Tahoma'>"
  faktor  = 1
  barcolor = "#FF0000"

  Set RsVote = Server.CreateObject("ADODB.Connection")
  RsVote.Open "Driver={SQL Server}; Server=146.192.208.204; Database=Stord; uid=stord; pwd=Default07;"

  Sql = "Select * from vote where Id = " & id
  Set Record =  RsVote.Execute(Sql)
  If Not Record.EOF then
    If session("retur") <> "" then
      Dim Valg(9)
      valg(1) = Record("valg1")
      valg(2) = Record("valg2")
      valg(3) = Record("valg3")
      valg(4) = Record("valg4")
      valg(5) = Record("valg5")
      valg(6) = Record("valg6")
      valg(7) = Record("valg7")
      valg(8) = Record("valg8")
      valg(9) = Record("valg9")
   

      response.write font & Record("Beskrivelse")  & "<br><br>"

      Sql = "Select count(*) as Found from votesvar where VoteId = " & id
      Set Record =  RsVote.Execute(Sql)
      Ialt = Record("found")

      Response.Write "<div align='left'><table border='0'><tr>"
      For i = 1 to 9
        If valg(i) <> "" then
          Sql = "Select count(*) as Found from votesvar where VoteId = " & id & " and vote = '" & Valg(i) & "'"
          Set Record = RsVote.Execute(Sql)
          Procent = 100/Ialt * Record("Found")
          response.write "<td>" & font & Valg(i) & "</td><td>" & font & Round(procent) & "%</td><td><hr width='" & Procent * faktor & "' size='10' align='left' color='" & barcolor & "'></td></tr>"
        end if
      Next
      Response.Write "</table></div>"
      Response.Write "<br>"
      Response.Write "Basert på " & Ialt & " stemmer."   
    else
      session("retur") = Request.ServerVariables("SCRIPT_NAME")
      response.write font & Record("Beskrivelse")
      response.write "<html><head><title>Stem</title></head><body>"
      response.write "<form method='POST' action='stemreg.asp'>"
      response.write "<input type='hidden' name='Voteid' value=" & Id & ">"
      If Record("Valg1") <> "" then
        response.write "<input type='radio' value='" & Record("Valg1") & "' name='R1'>" & Record("Valg1") & "<br>"
      end if 
      If Record("Valg2") <> "" then
        response.write "<input type='radio' value='" & Record("Valg2") & "' name='R1'>" & Record("Valg2") & "<br>"
      end if
      If Record("Valg3") <> "" then
        response.write "<input type='radio' value='" & Record("Valg3") & "' name='R1'>" & Record("Valg3") & "<br>"
      end if
      If Record("Valg4") <> "" then
        response.write "<input type='radio' value='" & Record("Valg4") & "' name='R1'>" & Record("Valg4") & "<br>"
      end if
      If Record("Valg5") <> "" then
        response.write "<input type='radio' value='" & Record("Valg5") & "' name='R1'>" & Record("Valg5") & "<br>"
      end if
      If Record("Valg6") <> "" then
        response.write "<input type='radio' value='" & Record("Valg6") & "' name='R1'>" & Record("Valg6") & "<br>"
      end if
      If Record("Valg7") <> "" then
        response.write "<input type='radio' value='" & Record("Valg7") & "' name='R1'>" & Record("Valg7") & "<br>"
      end if
      If Record("Valg8") <> "" then
        response.write "<input type='radio' value='" & Record("Valg8") & "' name='R1'>" & Record("Valg8") & "<br>"
      end if
      If Record("Valg9") <> "" then
        response.write "<input type='radio' value='" & Record("Valg9") & "' name='R1'>" & Record("Valg9") & "<br>"
      end if

      response.write "<p>&nbsp;<input type='submit' value='Stem' name='B1'></p>"
      response.write "</form></body></html>"
    end if
  else
    response.write font & "Fejl"
  end if

end function
Avatar billede tormood Nybegynder
28. december 2003 - 23:36 #12
Nå virker det, MANGE TAKK!!!

Gi et svar så får du poengene.
Avatar billede eagleeye Praktikant
28. december 2003 - 23:42 #13
Ok her et svar ;)
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