/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Noget check om bruger har stemt!, med noge~
Fra : Thomas Brejner


Dato : 02-05-03 21:56

Jeg er ved at lave et lille stemme system men det skal jo være så
man ik kan stemme flere gange og jeg har prøvet med noget her men
det er som om den springer det hvor den checker med if over hvad
er fejlen?
<%
if request.querystring("type") = "send" then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("vits.mdb")
Conn.Open DSN

strSQL = "Select * from stemme"
Set rs = Conn.Execute(strSQL)

if request.form("navn") = rs("navn") then
response.write "Du har stemt"
else

SQL = "insert into stemme (vitsid, stjerne, navn) values ('" &
request("vitsid") & "', '" & request("stjerne") & "', '" &
request("navn") & "' )"
Conn.Execute(SQL)
response.redirect "vitsliste.asp"
end if
end if
%>

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Henrik Hejbøl Jensen (02-05-2003)
Kommentar
Fra : Henrik Hejbøl Jensen


Dato : 02-05-03 22:33


"Thomas Brejner" <brejner@grineflippet.dk> wrote in message
news:b8um0r$8io$1@sunsite.dk...
> Jeg er ved at lave et lille stemme system men det skal jo være så
> man ik kan stemme flere gange og jeg har prøvet med noget her men
> det er som om den springer det hvor den checker med if over hvad
> er fejlen?
> <%
> if request.querystring("type") = "send" then
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("vits.mdb")
> Conn.Open DSN
>
> strSQL = "Select * from stemme"
> Set rs = Conn.Execute(strSQL)


Lige nu checker du jo kun den første post i databasen... i stedet skulle du
prøve
Overvej også om du ikke skulle bruge en cookie til at checke om folk har
stemt i stedet...


Do While NOT rs.EOF OR rs.BOF
If Request.Form("navn")=rs("navn") Then
harstemt=True
End If

rs.Close
Set rs=Nothing

If harstemt=True Then
> response.write "Du har stemt"
> else
>
> SQL = "insert into stemme (vitsid, stjerne, navn) values ('" &
> request("vitsid") & "', '" & request("stjerne") & "', '" &
> request("navn") & "' )"
> Conn.Execute(SQL)
> response.redirect "vitsliste.asp"
> end if

> %>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Henrik Hejbøl Jensen (03-05-2003)
Kommentar
Fra : Henrik Hejbøl Jensen


Dato : 03-05-03 00:42


"Henrik Hejbøl Jensen" <spam@GOAWAYhbw.dk> wrote in message
news:b8uo5k$blc$1@news.cybercity.dk...
>
> "Thomas Brejner" <brejner@grineflippet.dk> wrote in message
> news:b8um0r$8io$1@sunsite.dk...
> > Jeg er ved at lave et lille stemme system men det skal jo være så
> > man ik kan stemme flere gange og jeg har prøvet med noget her men
> > det er som om den springer det hvor den checker med if over hvad
> > er fejlen?
> > <%
> > if request.querystring("type") = "send" then
> > Set Conn = Server.CreateObject("ADODB.Connection")
> > DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> > DSN = DSN & "DBQ=" & Server.MapPath("vits.mdb")
> > Conn.Open DSN
> >
> > strSQL = "Select * from stemme"
> > Set rs = Conn.Execute(strSQL)
>
>
> Lige nu checker du jo kun den første post i databasen... i stedet skulle
du
> prøve
> Overvej også om du ikke skulle bruge en cookie til at checke om folk har
> stemt i stedet...


Jøsses det var sjusket... rettelser


>
> Do While NOT rs.EOF OR rs.BOF
> If Request.Form("navn")=rs("navn") Then
> harstemt=True
> End If
rs.MoveNext
Loop
> rs.Close
> Set rs=Nothing
>
> If harstemt=True Then
> > response.write "Du har stemt"
> > else
> >
> > SQL = "insert into stemme (vitsid, stjerne, navn) values ('" &
> > request("vitsid") & "', '" & request("stjerne") & "', '" &
> > request("navn") & "' )"
> > Conn.Execute(SQL)
> > response.redirect "vitsliste.asp"
> > end if
>
> > %>
> >
> > --
> > Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
> > - Pædagogiske tutorials på dansk
> > - Kom godt i gang med koderne
> > KLIK HER! => http://www.html.dk/tutorials
>
>



Jens Gyldenkærne Cla~ (02-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-05-03 22:39

Thomas Brejner skrev:

> det er som om den springer det hvor den checker med if over hvad
> er fejlen?

Du sammenligner kun navnet med den første post i databasen.

> strSQL = "Select * from stemme"

Sætningen herover udvælger alle poster i tabellen stemme.

> Set rs = Conn.Execute(strSQL)

Nu lægges posterne i postsættet rs.

> if request.form("navn") = rs("navn") then

rs("navn") indeholder værdien af feltet "navn" for den første post
i rs - og ingen andre.

Du kan i stedet skrive din sql-sætning om så den kun leder efter
poster med det submittede navn:

strSQL = "SELECT navn FROM stemme WHERE navn = '" & _
       Request.Form("navn") & "'"

Nu behøver du ikke at tjekke om formnavnet er det samme - hvis der
er poster i rs er navnet også registreret. Du kan i stedet skrive:

Set rs = Conn.Execute (strSQL)

If Not rs.EOF Then
   ' Navnet findes i forvejen
Else
   ' O.k.
End If

NB: Ovenstående vil forhindre flere registreringer med samme navn,
men ikke registreringer med falske navne. Email-adresser kan lidt
bedre bruges - her har man bedre mulighed for at tjekke om de er
gyldige, og man kan evt. sende en bekræftelsesmail som skal
besvares før at stemmen kan godkendes.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste