Connettersi ad un Database quando non si hanno i diritti amministrativi

per operare su ODBC e’ piu’ semplice di quanto si pensi.

Utilizzando la procedura DSN-less, e’ possibile collegarsi a database residenti nella nostra virtual root.

objConn.ConnectionString = “DBQ=C:\Webcondivisa\Nomedatabase.mdb;DRIVER={MS Access (*.mdb)}”

E’ possibile bloccare un utente che non provenie da un ip specifico. Ecco il codice:

<%

IPAddress = Request.ServerVariables(“REMOTE_ADDR”)

If IPAddress <> “200.123.77.225” Then

Response.Status = “403 Access Forbidden”

Response.Write Response.Status

Response.End

End If

%>

Session.Abandon Permette di eliminare tutti i valori contenuti in una variabile di sessione, solo dopo che lo script è stato eseguito.

ES:

prova1.asp

session(“variabile”)=”html.it

response.write (session(“variabile”))&” numero “&Session.SessionID

Session.Abandon

risultato

html.it numero 445107232

prova2.asp

response.write ” numero “&Session.SessionID

risultato

numero 445123432

Il secondo file ha cambiato il numero di sessione

La funzione Include permette di inserire file esterni all’interno di una procedura ASP.

Si possono inserire, file di testo, script e altro.

Un esempio per rendere l’idea e’ aggiungere ad un peso netto, il peso della confezione.

<%

‘il peso e’ Kg.10

Dim fpeso

fpeso = 10

‘Ora mostro il peso netto piu’ la confezione

Response.Write “Peso complessivo: ” & Adjustedpeso(fpeso)

%>

Per aggiungere il peso della confezione aggiungo un file di inclusione

chiamandolo peso.txt, cosi’ composto:


<%

function Adjustedpeso(totalpeso)

Adjustedpeso = totalpeso + 0.5

end function

%>

Quindi il file .asp diventa:

<!–#include file=”peso.txt”–>

<%

‘il peso e’ Kg.10

Dim fpeso

fpeso = 10

‘Ora mostro il peso netto piu’ la confezione

Response.Write “Peso complessivo: ” & Adjustedpeso(fpeso)

%>

Come posso aggiungere a folder specifici nuove path?

Un metodo che permette questo è FileSystemObject.CreateFolder.

<%

dim filetest, nuovadir

set filetest =CreateObject(“Scripting.FileSystemObject”)

nuovadir = filetest.CreateFolder(c:\inetpub\wwwroot, “nome_directory”)

%>

Per mezzo di questo script:

<html>

<head>

<title>Ordinare i record casualmente</title>

</head>

<body bgcolor=”#ffffff”>

<%

‘Connessione al database

Dim rs, cn, sql

sql = “SELECT * FROM tabella”

Set cn = Server.CreateObject(“ADODB.Connection”)

Set rs = Server.CreateObject(“ADODB.Recordset”)

cn.Open “DSN=nomeDSN;”

Set rs.ActiveConnection = cn

rs.CursorType = 3

rs.LockType = 3

rs.Open sql, cn

%>

<center>

<%

rs.moveLast

conta = rs.recordCount

conta1 = conta

max = conta

‘Necessario inserire un valore massimo

If 50 < conta Then

conta1 = 50

Else

If conta > 10 AND conta < 50 then conta1 = conta1 – 2

End If

str = “,”

str1 = “,”

Do Until conta1 = 0

‘Genero i valori random per la ricerca all’interno del recordSet

‘per estrapolare record casualmente

Randomize

RndNumber = Int(Rnd * max)

If (InStr(1, str1, “,” & RndNumber & “,” ) = 0) Then

str1 = str1 & RndNumber & “,”

conta1 = conta1 – 1

rs.moveFirst

rs.move RndNumber

str = str & rs(“ID”) & “,”

End If

Loop

rs.Close

Set rs=Nothing

Set rs = Server.CreateObject(“ADODB.Recordset”)

‘Genero la query random

If sql = “SELECT * FROM tabella” then

