Jag använder en funktion som registrerar när en medlem går in på en annan medlems sida för att visa senaste besökare. Problemet är att jag får en nolla i det fält där man ska hämta id-t för användaren som sidan man besöker tillhör. Hur ser adressen ut när du går till sidan? Om du kör en med tanke på att det har fungerat innan så är det som det ska där.....verkar som omd en bara slutade räkna poster, det är nåt med insert koden som inte får in id-t Du skriver ju ut SQL-satsen och där syns det att lUserId har värdet 0. Eftersom variabeln får sitt värde vid <b>lUserId = CLng(request("UserId"))</b> måste det vara där det är något fel (t.ex. att request("UserId") inte är satt). If not IUserID = IVisitorId then Problemet är att jag inte har varit på den koden innan och allt har funkat perfekt och den kan ju inte bara tappa ett id hur som helst Ok, men nu är det så att det inte funkar så har du provat att skriva ut vad du har i Request("UserId") Var ska jag lägga <%Response.Write(Request("UserId"))%> Eftersom det är till view.asp du försöker lagra "besöket" så är det på den sidan du ska lägga det. När jag har <%=Response.Write(Request("userID"))%> i view.asp så ser jag rätt id skrivas ut för den persons krypin jag besöker Och om du skriver Ok, då får vi backa lite. Läste din tråd på webForum också och har några frågor. den skriver ut rätt id :-) Jag har börjat misstänka att han går från formuläret till ett skript1 och sedan vidare till skript2 utan att skicka med parametrarna. kolla in webbisen.com och logga in som gäst (guest och guest)så kanske nåt klarnar :-) ser du rätt id när du besöker en användare, ser du vad det står när du besöker din sida Jag hittade in till en tjej som heter milla, medlemsnr 114. I adressraden står: Då till problemet. Jag la insert i view och allt verkar funka bra nuFår inte med ett id för senaste besökare
Så här ser koden ut:
lUserId = CLng(request("UserId")) '# krypinets ägares id
lVisitorId = CLng(session("UserId")) '# besökarens id
if not lUserId = lVisitorId then
'objConn.execute "INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(" & lUserId & "," & lVisitorId & ",#" & date & "#,#" & time & "#)"
response.write "INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(" & lUserId & "," & lVisitorId & ",#" & date & "#,#" & time & "#)"
end if
och output blir:
HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(0,1,#2004-10-26#,#17:26:52#)Sv: Får inte med ett id för senaste besökare
sida.asp?vad_står_härSv: Får inte med ett id för senaste besökare
Response.Write(request("UserId"))
vad får du då?
Tillägg:
Menar du att du har t.ex.
view.asp?userID="4"
Där har du i så fall felet.
Det ska vara
view.asp?UserId=4
Inga citattecken.Sv: Får inte med ett id för senaste besökare
så här ser det ut
guest 041022 22:23
kilju 041021 12:56
Clisa 041020 16:45
kilju 041020 16:41
Hekate 041019 22:05 Sv: Får inte med ett id för senaste besökare
Sedan reagerade jag över <b>if not lUserId = lVisitorId then</b>. Jag vet inte hur strikt VBScript är med typer, men i en del andra språk kan detta ge annat resultat än man har tänkt. Då måste man skriva
<b>if not (lUserId = lVisitorId) then</b> eller hellre <b>if lUserId <> lVisitorId then</b>Sv: Får inte med ett id för senaste besökare
är helt korrekt i VbScript.
Däremot så är det som Per säger request("UserID") som är fel på. Eftersom du skriver ut din sql-sats och värdet av IUserId är 0 så har inte databasen med problemet att göra.
Gör en Response.Write(Request("UserId")) och se vad som skrivs ut. Och ta bort citattecknen om du inte får ut något.Sv: Får inte med ett id för senaste besökare
och när jag kollar min sida (krypin) så ökar räknaren med 2 varje gångSv: Får inte med ett id för senaste besökare
Skriv även ut värdet på IUserId.
Eftersom du skriver ut din Sql-sats så har du beviset på att värdet i IUserId är 0. Nu försöker vi hitta om felet är i din Querysträng eller i CLng konverteringen.
Så är det inte snabbare om du provar istället för att säga att det funkat förut?Sv: Får inte med ett id för senaste besökare
När man klickar på en användare och kommer till view.asp?userID="siffran" så kommer man till den personens sida. När personen kollar sin sida home.asp så ska han kunna se besöket han fick...så var ska jag lägga response.writeSv: Får inte med ett id för senaste besökare
Lägg det innan lUserId = CLng(request("UserId"))Sv: Får inte med ett id för senaste besökare
är strängen view.asp?userID=144 så skrivs det ut 144 på sidan så jag får med det iafSv: Får inte med ett id för senaste besökare
<%=IUserId%>
efter lUserId = CLng(request("UserId")) så är det 0?
Så skippa i så fall CLng och använd
IUserId = Request("UserId")
BTW, du har alltså tagit bort " nu?Sv: Får inte med ett id för senaste besökare
1. Din URL är alltså view.asp?userID=144
2. <%=Request("userID")%> skriver ut 144?
3. Om du har IUserId = Request("userID") och sen <%=IUserId%> så skriver den ut 0?
Har jag missat något?
Är det någon kod däremellan som du inte skickat med ovan?
Dubbelkolla en sak. Är inte 100 att det är case-sensitive MEN, om du har userID= i din URL se till att du har Request("userID") på alla ställen där du ska använda värdet.Sv: Får inte med ett id för senaste besökare
Där skriver du att INSERT ligger i home.asp men ovan skriver du view.asp, vilket är det? Om jag surfar till en användares sida, vad är länken och vad händer i den sida som länken leder till? Om både home.asp och view.asp används, vilken sida kommer man till först, vilken sida ska lägga in i databasen?Sv: Får inte med ett id för senaste besökare
får 0 när jag skriver ut sql-satsen efter insert into, det är den nollan som ska ersättas av id-t ex.144
nu får jag
INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(,1,#2004-10-26#,#22:37:36#)
ingen nolla....ingen siffra alls :-)Sv: Får inte med ett id för senaste besökare
Sv: Får inte med ett id för senaste besökare
Sv: Får inte med ett id för senaste besökare
Sv: Får inte med ett id för senaste besökare
<b>http://www.webbisen.com/view.asp?userID=114</b>
och till höger står 114 med stora blå bokstäver.
Men om jag sedan besöker "min egen" sida, står där bara
<b>http://www.webbisen.com/home.asp</b>
i adressraden och följande SQL-sats skrivs ut på sidan:
<b>INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(,2,#2004-10-26#,#23:28:41#)</b>
dvs inget värde stoppas in för HomeUserId...
Och att HomerUserId blir tomt är inte så konstigt då ingen UserId finns i sidans (home.asp) adressrad, än mindre i den inre (i ramen) sidans (homeInfo.asp) adressrad där den verkligen behövs.
Jag föreslår att du kollar om man har skickat med UserId:
<code>
lVisitorId = CLng(session("UserId")) '# besökarens id
If Request("UserId") = "" Then
lUserId = lVisitorId
Else
lUserId = CLng(request("UserId")) '# krypinets ägares id
End If
If lUserId <> lVisitorId Then
sql = "INSERT INTO tblUsers_visitors (HomeUserId, HomeVisitorId, HomeDateVisited,HomeTimeVisited) VALUES(" & lUserId & "," & lVisitorId & ",#" & date & "#,#" & time & "#)"
'objConn.execute sql
response.write sql
End If
' Visa information om lUserId
</code>Sv: Får inte med ett id för senaste besökare
1. Varför ha både view.asp och home.asp om du har INSERT koden i home.asp?
2. Om du skickar userID till view.asp så måste du även skicka det till home.asp om du har INSERT koden där.
3. Eftersom man kommer till view.asp när man besöker någons sida så måste ju INSERT koden ligga där.
När man går till sin egen sida så är det home.asp och då ska det ju inte vara någon INSERT kod eftersom det inte är något besök som ska reggas då.
Du får se över flödet i din applikation och tänka till lite.Sv: Får inte med ett id för senaste besökare