Avatar billede Slettet bruger
10. maj 2002 - 22:13 Der er 43 kommentarer og
2 løsninger

fejl ved ip

Hej eksperter....


jeg har denne i en afstemning, til at tjekke om brugeren har stemt... men lige meget hvad så bliver man redirectet ti resultat, hvad gør jeg galt ?

Dim ip
ip = request.ServerVariables("REMOTE_ADDR")
' Databaseforbindelse

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/koder/asp/afstemning/stem.mdb")
Conn.Open DSN
strSQL ="SELECT * FROM stem WHERE ip = (ip)"
set rs = conn.execute(strSQL)
if not rs.EOF then
response.redirect("/koder/asp/afstemning/stem.asp?mode=resultat")


else

mvh.
www.questis.dk
Avatar billede Slettet bruger
10. maj 2002 - 22:16 #1
fjern lige () i line:

strSQL ="SELECT * FROM stem WHERE ip = ip"
Avatar billede avlund Nybegynder
10. maj 2002 - 22:16 #2
Skal det ikke være:

strSQL ="SELECT * FROM stem WHERE ip = '" & ip & "'" ?

Just wondering...
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:17 #3
fra schulze --> har ret man bruge ike () på den måde....
Avatar billede Slettet bruger
10. maj 2002 - 22:18 #4
hjælper ikke den gør det samme...
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:18 #5
avlund --_> ikke når det har med tal og true/false at gøre..
Avatar billede Slettet bruger
10. maj 2002 - 22:20 #6
virker hveken hvis jeg fjerner () eller med den nye SQL
Avatar billede Slettet bruger
10. maj 2002 - 22:21 #7
SQL'en skal tjekke om min dim ip findes i databasen, hvis den gør skal man redirectes og hvis ikke skal den ikke gøre noget &:-D

hvis det hjælper
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:22 #8
så er det noget andet i scriptet der går galt.. kom med det..
Avatar billede Slettet bruger
10. maj 2002 - 22:23 #9
den er ikke længere:

den ser sådanne ud:
Dim ip
ip = request.ServerVariables("REMOTE_ADDR")
' Databaseforbindelse

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/koder/asp/afstemning/stem.mdb")
Conn.Open DSN
strSQL ="SELECT * FROM stem WHERE ip = '" & ip & "'"
set rs = conn.execute(strSQL)
if rs.EOF then
response.redirect("/koder/asp/afstemning/stem.asp?mode=resultat")


else

response.write "<table cellpadding='0' cellspacing='0' style='border: 1 solid #000000' width='120'>"
response.write "<tr><td colspan='2' width='100%' style='border-bottom: 1 solid #000000; padding: 2px;' bgcolor='#C0C0C0'><center><h1>Afstemning</h1></center></tr></tr>"
response.write "<tr><td colspan='2' width='100%' style='padding-left: 5px;'><h2><br>Hvad synes du om siden ?<br><br></h2></td></tr>"
response.write "<tr><td width='20px'><form action='stem.asp?mode=stem' method='post'><input type='radio' name='stem' value='1' checked='checked'></td><td><h2>Meget god</h2></td></tr>"
response.write "<tr><td><input type='radio' name='stem' value='2'></td><td><h2>God</h2></td></tr>"
response.write "<tr><td><input type='radio' name='stem' value='3'></td><td><h2>Midel</h2></td></tr>"
response.write "<tr><td><input type='radio' name='stem' value='4'></td><td><h2>Dårlig</h2></td></tr>"
response.write "<tr><td><input type='radio' name='stem' value='5'></td><td><h2>Meget dårlig</h2></td></tr>"
response.write "<tr><td colspan='2' width='100%'><center><input type='submit' value='Stem'></center></td></tr>"
response.write "<tr><td colspan='2' height='2px' width='100%'><input type='hidden' name='ip' value='"
response.write (ip)
response.write "'></form></td></tr></table>"
conn.Close
Set conn = nothing
Set SQLstmt = nothing
end if
%>
<% End if %>
Avatar billede avlund Nybegynder
10. maj 2002 - 22:24 #10
ip er da heller ikke et tal, men en streng. F.eks. 127.0.0.1 kan umuligt være andet end en streng pga. punktummerne.
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:24 #11
når ja... sorry.....
Avatar billede Slettet bruger
10. maj 2002 - 22:27 #12
har nu sat det som avlund ville:

<% else %>
<%
Dim ip
ip = request.ServerVariables("REMOTE_ADDR")
' Databaseforbindelse

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/koder/asp/afstemning/stem.mdb")
Conn.Open DSN
strSQL ="SELECT * FROM stem WHERE ip = '" & ip & "'"
set rs = conn.execute(strSQL)
if not rs.EOF then
response.redirect("/koder/asp/afstemning/stem.asp?mode=resultat")

men det gør ikke nogen forskel
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:28 #13
hvad er ip for et felt?? texst tal eller??
Avatar billede Slettet bruger
10. maj 2002 - 22:29 #14
ip er et tekst felt
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:30 #15
strSQL ="SELECT * FROM stem WHERE ip = '" & ip

prøv
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:31 #16
hvad siger det??
Avatar billede Slettet bruger
10. maj 2002 - 22:31 #17
lige fedt... den sender mig stadig til resultatet
Avatar billede avlund Nybegynder
10. maj 2002 - 22:33 #18
Det resulterer uværgeligt i en fejl. Du kan ikke sætte en apostrof foran ip i en SQL-sætning og så ikke afslutte den igen.

