webForumDet fria alternativet

hjälp med SQL efter Session("Inloggad") = rs("anvID")

43 svar · 712 visningar · startad av ptr_lks · sida 2 av 3

ptr_lksMedlem sedan juni 2005584 inlägg
#21

@nders skrev:

Vad menar du att det är för massor av konflikter?

eftersom det är olika fält typer?

@ndersMedlem sedan juni 200032 969 inlägg
#22

Byt fälttyp?
Ett tal är ett tal är ett tal.
Du lagrar alltså omväxlande tal och strängar (typ 'System') i det fältet? Finns det andra strängar än 'System' du lagrar där?
Om du nu ska lagra namn där, varför lagrar du ett ID? Borde du inte vara konsekvent och lagra chattNamn istället för chattID?

ptr_lksMedlem sedan juni 2005584 inlägg
#23

@nders skrev:

Byt fälttyp?
Ett tal är ett tal är ett tal.
Du lagrar alltså omväxlande tal och strängar (typ 'System') i det fältet? Finns det andra strängar än 'System' du lagrar där?
Om du nu ska lagra namn där, varför lagrar du ett ID? Borde du inte vara konsekvent och lagra chattNamn istället för chattID?

jag lagrar de olika chattnamnen också.
Fick ju rådet här på wf (tror det var av emission) att använda konstruktionen Session("Inloggning") = rs("chattID")
Hur får jag till det då att
den inloggades namn lagras i fältet avchattUser

  1. fältet avchattuser uppdateras med den inloggades chattnamn
  2. strSQL = "UPDATE chattUser SET dtelastSeeenOnline = #"& Now() &"# WHERE chattID =" & Session("Inloggad")
  3. den inloggades namn skrivs ut på sidan visa2.txt
@ndersMedlem sedan juni 200032 969 inlägg
#24

I koden ovan så lagrar du ju värdet i session("inloggad") i avschattuser. Session("inloggad") har du ju satt till värdet chattID från tabellen. Hur menar du att namnet lagras i avchattuser?

Men om det funkar som det ska, då har du väl inte ett problem? Eller?

ptr_lksMedlem sedan juni 2005584 inlägg
#25

@nders skrev:

I koden ovan så lagrar du ju värdet i session("inloggad") i avschattuser. Session("inloggad") har du ju satt till värdet chattID från tabellen. Hur menar du att namnet lagras i avchattuser?

Men om det funkar som det ska, då har du väl inte ett problem? Eller?

Det är just det att inte funkar helt...
I mitt exempel så skrivs

4: hej

istället för

Peter: hej

@ndersMedlem sedan juni 200032 969 inlägg
#26

Ja, och det beror på att du inte verkar ha bestämt dig för om du ska lagra id:n eller namn i fältet avchattuser. Hur ska du ha det?

ptr_lksMedlem sedan juni 2005584 inlägg
#27

@nders skrev:

Ja, och det beror på att du inte verkar ha bestämt dig för om du ska lagra id:n eller namn i fältet avchattuser. Hur ska du ha det?

jag vill lagra namn...
Men i

strSQL = "INSERT INTO chattMeddelande (avchattUser, chattText, skrivTid) VALUES ('"_
      & Session("Inloggad") & "', '" & strMessage & "', '" & Now & "');"
    minCon.Execute strSQL

får jag ej att fungera så som jag vill, dvs skriva in det namnet som koresponderar med Session("Inloggad") =rs("chattID")

@ndersMedlem sedan juni 200032 969 inlägg
#28

Ett tips då:
När inloggningen gjorts (alltså när du sätter session("inloggad")), sätt en till variabel:

session("inloggningsnamn") = rs("chattnamn")

Använd sedan den variabeln istället för session("inloggad") när du stoppar in meddelanden i chat-tabellen.

ptr_lksMedlem sedan juni 2005584 inlägg
#29

är det så här du menar
1

Call dbOpen()
strUser = replace(Request("chattNamn"), "'", "''")	
strPasw = replace(Request("chattPassword"), "'", "''")
strSQL = "SELECT * FROM chattUser WHERE chattNamn = '"_
	& strUser & "' AND chattPassword ='" & strPasw & "';"
Set rs = minCon.execute (strSQL) 

