La pagina personale dell'utente è quella pagina dove l'utente visiona l'elenco dei messaggi ricevuti, decide quali cancellare o come scrivere un nuovo messaggio. La schermata che si presenta all'utente appena iscritto sarà la seguente:
Il codice necessario per realizzare questa pagina in modo completo non è molto lungo; si compone in un circa duecento righe. Visualizza codice completo.
Come ricorderete dalle lezioni precedenti, la prima riga all'interno dei nostri file asp dell'intero progetto è sempre la seguente:
001: <!--#include file="config.asp"-->
Guardando l'immagine proposta, noterete una personalizzazione della maschera iniziale: "Messaggi privati di innovatel". Come creiamo la personalizzazione della maschera? La risposta è molto semplice e si trova nelle seguenti righe di codice:
002: <%
003: dim strUser
004: strUser=request.cookies("messaggistica")("login")
005: dim intUser
006: intUser = request.cookies("messaggistica")("iduser")
007: %>
la riga quattro e la riga sette hanno il compito di prelevare due informazioni dai cookies scritti nella pagina di registrazione utente: il nome utente (quello fornito in fase di registrazione) ed il campo id dell'utente (assegnato in automatico dal sistema se il nome fornito è valido per la registrazione). Come potete osservare, il valore posizionato all'interno della variabile strUser viene utilizzato in due occasione:
010: <title>Messaggi Privati di <%=strUser%></title>
e alla riga:
045: <td colspan="5"> <div align="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Messaggi
046: privati di <%=strUser%></font></strong></div></td>
Quanto appena descritto è un di più rispetto al vero codice del sistema che si sta sviluppando però, perché non far sentir il nostro visitatore a suo agio?
Ora entreremo nel cuore della pagina. Il nostro scopo è di mostrare i messaggi privati. Le domande da porsi son due: quali messaggi mostrare e quanti. La prima risposta è abbastanza intuitiva: bisogna mostrare solo i messaggi del singolo utente. Per la seconda domanda la risposta lo è un po' meno. Quello che importa non è il valore numerico di per sè, ma il meccanismo per mostrare N messaggi per pagina piuttosto che K messaggi.
059: <%
060: 'Pagina da mostrare
061: dim intPagina
062: if request("pagina")="" then
063: intPagina = 1
064: else
065: intPagina = request("pagina")
066: end if
067: 'Numero di messaggi da mostrare per pagina
068: dim intMessagi
069: intMessaggi = 10
070:
071: 'Punto di partenza
072: intPartenza = cint((intPagina-1) * intMessaggi)
073:
074: dim strSql
075: strSql = "SELECT messaggi.id_msg, messaggi.dt_invio, messaggi.titolo,
utenti.login "
076: strSql = strSql & " FROM messaggi, utenti "
077: strSql = strSql & " WHERE messaggi.id_desti='"&intUser&"'
"
078: strSql = strSql & " AND messaggi.id_mitt = utenti.id_user
"
079: strSql = strSql & " LIMIT " & intPartenza &","&intMessaggi
080:
Il codice appena proposto risponde esattamente alla nostra esigenza. Infatti il suo scopo è quello di render possibile la suddivisione per pagine dell'intero elenco dei messaggi dell'utente loggato. Come prima operazione dobbiamo capire in quale pagina ci troviamo.
060: 'Pagina da mostrare
061: dim intPagina
062: if request("pagina")="" then
063: intPagina = 1
064: else
065: intPagina = request("pagina")
066: end if
Alla riga 62 si ricava il valore della querystring riferito alla variabile pagina. Se "pagina" non è presente nella querystring significa che bisogna mostrar la pagina 1 dell'elenco messaggi inserendo all'interno della variabile intPagina. In questo caso l'url della pagina sarà messaggi.asp. Se nella querystring vi è la presenza di pagina dobbiamo acquisirla e posizionarla sempre nella variabile intPagina. Se siamo nel secondo caso, l'url di pagina sarà messaggi.asp?pagina=2.
Ora dobbiamo capire quale messaggio dell'elenco sarà il nostro punto di partenza.
071: 'Punto di partenza
072: intPartenza = cint((intPagina-1) * intMessaggi)
Il punto di partenza verrà calcolato all'interno della riga settanta due e memorizzato all'interno della variabile intPartenza. Il suo calcolo è abbastanza semplice ed intuitivo. Si decrementa di un'unità il valore di intPagina ed il risultato lo si moltiplica per il numero di messaggi desiderati per pagina (intMessaggi). Facciamo un breve esempio.
intPagina
|
intMessaggi
|
intPartenza
|
1
|
5
|
0
|
1
|
10
|
0
|
2
|
5
|
5
|
2
|
10
|
10
|
3
|
5
|
10
|
3
|
10
|
20
|
Come potete osservare, il calcolo è molto rapido.