Har du overhovedet nogle records i databasen?
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:34 #19
tja.......jeg gå squ i seng nu... ved det ikke... har aldrig været ude for det før....
Avatar billede Slettet bruger
10. maj 2002 - 22:34 #20
ja der ligger et enkelt... men det burde jo være lige fedt, for hvis den ikke finder noget skal den jo bare skrive side ?
Avatar billede Slettet bruger
10. maj 2002 - 22:35 #21
ok... online takker for indsatsen
Avatar billede online-help.dk Nybegynder
10. maj 2002 - 22:36 #22
avlund ----> jo hvem har måske programmet længst tid...
eks:
strSQL = "Select * from " & request.Querystring("kat") & " where id=" & request.querystring("id")
Avatar billede avlund Nybegynder
10. maj 2002 - 22:42 #23
Jeg ved ikke hvem der har "programmet" længst tid. Jeg ved bare at jeg arbejder med at programmere til dagligt og får penge for det.

Jeg fangede ikke lige meningen med det sidste, men jeg er på den anden side også lidt træt.
Avatar billede avlund Nybegynder
10. maj 2002 - 22:43 #24
Men questis, havde du nogle records i databasen?
Avatar billede Slettet bruger
10. maj 2002 - 22:45 #25
jeps, et enkelt...
Avatar billede avlund Nybegynder
10. maj 2002 - 23:05 #26
Og det er din egen? Så er det da klart at den går videre, hvis du kører det fra din egen maskine...
Avatar billede Slettet bruger
10. maj 2002 - 23:08 #27
nej det er ikke min egen, det er en tilfældig jeg har skrevet.... men kan ikke lige hitt eud af om det er mig det ikke virker for:

prøve dette link:
http://www.questis.dk/koder/asp/afstemning/stem.asp

hvad sker der når du går derind ?
Avatar billede eagleeye Praktikant
10. maj 2002 - 23:10 #28
Prøv også at tjekke på BOF:

if not (rs.EOF OR rs.BOF) then
Avatar billede avlund Nybegynder
10. maj 2002 - 23:11 #29
Tjaeh, den burde jo være både BOF og EOF... hmmm...

Der sker det samme for mig, den hopper direkte videre.
Avatar billede Slettet bruger
10. maj 2002 - 23:14 #30
eagleeye>>

den hopper stadig videre... koden ser nu således ud:

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/koder/asp/afstemning/stem.mdb")
Conn.Open DSN
strSQL ="SELECT * FROM stem WHERE ip = 'request.ServerVariables(REMOTE_ADDR)'"
set rs = conn.execute(strSQL)
if not (rs.EOF OR rs.BOF)  then
response.redirect("/koder/asp/afstemning/stem.asp?mode=resultat")
end if
Avatar billede eagleeye Praktikant
10. maj 2002 - 23:16 #31
din SQL skal være:

strSQL ="SELECT * FROM stem WHERE ip = '" & request.ServerVariables(REMOTE_ADDR) & "'"
Avatar billede avlund Nybegynder
10. maj 2002 - 23:17 #32
Ja, men sådan så den også ud før?
Avatar billede eagleeye Praktikant
10. maj 2002 - 23:18 #33
Skal den hoppe til siden stemp.asp  hvis recordset'et er tomt?
Avatar billede Slettet bruger
10. maj 2002 - 23:19 #34
strSQL ="SELECT * FROM stem WHERE ip = '" & request.ServerVariables(REMOTE_ADDR) & "'"
set rs = conn.execute(strSQL)

giver denne fejl:
Expecting string input
Avatar billede avlund Nybegynder
10. maj 2002 - 23:20 #35
Ja, det er fordi REMOTE_ADDR skal være i anførselstegn:

request.ServerVariables("REMOTE_ADDR")
Avatar billede eagleeye Praktikant
10. maj 2002 - 23:20 #36
hov ja der skal " om REMOTE_ADDR:

strSQL ="SELECT * FROM stem WHERE ip = '" & request.ServerVariables("REMOTE_ADDR") & "'"
Avatar billede Slettet bruger
10. maj 2002 - 23:20 #37
altså ideen er at hvis man ikke har stemt før, skal den gå ind på siden: stem.asp

hvis man har stemt, (hvad den tjekker via det vi ikke kan få til at virke) skal man sendes til: stem.asp?mode?resultat
Avatar billede Slettet bruger
10. maj 2002 - 23:23 #38
hæ hæ.... nu tror jeg det virker &:-D gider i ikke lige et tjekke for en sikkerheds skyld på ovenstående link ?
Avatar billede Slettet bruger
10. maj 2002 - 23:32 #39
hmmmm... det tager jeg så for et nej, men er i så interreserede i at svare ?
Avatar billede avlund Nybegynder
10. maj 2002 - 23:36 #40
Den virker fino. Undskyld ventetiden, jeg havde lige en konfrontation med et kvaj på http://www.eksperten.dk/spm/209831 .
Avatar billede eagleeye Praktikant
10. maj 2002 - 23:38 #41
Ja .. et svar
Avatar billede avlund Nybegynder
10. maj 2002 - 23:39 #42
Nåeh, OK da. Hvis jeg fortjener points, altså.
Avatar billede Slettet bruger
10. maj 2002 - 23:40 #43
sikke en fin samtale i har gang i &:-D og så besøg af den venlig stemte darkside &:-D

nå men takker for hjælpen &:-D lækker fint
Avatar billede avlund Nybegynder
10. maj 2002 - 23:53 #44
Ja, nu udvikler det sig... han gider åbenbart ikke mere. Sådan er det.

No problem, skulle det være en anden gang - tak for points!
Avatar billede eagleeye Praktikant
11. maj 2002 - 00:02 #45
Ja jeg har set det ...
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