webbchat
83 svar · 1 674 visningar · startad av ptr_lks
Är det svårt att bygga en bil?
En lådbil behöver inte vara så svår att bygga, men det kan vara ruskigt marigt. För att inte tala om att bygga en RR-replika med orginaldelar. ;)
Alltså, det beror på hur många som skall använda den, hur många chattrum vilken funktionalitet osv. De som vet brukar avråda ifrån att göra chattar med ASP-teknik.
Det är bättre att göra en i tex. java (inte javascript).
Det bästa tycker jag är att du skaffar en gratischatt som du kan hitta på t.ex. https://www.hotscripts.com klicka dig vidare till önskad sida.
Denna t.ex. http://www.hotscripts.com/Java/Applications/Chat_Systems/index.html
Jesper T skrev:
....Alltså, det beror på hur många som skall använda den, hur många chattrum vilken funktionalitet osv.
Alltså jag tänker mig en mycket basic chat, med ett chattrum och kansek 6 - 10 samtidig användare som max :OO
Jesper T skrev:
De som vet brukar avråda ifrån att göra chattar med ASP-teknik.
varför avråds man från detta?
Jesper T skrev:
Det är bättre att göra en i tex. java (inte javascript).
Det bästa tycker jag är att du skaffar en gratischatt som du kan hitta på t.ex. https://www.hotscripts.com klicka dig vidare till önskad sida.
Ett stort problem är att jag inte kan java alls. verkar vara en hög ambitionsnivå att lära sig java för att kunna göra en chat :stud
HEJ!
Eftersom din korspostade tråd stängdes under tiden jag skrev, svarar jag på det här. (LITE förvånad blev jag!)
1. För att underlätta kodningen, när du loggar ut, kommer du till logout.asp, som kontrollerar om session är tom (=nej) och därefter kör Abandon och redirect.
2. Nej, här finns inget som har med databas att göra.
3. Troligtvis, har ingen erfarenhet av Brinkster; koden refererar inte till global.asa i alla fall.
ptr_lks skrev:
varför avråds man från detta?
Kanske för att ASP inte är direkt optimerad för ändamålet...
Om du skall göra en chatt kan du t.ex. använda dig av en databas och en sida som ligger och uppdaterar sig kanske var 10:e skund. Formuläret du använder för att skriva in data i bör ligga i en annan frame om inte basketspelarna är snabba på tangentbordet efterssom det inskrivna försvinner när du uppdaterar sidan...
I sidan som uppdaterar hämtar du kanske de 20 senaste posterna från databasen som las till de senaste 30 minuterna... Kanske??
Redigerad: Lägg t.ex. sidan som uppdateras i en iframe och tvinga besökarna att logga in med ett valfritt användarnamn som sparas i en Session-variabel så har du din chatt... En basic men fungerande...
lilja skrev:
Kanske för att ASP inte är direkt optimerad för ändamålet...
Om du skall göra en chatt kan du t.ex. använda dig av en databas och en sida som ligger och uppdaterar sig kanske var 10:e skund. Formuläret du använder för att skriva in data i bör ligga i en annan frame om inte basketspelarna är snabba på tangentbordet efterssom det inskrivna försvinner när du uppdaterar sidan...
I sidan som uppdaterar hämtar du kanske de 20 senaste posterna från databasen som las till de senaste 30 minuterna... Kanske??
Redigerad: Lägg t.ex. sidan som uppdateras i en iframe och tvinga besökarna att logga in med ett valfritt användarnamn som sparas i en Session-variabel så har du din chatt... En basic men fungerande...
Eller varför inte en textfil med FSO, det funkar kalas i ASP, använd Remote Scripting så slipper man uppdateringsklick o sånt och flusha/töm textfilen efter XX antal inlägg.
Är det inte allt för många som ska chatta så tycker jag det är ett smart sätt.
Men det kanske var o spänna bågen :q
emil_ad skrev:
Eller varför inte en textfil med FSO, det funkar kalas i ASP, använd Remote Scripting så slipper man uppdateringsklick o sånt och flusha/töm textfilen efter XX antal inlägg.
Är det inte allt för många som ska chatta så tycker jag det är ett smart sätt.
Men det kanske var o spänna bågen :q
två fundarationer:
kan man använda din metod på Brinkster?
var kan jag läsa om din metod?
ptr_lks skrev:
två fundarationer:
kan man använda din metod på Brinkster?
var kan jag läsa om din metod?
Hmmm
Om brinkster stöder FSO eller om det föreligger några problem med just Remote Scripting där får jag nog lämna obesvarad. För att det ska fungera måste du ha en katalog med både läs- och skrivrättigheter. Detta för jag aldrig använder brinkster.
Gällande metoden med Remote Scriptning så har jag byggt ett par sådana funktioner, dock ej för publikt ändamål.
Om Remote Scripting finns det mer info via MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rmscpt/html/rmscpt.asp
Skulle gärna hjälpa dig ytterligare, men kommer du igång så posta lite kod så kanske alla här kan bistå dig.
ja textfiler är ju onekligen enklare, att jag inte tänkte på det :OO
Remote Scripting har jag inte ens hört talas om, allt lär man sig nåt nytt :bire
Hmm, FSO skall fungera även på gfratiskontot hos brinkster... Får det dock inte till att fungera... Min sökväg när jag kör Server.MapPath() verkar bli lite väl skumm...
<%
Set fs=Server.CreateObject("Scripting.FileSystemObject")
If fs.FileExists(Server.MapPath("fil.txt")) = True Then
Response.Write("File c:\winnt\cursors\3dgarro.cur exists.")
Else
Response.Write("File c:\winnt\cursors\3dgarro.cur does not exist.")
End If
set fs=nothing
%>
Returnerar:
\\genfs4\www50\dk04lich\fil.txtFile c:\winnt\cursors\3dgarro.cur does not exist.
Äh, skriptet började plötsligt fungera. Testa på och fråga om det blir problem! :)
Det finns en liten sådan chat i scriptarkivet.
http://www.webforum.nu/showthread.php?t=88696
Aha, förstår inte riktigt hur det fungerar men det verkar coolt... Dock så bygger den chatten också på att div-en uppdateras i ett visst intervall...
Rätta mig om jag har fel med t.ex. Java-chattar kan väl känna av när någon skickar något och uppdatera därefter??
vad tycker ni om koden?
<%
Set minCon = Server.CreateObject( "Adodb.Connection" )
minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\4testasp\db\chat.mdb")
strUser = replace(Request("chattnamn"), "'", "''")
strPasw = replace(Request("txtPassword"), "'", "''")
strSQL = "SELECT * FROM chattare WHERE Chattnamn = '"_
& strUser & "' AND Chattpassw ='" & strPasw & "';"
Set User = minCon.Execute(strSQL)
if not rs.EOF then
strSQL = "UPDATE chattare SET OnLine = 1 WHERE chattnamn ='" & strUser & "';"
strSQL = "INSERT INTO skickade (from, skrivet, tidpkt) VALUES ("_
& "'System', '<i>" & strUser & "</i> Steg in i chatten', '" & Now & "');"
Session("Inloggad") = User("anvID")
Response.Redirect "chat.asp"
else
Response.Redirect("error.html")
Set User = Nothing
minCon.Close
Set minCon = Nothing
end if
%>
<html>
<head>
<title>Inlogning till chatten </title>
</head>
<body bgcolor="#FFFFFF">
<center>
<P> </P>
<form method="post" action="default.asp">
<table border="0" width="200" cellspacing="1" cellpadding="4">
<tr>
<td width="20%" align="right" bgcolor="#F2B425"><b>Chattnamn:</b></td>
<td width="80%" bgcolor="#F7D53E"><input type="text" name="chattnamn" value="<%=strUser%>" size="20"></td>
</tr>
<tr>
<td width="20%" align="right" bgcolor="#F2B425"><b>Lösenord:</b></td>
<td width="80%" bgcolor="#F7D53E"><input type="password" name="txtPassword" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="2" align="center" bgcolor="#F2B425"><input type="submit" value="Klivpå" name="btnLogin"></td>
</tr>
</table>
</form>
-
kolla om chattaren är registrerad
-
uppdatera att chattaren är online
-
uppdatera mde tidpunkten då chattaren kom online
-
kommer detta funka?
-
skall det vara
UPDATE chattare SET OnLine = 1eller
UPDATE chattare SET OnLine = Jaeller
UPDATE chattare SET OnLine = True
Gid fortsättning på helgen önskar
/ptr
eller borde det vara:
]<%
Set minCon = Server.CreateObject( "Adodb.Connection" )
minCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\4testasp\db\chat.mdb")
strUser = replace(Request("chattnamn"), "'", "''")
strPasw = replace(Request("txtPassword"), "'", "''")
strSQL = "SELECT * FROM chattare WHERE Chattnamn = '"_
& strUser & "' AND Chattpassw ='" & strPasw & "';"
Set User = minCon.Execute(strSQL)
if not rs.EOF then
strSQL = "UPDATE chattare SET OnLine = 1 WHERE chattnamn ='" & strUser & "';"
[B]Set User = minCon.Execute(strSQL)[/B]
strSQL = "INSERT INTO skickade (from, skrivet, tidpkt) VALUES ("_
& "'System', '<i>" & strUser & "</i> Steg in i chatten', '" & Now & "');"
Session("Inloggad") = User("anvID")
[B]Set User = minCon.Execute(strSQL)[/B]
Response.Redirect "chat.asp"
else
Response.Redirect("error.html")
Set User = Nothing
minCon.Close
Set minCon = Nothing
end if
%>
<html>
<head>
<title>Inlogning till chatten </title>
</head>
<body bgcolor="#FFFFFF">
<center>
<P> </P>
<form method="post" action="default.asp">
<table border="0" width="200" cellspacing="1" cellpadding="4">
<tr>
<td width="20%" align="right" bgcolor="#F2B425"><b>Chattnamn:</b></td>
<td width="80%" bgcolor="#F7D53E"><input type="text" name="chattnamn" value="<%=strUser%>" size="20"></td>
</tr>
<tr>
<td width="20%" align="right" bgcolor="#F2B425"><b>Lösenord:</b></td>
<td width="80%" bgcolor="#F7D53E"><input type="password" name="txtPassword" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="2" align="center" bgcolor="#F2B425"><input type="submit" value="Klivpå" name="btnLogin"></td>
</tr>
</table>
</form>
Du måste exekvera båda SQL-frågorna, men det finns ingen anledning att skapa recordsetobjekt, eftersom du inte hämtar någon data.
minCon.Execute (strSQL)
räcker bra, eller ännu hellre:
minCon.Execute strSQL,,128
(lite snällare eftersom det varken skapas eller returneras något recordset.)
Ta en färdig istället:
http://asp.aspobjects.com/ASP_Scripts/Chat/
vad tycker ni om detta kod då?
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
if Request.Form("chattin") = "Börja chatta" Then
Set chatt = Server.CreateObject( "Adodb.Connection" )
chatt.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\4testasp\db\chat.mdb")
chatt.ConnectionString = "Data Source='" & MdbFilePath & "'"
chatt.open
strUser = replace(Request("chattnamn"), "'", "''")
strPasw = replace(Request("txtPassword"), "'", "''")
strSQL = "SELECT * FROM chattare WHERE Chattnamn = '"_
& strUser & "' AND Chattpassw ='" & strPasw & "';"
Set rs = minCon.Execute(strSQL)
if not rs.EOF then
strSQL = "UPDATE chattare SET OnLine = 1 WHERE chattnamn ='" & strUser & "';"
strSQL = "INSERT INTO skickade (from, skrivet, tidpkt) VALUES ("_
& "'System', '<i>" & strUser & "</i> Steg in i chatten', '" & Now & "');"
Session("Inloggad") = User("anvID")
rs.Close
minCon.Close
Set rs = Nothing
Set minCon = Nothing
Response.Redirect "chatt.asp"
else
rs.Close
minCon.Close
Set rs = Nothing
Set minCon = Nothing
Response.Redirect("error.htm")
end if
end if
%>
@nders skrev:
Du måste exekvera båda SQL-frågorna
Nu skapar du ju bara ett par (eller rättare sagt en, som du skriver över) variabler som råkar innehålla en SQL-fråga.
@nders skrev:
@nders skrev:
Du måste exekvera båda SQL-frågorna
.
Fattar inte riktigt hur jag skall exekvera 3 frågor :(
Det är bara att göra som när du exekverar en fråga, fast tre gånger... :0
strSQL = "UPDATE bueh"
ditt_connectionobjekt.execute strSQL,,128
strSQL = "INSERT bueh"
ditt_connectionobjekt.execute strSQL,,128
strSQL = "DELETE bueh"
ditt_connectionobjekt.execute strSQL,,128