Un semplice chat in ASP | |
![]() |
|
|
ASP Center
Articoli
Referenze
Script
FAQ
Downloads
Siti utili
Menu Javascript
Ricette
Cocktail
Corsi online
Registrazione domini
Area Aziende
|
Un semplice chat in ASP
Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.
Uno degli strumenti di comunicazione più diffuso ed utilizzato in rete è la chat, ovvero uno strumento attraverso il quale è possibile parlare in tempo reale con gli altri utenti collegati contemporaneamente.
A differenza quindi di applicazioni per la gestione della comunicazione online come un forum, un servizio di messaggistica privata o il tradizionale sistema di email, ripeto che la chat permette la comunicazione in tempo reale ed quindi associabile ad un servizio di telefonia fissa o mobile. Esistono svariati sistemi e tecnologie (con relativi linguaggi) di realizzazione di una chat; la soluzione scripting lato server (ASP, ASP.NET, PHP, etc...) o comunque attraverso una pagina Web, è la meno indicata, dato che ci si lega troppo alle caratteristiche del browser il quale elabora gli script e li restituisce in formato HTML solo al refresh di pagina. Il sistema migliore per realizzare una chat è l'utilizzo di un'applet, generalmente scritta in Java. In merito ci sono diversi sistemi di comunicazione client-server da conoscere in maniera anche piuttosto approfondita. La convenienza si basa sul fatto che è l'applet a gestire la comunicazione tra gli utenti, non necessita di alcun refresh di pagina ne di altri controlli da demandare esclusivamente al browser. A tale scopo trovo inutile approfondire oltremodo la realizzazione di una chat in ASP (o simili). Considerate quindi questo Articolo come fonte puramente didattica, atto ad approfondire con un esempio concreto gli aspetti legati alle variabili di tipo Session ed Application di ASP. Vediamo in ogni caso il funzionamento di una chat a livello teorico: strutturiamo l'esigenza da soddisfare e traduciamola in analisi di fattibilità. Innanzitutto è necessario prevedere una registrazione degli utenti con relativa fase di login, in modo da non rischiare di avere due utenti con lo stesso nickname online oppure casi di omonimia. E' poi il caso di realizzare la schermata della chat in maniera tale da avere uno spazio dedicato all'inserimento dei messaggi, uno dedicato alla lettura dei messaggi ed uno con un elenco degli utenti online in quel momento. La chat del nostro esempio è più scarna allo scopo di lasciare al lettore la possibilità di ampliarla e perfezionarla a seconda delle proprie esigenze. Lo scopo è quello di imparare, non di avere sotto mano un servizio bello e pronto. Lo script in questione si compone dunque di due soli file: index.asp che presenta il modulo di autenticazione (libero, è possibile inserire il nickname che si preferisce) e si occupa anche di loggare l'utente, creando una variabile di sessione; abbiamo poi il file chat.asp che mostra i messaggi e permette l'inserimento di un nuovo messaggio attraverso un'apposita casella di testo. Iniziamo col file index.asp il cui scopo, ripeto, è quello di offrire la casella di testo in cui inserire il proprio nickname onde entrare in chat non come ospite ma con un nome con cui essere contattato da altri utenti. Il codice è semplice ed abbastanza intuitivo, nonchè corredato da opportuni commenti:
<%@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>Una semplice Chat in ASP</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 "<a href=""chat.asp"">Entra in Chat</a>"
End With
End If
%>
</body>
</html>
Davvero non c'è molto altro da dire, tranne che fare un po di critica al codice e prenderlo come spunto per migliorarlo.
Ecco un elenco di cose da fare per renderlo più appetibile e sicuro:
Siamo giunti alla fase conclusiva nonchè principale del nostro appuntamento con la chat in ASP, la creazione della chat vera e propria nel file chat.asp. Scopo di questo file, ripeto, è di verificare che l'utente abbia effettuato il login e permettergli di inserire e leggere i messaggi, sia propri che deglialtri utenti contemporaneamente online. Segue il codice del file, corredato da opportuni commenti:
<%@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>Una semplice Chat in ASP</title>
</head>
<body>
<form method="GET" action="chat.asp">
Messaggio:<br>
<input type="text" name="messaggio" size="50" maxlength="150">
<input type="submit" value="OK">
</form>
<hr>
<p>
<%
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") = "<b>" _
& Session("username") _
& "</b> - " _
& messaggio & "|" _
& "<br><br>" _
& 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>
Fatto questo inserite i file index.asp e chat.asp nella cartella chat sul vostro server Web personale e lanciate il browser collegandovi all'indirizzo
http://localhost/chat/index.aspBuon divertimento!!! |
Newsletter
Stringhe di Conn.
|
||
| © 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Utenti online: 7 - Disclaimer | Pubblicità | Supportaci | Staff | Contatti | ||||
| Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones | ||||