I min chatt jag bygger publikt så initierar jag en session med användarnamnet som startar efter att man har fyllt i en textruta. Hur kontrollerar jag om en session som redan finns blir upptagen om nån annan vill logga in med samma namn?
chatten är uppbyggd så att datum, tid och meddelande ligger i db och användarnamnet finns i en session.
Hade användarnamnet kunnat ligga i en db hade jag kunnat klara det men då det är en publik chatt så kommer och går alla och mitt webhotell har tagit bort fso så jag kan inte spara användare i textfil heller
Men så länge ett användarnamn ligger i en session så kommer bara en användare(me, I and my self) kunna se användarnamnet.
Det går inte att lägga in allas användarnamn i en session och projicera de för alla.
Då är det en application och inte en session.
Men så länge ett användarnamn ligger i en session så kommer bara en användare(me, I and my self) kunna se användarnamnet.
Det går inte att lägga in allas användarnamn i en session och projicera de för alla.
Då är det en application och inte en session.
men som jag skrev så har jag ångrat mig och plockat in dem i db istället
anvnamn=request("användarnamn")
sql="select användarnamn from tabellen where användarnamn='"& anvnamn &"'"
set rs = conn.execute(sql)
if rs.eof then
'Sätt in användaren
else
'Skicka tillbaka användaren eller lägg till något på användarnamnet.
end if
set rs = nothing
anvnamn=request("användarnamn")
sql="select användarnamn from tabellen where användarnamn='"& anvnamn &"'"
set rs = conn.execute(sql)
if rs.eof then
'Sätt in användaren
else
'Skicka tillbaka användaren eller lägg till något på användarnamnet.
end if
set rs = nothing
Så här ser min kod ut:
'Sätt variabler
name=request.form("txtUsername")
SID=Session.SessionID
'Kontrollera om rutan är tom eller inte. Är den tom så skicka tillbaka med meddelande
if request.form("txtUsername")="" then
response.redirect "default.asp?error=noUsername"
else
'Annars loopa igenom alla poster för att kolla så inte samma namn förekommer fler gånger
Set rs=objConn.Execute("Select * From tblOnline")
do until rs.eof
if name = rs("username") then
response.redirect "default.asp?error=doubleName"
rs.MoveNext
Loop
end if
end if
else
'Finns namn och inga dubletter så skapa ny rad i db
SET objConn = connect()
rs = "INSERT INTO tblOnline"
rs = rs & "(sessionID, username) "
rs = rs & "VALUES("& SID &",'"& name &"')"
objConn.Execute rs
'Sätt online som True vid Inloggning
objConn.Execute("Update tblOnline SET online = True WHERE sessionID='"& SID &"'")
'Skicka vidare till chatten med inloggningsnamn
response.redirect "default1.asp?name="&name&""
Kollen för att se till att 2 användare med samma namn hindras från att logga in genomförs inte
266 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849