Abbiamo già visto in passato come personalizzare le pagine di gestione degli errori.
In questo e nei prossimi numeri vedremo come creare un sistema completo di tracing degli errori della nostra applicazione.
Per cominciare è necessario creare una tabella di nome LogsErrori che contenga i seguenti campi all'interno:
- tipo: varchar(3)
- pagina: nvarchar(500)
- referer: nvarchar(500)
- IP: varchar(15)
- extra: nvarchar(2000)
- data: datetime con valore di default sulla data attuale
Ci basterà poi impostare questo script come pagina di errore 404 per salvare l'errore nel database.
<%
Function FixQuotes(stringa)
FixQuotes = Replace(stringa, "'", "''")
End Function
' funzione per loggare su db
Sub Salva(tipo, pagina, referer)
extra = "Form: " & Request.Form & VbCrLf
extra = extra & "Querystring: " & Request.Querystring & VbCrLf
' query di inserimento nel database
strSQL = "INSERT INTO LogsErrori (tipo, pagina, referer, IP, extra) "
strSQL = strSQL & "VALUES ('" & tipo & "', '" & FixQuotes(pagina) & "', '" & FixQuotes(referer) & "', "
strSQL = strSQL & "'" & FixQuotes(Request.ServerVariables("REMOTE_ADDR")) & "', "
strSQL = strSQL & "'" & FixQuotes(extra) & "') "
' apertura db
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "stringadiconn"
' esecuzione query
conn.Execute(strSQL)
' chiusura connessione
conn.Close
set conn = Nothing
end Sub
' raccolta informazioni
pagina = Mid(Request.QueryString, 5)
strRef = Request.ServerVariables("HTTP_REFERER")
' logga su db
call Salva("404", pagina, strRef)
' messaggio personalizzato di errore
Response.Write("La pagina non risulta trovata. Abbiamo registrato l'errore.")
%>
In realtà è più sensato salvare questo script (chiamata alla sub salva esclusa) all'interno di un include, in modo da poter sfruttare le stessa routine per l'errore 500-100, che vedremo nel prossimo numero dedicato a Classic ASP.
- Cosa fare se la vostra applicazione ASP o ASP.NET è vittima di SQL injection
- Utilizzare Visual Studio 2008 per semplificare lo sviluppo con LINQ to SQL
- SQL Server 2008 disponibile in RTM
- Cosa c'è in ASP.NET 3.5 Service Pack1
- Real Code Launch 2008: grazie!
- Speciale per il lancio di Visual Studio 2008, SQL Server 2008 e Windows Server 2008 dal 25/02 al 07/03
- Uno sguardo a LINQ to SQL
- Realizzare applicazioni ASP.NET sicure - Seconda parte
- SP vs Linq vs Entity Framework in scrittura
- L'entity Framework e i vincoli FOREIGN KEY
- Membership API per SQL Server anche senza dbo
- SQL Server 2008 February CTP
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!