Avatar billede cronck Nybegynder
07. maj 2004 - 22:25 Der er 6 kommentarer og
2 løsninger

Min helt egen poll som tjekker om bruger har voted

Jeg har mit eget lille brugersystem hvor jeg gerne vil have at
hver bruger KUN har mulighed for at vote én gang, og indsætter
deres brugernavne i databasen serpereret med ,'er for eks. CroncK, Fætter Guf, Joachim, osv. osv.

Denne kode skulle tjekke om brugernavnet står i rækken usersvoted men den virker ikke... Hvordan gør jeg?

MyName = session("MyName")
Users = rsPolls("usersvoted")

if InStr(Users ,MyName) = "1" then
Avatar billede cronck Nybegynder
07. maj 2004 - 22:30 #1
Den skal bare tjekke om strengen fra db'en indeholder session("MyName")
Avatar billede ellebaek Nybegynder
07. maj 2004 - 22:30 #2
if InStr(Users ,MyName) > 1 then
der er allerede stemt
else
der er ikke stemt.
Avatar billede ellebaek Nybegynder
07. maj 2004 - 22:32 #3
men hvis du har 2 brugere der hedder fx.

peter
og peterjensen
vil den finde peterjensen selvom det er peter der er inde på siden..

Derfor vil jeg sige at du skulle gøre sådan her i stedet.

<%
myarr = split(Users, ", ")
for i = 0 to UBound(myarr)
if myarr(i) = MyName then
Voted = "true"
end if
next

if not Voted = "true" then
så må der stemmes..
else
der er allerede stemt
end if
%>
Avatar billede cronck Nybegynder
07. maj 2004 - 22:36 #4
Det var jo lidt derfor at jeg splitter dem med ,'er... :)
Avatar billede cronck Nybegynder
07. maj 2004 - 22:36 #5
Takker for hjælpen!
Avatar billede ellebaek Nybegynder
07. maj 2004 - 22:38 #6
Selv tak ;-)
Avatar billede cronck Nybegynder
10. maj 2004 - 14:55 #7
Hmm... Nu får jeg hele tiden fejlen:
Der opstod en Microsoft VBScript-kørselsfejl fejl '800a005e'

Null er brugt ugyldigt: 'split'

/includes/menu_right/poll.asp, linje 35

Koden jeg bruger:
<%
if session("MyName") = "" then %>
<div class="onlineusersbox">
<center>
You need to be logged<br> in to vote
</center>
</div>
<%
response.end
end if

DSNPolls = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/polls2153457")
Set ConnPolls = Server.CreateObject("ADODB.Connection")

ConnPolls.Open DSNPolls

strSQLPolls = "Select * from tbl_polls where start < now() and end > now()"
Set rsPolls = ConnPolls.Execute(strSQLPolls)

if rsPolls.EOF or rsPolls.BOF then %>
<div class="onlineusersbox">
<center>
The are currently no polls
</center>
</div>
<%
response.end
end if

if not rsPolls("usersvoted") = "" then

MyName = session("MyName")
Users = rsPolls("usersvoted")

myarr = split(Users, ", ")
for i = 0 to UBound(myarr)
if myarr(i) = MyName then
Voted = "true"
end if
next
end if

if request.querystring("vote")="now" and not Voted = "true" OR request.querystring("vote")="now" and rsPolls("usersvoted") = "" then
strSQL = "Update tbl_Polls set "

if request.form("strvote") = q1 then
  strSQL = strSQL & "[a1]=" & rsPolls("a1") +1 & ", "
else
  strSQL = strSQL & "[a2]=" & rsPolls("a2") +1 & ", "
end if
strSQL = strSQL & "usersvoted='" & session("MyName") & ", " & "' "
strSQL = strSQL & " Where Id =" & rsPolls("id")

ConnPolls.Execute(strSQL)
response.write "You have now voted!"

end if

if not Voted = "true" then
' BRUGEREN HAR IKKE VOTED %>
<div class="onlineusersbox">
<center>
<form action="/includes/menu_right/poll.asp?vote=now" method="POST"><%=rsPolls("Question")%><br>
<input type="radio" value="q1" name="strvote"><%=rsPolls("q1")%>
<input type="radio" name="strvote" value="q2"><%=rsPolls("q2")%><br>
<input type="submit" value="Vote" style="height:22px;">
</form>
</center>
</div>
<% else
' BRUGEREN HAR VOTED SÅ VIS STATESTIK
a1 = rsPolls("a1")
a2 = rsPolls("a2")
total = a1 + a2
Result1 = Round(a1 / total * 100,0)
Result2 = Round(a2 / total * 100,0)
%>
<div class="onlineusersbox">
  <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr class="tablecolumn">
      <td colspan="2" style="border-bottom: 1px solid gray;" align="center">Poll of the week</td>
    </tr>
    <tr>
      <td colspan="2" align="center"><%=rsPolls("question")%></td>
    </tr>
    <tr>
      <td width="3px"><%=rsPolls("q1")%></td>
      <td><img border="0" src="img/bar.gif" width="<%=Result1%>" height="10"><%=Result1%>%</td>
    </tr>
    <tr height="2px">
      <td colspan="2" align="center"></td>
    </tr>
    <tr>
      <td width="3px"><%=rsPolls("q2")%></td>
      <td><img border="0" src="img/bar.gif" width="<%=Result2%>" height="10"><%=Result2%>%</td>
    </tr>
    <tr height="2px">
      <td colspan="2" align="center"></td>
    </tr>
    <tr>
      <td colspan="2" align="center">Total Votes: <%=total%></td>
    </tr>
  </table>
</div>
<% end if %>
Avatar billede cronck Nybegynder
10. maj 2004 - 14:56 #8
Den gør det kun hvis en eller anden allerede har voted...
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