12 messaggi dal 19 giugno 2001
Allora, ho una chat in ASP realizzata da un amico che sto studiando... ho capito quasi tutto, tranne una cosa... come faccio a fare in modo che quando tutti gli utenti si sono disconnessi dalla chat la pagina che la visualizza si svuoti?

Per completezza posto anche un po' di codice...
Dopo un semplice login ed un controllo di nome e password vengono assegnati dei cookie:

response.cookies("infoutente")("username") = objRS("user")
response.cookies("infoutente")("password") = objRS("password")
response.cookies("infoutente")("permesso") = objRS("permessi")
response.cookies("infoutente")("codice") = objRS("codice")
response.cookies("infoutente")("alt") = objRS("alt")


A questo punto gli utenti vengono indirizzati ad una pagina con frame composta da queste due pagine:

FORM.ASP
<%
if Request.QueryString("s")<>"" then
stanza=Request.QueryString("s")
end if

if Request.Form("testo")<>"" Then
testo=Request.Form("testo")
iCount=20
Do While iCount=> 1
Application("'" & stanza & "' & '"&iCount&"'") = Application("'" & stanza & "' & '"&iCount-1&"'")
iCount=iCount-1
Loop
if Request.Cookies("infoutente").HasKeys then
images=" <img border='0' src='images/"&request.cookies("infoutente")("codice")&".gif' alt='"&request.cookies("infoutente")("alt")&"'>"
else
images=" <img border='0' src='images/0.gif'>"
End if

ore=Hour(time)
if ore<10 then
ore="0"&ore
End if
minuti=Minute(time)
if minuti<10 then
minuti="0"&minuti
End if
tempo="<font size=1 face='Verdana' color='red'><b>"&ore&":"&minuti&"</b></font> "

testo=Server.HTMLEncode(testo)

cercacod = InStr(testo, "<")
if cercacod <> 0 then
testo= Replace(testo, "<", "&lt")
End if
cercacod = InStr(testo, ">")
if cercacod <> 0 then
testo= Replace(testo, ">", "&gt;")
End if

if Application("'" & stanza & "' & 'luce'")<2 then
coloraz="yellow"
else
coloraz="#ffff00"
End if
name=request.cookies("infoutente")("username")

titolo=""
  
iniziale= Mid(testo, 1, 1)

if (iniziale = "#" OR iniziale = "+") AND (Request.Cookies("infoutente").HasKeys) then
testo = " "&Mid(testo, 2)
utente= request.cookies("infoutente")("username")

if titolo<>"" Then
testo = "<font size=1 face='Verdana' color='"&coloraz&"'>"&titolo&utente&testo&"</font>"
Else
testo = "<font size=1 face='Verdana' color='"&coloraz&"'>"&utente&testo&"</font>"
End if
else
if Request.Cookies("infoutente").HasKeys then
utente="<font color='#ffffff' face='Verdana'><b>"&request.cookies("infoutente")("username")&images&"</b></font> "
testo=tempo&utente&testo
End if
End if
Application("'" & stanza & "' & '1'") = testo
End if
%>
<html>

<head>
<base target="_self">
<title></title>
</head>

<body bgcolor="#000000" onload="document.forms[0].testo.focus();document.forms[0].testo.select()" text="#FFFFFF">
<form method="POST" action="form.asp">
<input type="text" name="testo" size="46" value="">&nbsp;
<input type="submit" value="Invia" name="B1" class="pulsante">
</form>
</body>
</html>


DISPLAY.ASP
<%
if Request.QueryString("s")<>"" then
stanza=Request.QueryString("s")
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV='Refresh' CONTENT='8'>
<title>Nevermind</title>
<base target="_self">
<style type="text/css">
</style>
<link rel="stylesheet" href="never.css" type="text/css">
</head>
<%
if Application("'" & stanza & "' & 'luce'")="" then
Application("'" & stanza & "' & 'luce'") ="8"
End if

luce= Application("'" & stanza & "' & 'luce'") 
Select Case luce
Case 0
body="#000000"
Case 1
body="#67473D"
Case 2
body="#994528"
Case 3
body="#B93813"
Case 4
body="#DB490B"
Case 5
body="#D69703"
Case 6
body="#E6C400"
Case 7
body="#FFE451"
Case 8
body="#FFF8D0"
Case Else
body="#FFF7D2"
End Select

if Application("'" & stanza & "' & 'buio'")="" then
%>
<body bgcolor="#000000"  text="#FFFFFF" class="never" >
<% 
Else
Response.Write "<body bgcolor='#000000'>"
End if
if Application("'" & stanza & "' & 'buio'")="" AND request.cookies("infoutente")("permesso")>3  then
iCount=1
Do While iCount < 21
if Application("'" & stanza & "' & 'numeri'")<>"" then
Response.Write iCount&" "
end if
Response.Write Application("'" & stanza & "' & '"&iCount&"'")&"<BR>"
iCount = iCount+1
Loop
End if

if Application("'" & stanza & "' & 'buio'")="" AND request.cookies("infoutente")("permesso")<4  then
iCount=1
Do While iCount < 21
Response.Write Application("'" & stanza & "' & '"&iCount&"'")&"<BR>"
iCount = iCount+1
Loop
End if
%>
</body>
</html>


Vi prego, aiutatemi ma soprattutto corredate le Vostre spiegazioni anche con pezzi di codice, che sono alle prime armi per quanto riguarda SESSION e APPLICATION!

Grazie!
12 messaggi dal 19 giugno 2001
Allora? Nessuno riesce a darmi una mano?
77 messaggi dal 06 settembre 2002
Ciao! allora,
come hai ben visto, la chat, oltre ad usare i biscottini (COOKIES) usa anche le variabili APPLICATION.

Per risolvere il tuo problema, ti consiglio di tenere traccia degli utenti che si connettono e poi andare a fare il seguente controllo:

entra un utente APPLICATION(UTENTE) viene aumentata di 1
entra un altro utente APPLICATION(UTENTE) viene aumentata di 1

quindi ora sei a 2. quando uno esce o và in TIME OUT scali la APPLICATION di 1.

nel momento in cui l'application è uguale a ZERO azzeri le altre application! il tutto ponendola ="" cioè stringa vuota!

questa potrebbe essere una soluzione.

---
Luciano Blancato
12 messaggi dal 19 giugno 2001
Grazie Luciano! Finalmente mi hai dato la soluzione che cercavo!
77 messaggi dal 06 settembre 2002
di nulla!

salta più spesso in chat ....

---
Luciano Blancato

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.