@nders skrev:
Vad menar du att det är för massor av konflikter?
eftersom det är olika fält typer?
43 svar · 712 visningar · startad av ptr_lks · sida 2 av 3
@nders skrev:
Vad menar du att det är för massor av konflikter?
eftersom det är olika fält typer?
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?
@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
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?
@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
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?
@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")
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.
ä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
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!
@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") = strUseredit: ok, bra att du fick det att fjungera!
men det kanske är elegantare?
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?
Jag skulle nog uppdaterat dteLastSeenOnline med något istället, typ NULL eller liknande, och sedan kört Session.Abandon.
mvh
@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"
Du kan inte uppdatera ett datumfält med en tom sträng. Uppdatera till NULL istället.
Dessutom exekverar du aldrig SQL-frågan.
bättre?
strSQL = "UPDATE chattUser SET dtelastSeeenOnline = NULL WHERE chattNamn ='" & Session("inloggningsnamn") & "'"
minCon.execute strSQL,,128
Session.Abandon
Response.Redirect "sida.html"
japp
tack för all hjälp, tevlig helg så länge oxå :birp :birp :birp :birp