if not rs.EOF then
	strSQL = "UPDATE chattUser SET dtelastSeeenOnline = #"% Now() &"# WHERE chattNamn ='" & strUser & "'"
	minCon.execute strSQL,,128
	strSQL = "INSERT INTO chattMeddelande (avchattUser, chattText, skrivTid) VALUES ("_
    		& "'System', '<i>" & strUser & "</i> Steg in i chatten', '" & Now & "')"
    	minCon.execute strSQL,,128
	Session("Inloggad") = rs("chattID")
        [B]session("inloggningsnamn") = rs("chattnamn")[/B]
	Call dbClose()
    	Response.Redirect "chatten.asp"
else
	Call dbClose()
	Response.Redirect("error.htm")
end if
strSQL = "INSERT INTO chattMeddelande (avchattUser, chattText, skrivTid) VALUES ('"_
      & Session("inloggningsnamn") & "', '" & strMessage & "', '" & Now & "');"
    minCon.Execute strSQL

Jippie... Nu funkar det

@ndersMedlem sedan juni 200032 969 inlägg
#30

Det är så jag menar. Vad innehåller fältet chattnamn för aktuell användare då?

Eftersom du redan har användarnamnet i strUser, kan du ju lagra det värdet i en sessionsvariabel annars.

session("inloggningsnamn") = strUser

edit: ok, bra att du fick det att fjungera!

ptr_lksMedlem sedan juni 2005584 inlägg
#31

@nders skrev:

Det är så jag menar. Vad innehåller fältet chattnamn för aktuell användare då?

Eftersom du redan har användarnamnet i strUser, kan du ju lagra det värdet i en sessionsvariabel annars.

session("inloggningsnamn") = strUser

edit: ok, bra att du fick det att fjungera!

men det kanske är elegantare?

@ndersMedlem sedan juni 200032 969 inlägg
#32

Det spelar inte så stor roll, men jag hade, i ditt fall, nog gjort enl. det senare.

mvh

ptr_lksMedlem sedan juni 2005584 inlägg
#33

utloggnings- knapp

Jag startar en ny tråd.. vet inte om det är rätt/fel, men ändå
Chatten jag håller på med måste man vara inloggad för att skriva/läsa.
Jag har fixat aktiva/online med

strSQL = "SELECT * FROM chattUser WHERE dtelastSeeenOnline > #"& DateAdd("n", -1, Now())&"#"

Ovanstående fungera(iaf på ISS) om man lämnar sidan, elelr stänger fönstret mha krysset.
Jag vill även ha en utloggningsknapp. Har tänkt ha följande

Call PageAccess() 
Call dbOpen()
	strSQL = "DELETE dtelastSeenOnline FROM chattUser WHERE chattID =" & Session("Inloggad")
	minCon.execute strSQL,,128
Call dbClose()
	Response.Redirect "error.htm"

nackdelen med denna kod är att då måste man registrera sig på nytt innan man kan chatta nästa gång
Vilken lösning rekomenderar ni för detta?

@ndersMedlem sedan juni 200032 969 inlägg
#34

Jag skulle nog uppdaterat dteLastSeenOnline med något istället, typ NULL eller liknande, och sedan kört Session.Abandon.

mvh

ptr_lksMedlem sedan juni 2005584 inlägg
#35

@nders skrev:

Jag skulle nog uppdaterat dteLastSeenOnline med något istället, typ NULL eller liknande, och sedan kört Session.Abandon.

mvh

strSQL = "UPDATE chattUser SET dtelastSeeenOnline = "" WHERE chattNamn ='" & Session("inloggningsnamn") & "'"
Session.Abandon
Response.Redirect "sida.html"
@ndersMedlem sedan juni 200032 969 inlägg
#36

Du kan inte uppdatera ett datumfält med en tom sträng. Uppdatera till NULL istället.

Dessutom exekverar du aldrig SQL-frågan.

ptr_lksMedlem sedan juni 2005584 inlägg
#37

@nders skrev:

Dessutom exekverar du aldrig SQL-frågan.

Jag såg det i all hast...

ptr_lksMedlem sedan juni 2005584 inlägg
#38

bättre?

strSQL = "UPDATE chattUser SET dtelastSeeenOnline = NULL WHERE chattNamn ='" & Session("inloggningsnamn") & "'"
minCon.execute strSQL,,128

Session.Abandon
Response.Redirect "sida.html"
@ndersMedlem sedan juni 200032 969 inlägg
#39

japp

ptr_lksMedlem sedan juni 2005584 inlägg
#40

tack för all hjälp, tevlig helg så länge oxå :birp :birp :birp :birp

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)