Creare un sistema per la citazione del giorno

2 pagine in totale: <<Indietro 1 [2]

Abbiamo in questo modo creato una pagina ASP che ad ogni utente mostrerà una citazione diversa ogni volta che si collega, ovvero ogni volta che farà un "refresh" della pagina stessa (con conseguente aumento del numero degli "hit" sul contatore degli accessi).

Una volta pubblicata l'applicazione affrontiamo il problema che si pone ogni qualvolta vogliamo aggiornare in nostro database aggiungendo nuovi record per mantenere vivo l'interesse sulla nostra home page. La prassi che si segue normalmente è di aggiornare in locale il nostro DB e quindi inviarlo via FTP a sostituire quello presente sul server remoto, mentre difficoltà maggiori si riscontrano nel caso in cui i dati siano su un server SQL.

Diventa quindi più produttivo sviluppare una semplice applicazione che ci consenta di aggiornare, attraverso un form, il nostro database remoto.

Creiamo dunque il form: 

<%@ Language=VBScript %>
<HTML>
<HEAD>

</SCRIPT>
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
<!--

Sub button1_onclick
if form1.txtAutore.value = "" Or form1.txtQuote.value = "" Then
Alert ("Inserire i dati richiesti")
Exit Sub
Else
form1.submit ()
End If
End Sub

-->
</SCRIPT>
</HEAD>
<BODY BgColor = white>
<FORM action="Insert.asp" method=post id=form1 name=form1>
<P><STRONG>Inserisci una nuova citazione....</STRONG>
</P>
<HR>

<P>
</P>

<DIV align=center>
<TABLE bgColor=silver border=3 borderColor=gray cellpadding=1 cellspacing=1>

  <TR>
    <TD><TABLE WIDTH=75% BORDER=0 cellspacing=2 cellpadding=2 
    align=center bgColor=silver>
  <TR>
      <TD><STRONG>Autore</STRONG></TD>
    <TD colSpan=2>
        <INPUT id=txtAutore maxLength=50 name=txtAutore 
      size=35></TD>
  </TR>
  <TR>
    <TD><STRONG>Citazione</STRONG></TD>
    <TD colSpan=2>
        <INPUT id=txtQuote maxLength=250 name=txtQuote 
size=35></TD>
  </TR>
  <TR>
    <TD></TD>
    <TD>
        <DIV align=center><INPUT id=button1 name=button1 type=button value=INVIA></DIV></TD>
    <TD>
        <DIV align=center><INPUT id=reset1 name=reset1 type=reset value=Reset></DIV></TD>
  </TR>
</TABLE></TD></TR></TABLE>
<HR>
</DIV>
</FORM>
</BODY>
</HTML>

Il controllo di validazione sul form è stato fatto in VBScript, anche se, sul WEB è preferibile che per tale funzione venga utilizzato il JavaScript per le note questioni di compatibilità tra browser.

Un'altra soluzione, che comunque io considero poco elegante perchè spreca risorse sulla Rete e sul server è quella di passare comunque i dati alla pagina che elabora la richiesta e lì verificare i dati con il seguente codice:

<%If Request.Form("txtAutore") = "" Or Request.Form("txtQuote") = "" Then%>
<b><BIG>Dati incompleti! Ripetere l'operazione di acquisizione</BIG></b>
<A href = "paginaprecedente.asp">Torna Indietro </A>
<%Else%>Codice da eseguire nel caso in cui i dati siano completi?
<%End If%>

Se non avete motivi più che validi evitate di sprecare le risorse della Rete e del server ed eseguite i controlli di validazione del form sul client usando JavaScript.

Ecco il codice della pagina "insert.asp" che risponde ed elabora la richiesta effettuata dalla pagina contenente il form:

<%@ Language=VBScript %>
<%Option Explicit
Dim SqlQuery,Conn,Rs,ConnString,Autore,Citazione
Autore = Request.Form ("txtAutore")
Citazione = Request.Form ("txtQuote")
Autore = Replace(Autore,"'","''")
Citazione = Replace(Citazione,"'","''")
SqlQuery = "INSERT INTO Quote (Autore, Citazione)VALUES ('"& Autore & "', '" & Citazione & "')"
Set Conn = Server.CreateObject ("ADODB.Connection")
Set Rs = Server.CreateObject ("ADODB.Recordset")
Connstring = "DSN=Quote;UID=;PWD=;"
conn.Open Connstring
rs.CursorLocation = AdUseClient
rs.Open SqlQuery,Conn,adOpenDynamic,adLockBatchOptimistic
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<!--#include virtual="/ADOVBS.INC"-->
<P>Operazione effettuata con successo</P>

</BODY>
</HTML>

Notate l'utilizzo della funzione "Replace" per evitare che il provider ODBC restituisca un errore quando nella stringa dell'autore o della citazione fosse presente un apostrofo (per maggiori dettagli si veda la FAQ #42 ).

Anche se non avete estrema familiarità con le ASP ora siete in grado, anche solo col "copia ed incolla" di realizzare un'applicazione semplice, ma di sicuro effetto per i vostri visitatori.

Un ultimo consiglio di carattere pratico: se la utilizzate in una intranet, invece delle citazioni potreste mettere dei dati o delle statistiche riguardanti il vostro dipartimento (lusinghiere, of course) che sicuramente potranno impressionare i vostri dirigenti!

2 pagine in totale: <<Indietro 1 [2]

Contenuti dell'articolo

    Commenti
    Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

    Per procedere al rating dell'articolo devi essere autenticato.

    Aggiungi un nuovo commento »»»
    Per inserire un commento, devi registrarti alla nostra community.


    TUTORIALS
    TOP TEN ARTICOLI
    NOTIFICHE

    Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

    Indirizzo e-mail:
    PROVIDER ASP.NET 2.0

    Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



    IN EVIDENZA
    MISC