Salve, ho un problema con la mia chat, praticamente la finestra di chat visualizza gli ultimi 10 messaggi inseriti, se però non vengono inseriti messaggi il ciclo non si blocca e riaprte all'inserimento di un nuvo messaggio, ma continua all'infiito, visualizzando sempre lo stesso messaggio, spero qualcuno possa aiutarmi, questi i codice delle due pagine.
index.asp![]()
<%@LANGUAGE = VBScript%>
<%
Response.Buffer = True
' Recupero il nickname dell'utente
Dim username
username = Request.Form("username")
' Verifico che sia stato inserito un nickname e
' genero una variabile di sessione in cui inserisco
' il nickname scelto dall'utente
If username <> "" Then
Session("username") = username
End If
%>
<html>
<head>
<title>Risorse Fantacalcio Chat</title>
</head>
<body>
<form method="POST" action="index.asp">
Username:
<input type="text" name="username">
<input type="submit" value="Login">
</form>
<%
' Se la variabile si sessione è stata valorizzata
' do il benvenuto all'utente e stampo a video
' un link che conduce alla pagina della chat
If Session("username") <> "" Then
With Response
.Write "Benvenuto " & Session("username") & " "
.Write "Entra in Chat"
End With
End If
%>
</body>
</html>
chat.asp![]()
![]()
<%@LANGUAGE = VBScript%>
<%
' Verifico e prevengo eventuali errori di esecuzione
On Error Resume Next
Response.Buffer = True
' Verifico che l'utente abbia effettuato il login, oppure
' lo rimando al file index.asp per effettuare il login
If Session("username") = "" Then Response.Redirect "index.asp"
' Aggiorno con un timer di 5 secondi la pagina
' per consentire la lettura dei nuovi messaggi
Response.AddHeader "Refresh", "5"
' Recupero tutte le variabili che mi servono per l'applicazione
Dim messaggio, quanti, split_messaggio, i
' Sostituisco nel messaggio l'occorrenza di caratteri <
' per impedire agli utenti di inserire comandi HTML o addirittura
' di poter lanciare in esecuzione degli script
messaggio = Replace(Request.QueryString("messaggio"), "<", "<")
' Stabilisco il numero massimo di messaggi da visualizzare
' Ovviamente saranno letti gli ultimi N messaggi
quanti = 10
%>
<html>
<head>
<title>Risorse Fantacalcio chat</title>
</head>
<body>
<form method="GET" action="chat.asp">
Messaggio:
<input type="text" name="messaggio" size="50" maxlength="150">
<input type="submit" value="OK">
</form>
<hr>
<%
If messaggio <> "" Then
' Divido i messaggi in un array di stringa per evitare
' che vengano mostrati in un'unica riga
split_messaggio = Split(Application("messaggio"), "|")
' Costruisco dinamicamente il codice HTML
' per la corretta visualizzazione del messaggio
Application.Lock
Application("messaggio") = "" _
& Session("username") _
& " - " _
& messaggio & "|" _
& "
" _
& Application("messaggio")
Application.UnLock
' Stampo a video gli ultimi N messaggi
For i = 0 To quanti - 1
Response.Write split_messaggio(i)
Next
End If
%>
</p>
</body>
</html>
grazie per l'aiuto.