sql = “SELECT * FROM tabella WHERE (((InStr(1,'” & str & “‘,(‘,’ & [ID] & ‘,’)))<>0))”

Else

sql = sql & ” AND (((InStr(1,'” & str & “‘,(‘,’ & [ID] & ‘,’)))<>0))”

End if

Set rs.ActiveConnection = cn

rs.CursorType = 3

rs.LockType = 3

rs.Open sql, cn

%>

<% Do until (rs.eof) %>

<!– Visualizzo i risultati della query random –>

<%= rs(“nomeCampo”) %>

<!– ***************************************** –>

<% rs.MoveNext

Loop

rs.Close

Set rs=Nothing %>

</body>

</html>

è possibile ordinare casualmente i risultati della query effettuata sul database

Utilizzando un database, è possibile creare una mailing-list utilizzando questo semplice codice:

<%

‘Mi collego al db ed estraggo gli indirizzi email

Dim rs, conn, sql

Set rs = Server.CreateObject(“ADODB.Recordset”)

conn = “DSN=nomeDSN;”

sql = “SELECT email FROM tabella”

rs.Open sql, conn

‘Inserisco dentro la variabile bcc tutti i destinatari

x = 0

do until rs.eof

   x = x + 1

   if x = 1 then

    bcc = rs(“email”)

  else

    bcc = bcc & “, ” & rs(“email”)

  end if

rs.moveNext

loop

rs.close

Set rs = Nothing

‘Invio l’email

Dim miaMail

Set miaMail = CreateObject(“CDONTS.NewMail”)

miaMail.From = “mittente@della.mail”

miaMail.To = “destinatario@della.mail”

miaMail.bcc = bcc

miaMail.Subject = “Oggetto della mail”

miaMail.BodyFormat = 0

miaMail.MailFormat = 0

miaMail.Body = “Testo della mail”

miaMail.Send

Set miaMail = Nothing

%>

Utilizzando .bcc eviteremo di “intasare” il server di email (pensate ad un database con più di 1000 email!)

Per inviare file in attach in una mail, ecco uno script di esempio:

<%

Dim miaMail

Set miaMail = CreateObject(“CDONTS.NewMail”)

miaMail.From = “mittente@della.mail”

miaMail.To = “destinatario@della.mail”

miaMail.Subject = “Oggetto della mail”

miaMail.BodyFormat = 0

miaMail.MailFormat = 0

miaMail.Importance = 0

‘Invio il file

miaMail.AttachFile “c:\freeasp.txt”, “nuovoNome.txt”

miaMail.Body = “Testo della mail”

miaMail.Send

Set miaMail = Nothing

%>

E’ possibile scegliere un nuovo nome per il file inviato oppure no, inserendo esclusivamente il percorso del file:

<%

miaMail.AttachFile “c:\freeasp.txt”

%>

Per spedire email da pagine ASP è necessario utilizzare l’oggetto COM CDONTS. Questo oggetto ci permette di spedire email utilizzando il server SMTP del server.

E’ possibile impostare alcune proprietà per l’invio. Vediamo quali:

<%

Dim miaMail

Set miaMail = CreateObject(“CDONTS.NewMail”)

miaMail.From = “mittente@della.mail”

miaMail.To = “destinatario@della.mail”

miaMail.Subject = “Oggetto della mail”

miaMail.BodyFormat = 0

miaMail.MailFormat = 0

miaMail.Importance = 0

miaMail.Body = “Testo della mail”

miaMail.Send

Set miaMail = Nothing

%>

Nei formati Mail e Body è possibile impostare se inviare la mail in formato semplice testo oppure HTML. Per il testo utilizzare 1 al posto di 0.

Importance imposta la priorità della mail (1, priorità alta)

Per effettuare una connessione ODBC ad un database, è necessario innanzitutto impostare il DSN da pannello di controllo del server, poi, all’interno della pagina asp, inserire questo codice:

<%

Dim rs, cn, sql

sql = “SELECT * FROM tabella”

Set rs = Server.CreateObject(“ADODB.Recordset”)

Set cn = Server.CreateObject(“ADODB.Connection”)

cn.Open “DSN=nomeDSN

Set rs.ActiveConnection = cn

rs.Open sql, cn

%>

Verrà così generato un RecordSet con i valori restituiti dall’istruzione SQL scritta