webForumDet fria alternativet

Ännu en fråga

ASP

7 svar · 203 visningar · startad av ReloadMaster

Medlem sedan aug. 2001239 inlägg
Frågan#1

Tjena!
Vad betdyder detta:
Request-objekt fel 'ASP 0105 : 80004005'

Indexet ligger utanför intervallet

/asp/scripts/ccommunity/community_kompisar.asp, rad 90

Ett matrisindex ligger utanför intervallet.

Rad 56 - 96

<% 
If Request.Querystring("kompis") = "kontroll" Then

SQL = "SELECT VID FROM kompisar"
Set RecSet4 = Connect.Execute(SQL)

Do until RecSet4.EOF

If RecSet4("VID") = Request.QueryString("KID") Then

Response.Redirect "community_kompisar.asp?ID="&ID&""

RecSet4.Close

Else

Response.Redirect "community_kompisar.asp?ID="&ID&"&KID="&Request.Querystring(KID)&"&kompis=kontroll2"

End If

RecSet.MoveNext

Loop
End If

If Request.Querystring("kompis") = "kontroll2" Then

%>
<b>Du kan inte lägga till dig själv på din kompis lista</b>
<%

Else

Response.Redirect "community_kompisar.asp?ID="&ID&"&KID="&KID&"&kompis=ny"

End If
End If
%>

------------------
Das Dunkhopf...

Medlem sedan juni 200032 967 inlägg
#2

Du har glömt citationstecken.

Request.Querystring("KID")

Mvh,

------------------
All your base are belong to me.

Medlem sedan aug. 2001239 inlägg
#3

Jag skulle behöva hjälp med denna kod:

<% Response.Buffer = True %>
<% ID = Request.Querystring("ID")%>
<% KID = Request.Querystring("KID")%>
<html>
<head>
<title>Community - _ _ _ _ _ _.nu</title>
</head>
<body>

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("communitydb.mdb")

SQL = "SELECT * FROM medlemmar WHERE ID="&ID&""
Set RecSet = Connect.Execute(SQL)

an = RecSet("anvandarnamn")
%>

<a href="community.asp?ID<% =ID%>">Startsida</a>
 <a href="community_medlem.asp?ID=<%= ID%>&KID=<% =ID%>">Din profil</a>
 <a href="community_gastbok.asp?ID=<%= ID%>&anvandare=<% =an%>">Din Gästbok</a>
 Dina kompisar
 <a href="community_medlemmar.asp?ID=<%= ID%>">Medlemmar</a>
 <a href="community_meddelanden.asp?ID=<% =ID%>">Meddelanden</a>
 <a href="community_forum.asp?ID=<% =ID%>">Forum</a>
 <a href="community_andra.asp?ID=<%= ID%>">Ändra Uppgifter</a>
<p><p>
<b><% =an%>'s Kompisar:</b><p><p><br>

<%
SQL = "SELECT VID FROM kompisar WHERE DID='"&RecSet("ID")&"'"
Set RecSet2 = Connect.Execute(SQL) 
If RecSet2.EOF Then
%> 
<% =an%> har inga kompisar just nu 
<%
Else 
%>
Användarnamn:<p>
<%
Do Until RecSet2.EOF
VID = Recset2("VID")
SQL = "SELECT * FROM medlemmar WHERE ID="&VID&""
Set RecSet3 = Connect.Execute(SQL)
KID = Recset3("ID")
anvnamn = RecSet3("anvandarnamn")
%> 
<a href="community_medlem.asp?ID=<% =ID%>&KID=<% =KID%>"><% =anvnamn%></a><br> 
<%
RecSet2.MoveNext 
Loop
End If
%>

<% 
If Request.Querystring("kompis") = "kontroll" Then

SQL = "SELECT VID FROM kompisar"
Set RecSet4 = Connect.Execute(SQL)

If RecSet4.EOF Then

Response.Redirect "community_kompisar.asp?ID="&ID&""

Do until RecSet4.EOF

If RecSet4("VID") = Request.QueryString("KID") Then

Response.Redirect "community_kompisar.asp?ID="&ID&""

RecSet4.Close

Else

Response.Redirect "community_kompisar.asp?ID="&ID&"&KID="&KID&"&kompis=kontroll2"

End If

RecSet4.MoveNext

Loop
End If
%>

<%
If Request.Querystring("kompis") = "kontroll2" Then
%>
<b>Du kan inte lägga till dig själv på din kompis lista</b>
<%

Else

Response.Redirect "community_kompisar.asp?ID="&ID&"&KID="&KID&"&kompis=ny"

End If
%>

<%If Request.Querystring("kompis") = "ny" Then
SpaVID = Request.Querystring("KID")
SpaDID = Request.Querystring("ID")

SQL = "Insert Into kompisar" 
SQL = SQL & "(VID,DID)"
SQL = SQL & "VALUES ('"& spaVID &"', '"& spaDID &"')"
'Response.Write" "&SQL&""
Connect.Execute(SQL)

Response.Redirect"community_kompisar.asp?ID="&ID&"&kompis=tillagd"

End If%>
<%If Request.Querystring("kompis") = "tillagd" Then%>

<p><br><p><br>
<b>Din kompis är nu tillagd!</b><br>
<a href="community_kompisar.asp?ID=<% =ID%>">Till dina kompisar!</a>

<%End If%>

<p><br><p><a href="default.asp?status=loggaut">Logga ut</a>

<%
Recset.Close
Set RecSet = Nothing
Recset2.Close
Set RecSet2 = Nothing
Connect.Close 
Set Connect = Nothing

End If
%>
</body>
</html>

Fel:
när man klickar på denna länk:
kompisar.asp?ID=6&KID=11&kompis=kontroll

Så ska koden kolla om användaren finns och om man försöker lägga till sig själv på kompislistan men efter ett tag när den håller på så blir adressen denna:

community_kompisar.asp?ID=6&KID=6&kompis=ny

Men innan var KID't = 10

så den har ändrats...

[Redigerat av ReloadMaster den 01 okt 2002]

[Redigerat av ReloadMaster den 01 okt 2001]

Medlem sedan aug. 2001239 inlägg
#4

Sedan undrar jag:

<% 
If Request.Querystring("kompis") = "kontroll" Then

SQL = "SELECT VID FROM kompisar"
Set RecSet4 = Connect.Execute(SQL)

If RecSet4.EOF Then

Response.Redirect "community_kompisar.asp?ID="&ID&""

Do until RecSet4.EOF

If RecSet4("VID") = Request.QueryString("KID") Then

Response.Redirect "community_kompisar.asp?ID="&ID&""

RecSet4.Close

Else

Response.Redirect "community_kompisar.asp?ID="&ID&"&KID="&KID&"&kompis=kontroll2"

End If

RecSet4.MoveNext

Loop
End If
%>

Letar den verkligen igenom alla poster i databsen eller måste jag flytta MoveNext högre upp?

------------------
Das Dunkhopf...

Medlem sedan aug. 2001239 inlägg
#5

Upp...

------------------
Das Dunkhopf...

Medlem sedan aug. 2001239 inlägg
#6

.

------------------
Das Dunkhopf...

Medlem sedan feb. 20012 412 inlägg
#7

Hej ReloadMaster!

I denna tråden samt i följande tråd:
http://cgi.webforum.nu/wf/Forum11/HTML/006555.html

Har du postat 4 inlägg med enbart punkter för att du ska stå högst upp i forumet.

Jag tvivlar på att någon svarar fortare på din fråga bara för du flyttar upp dina inlägg med hjälp av innehållslösa inlägg. Som moderator ber jag dig att sluta med dessa inläggspostningar omgående. Jag är också övertygad om att du får hjälp om det är någon som läst och kan svara på ditt inlägg.

Tack på förhand!

Vänligen Jörgen :)
Moderator wF

------------------
Varför bråka när man kan kramas?

Medlem sedan dec. 200012 464 inlägg
#8

Din kod är svår att felsöka på grund av att den är så ostrukturerad.

Det blir lättare om du försöker hålla varje funktion för sig i
en egen sub och styr det genom att skicka en funktionskod i querystringen

sub showFriends(connection,id,byRef action)
'kod
end sub

sub addFriend(connection,id,kid,byRef action)
'kod
end sub

sub init ()
'skriv ut initial page
end sub

'fler funktioner

'main function
'skriv ut gemensamt innehåll

set connect = server.createobject("adodb.connection")
connect.open "dsn"

select case request.querystring("operation")
  case "showFriends" 
       call showFriend(connection,request.queryString("ID"),action)
  case "addFriend"
       call addFriend(connection,request.queryString("ID"),request.queryString("KID"),action)
'fler fall
  case else
       call init()
  end select
connect.close
response.redirect action

En annan sak du bör undvika är konstruktioner som

sql = "select * from medlemmar"
set rs = connect.execute(sql)
do until rs.eof
if rs("ID") = KID then
   response.redirect "somepage"
end if
rs.movenext
loop
response.write "Det fanns ingen post"

Det är mycket effektivare att skriva det som

sql = "select * from medlemmar where id = '" & KID & "'"
set rs = connect.execute(sql)
if rs.eof then
   response.write "Det fanns ingen post"
else
   action = "somepage"
end if
rs.close
response.redirect action

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 02 okt 2001]

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)