Segnala questa pagina a un amico in Asp

Siti dinamici con ASP
Impara a creare siti dinamici professionali con ASP

Scritto da Jacopo Nuzzi nella sezione Asp

Ampliato da Luca Ruggiero.

Sulla scorta del Tip Il modulo 'Segnala a un amico', che spiega come far si che un utente possa segnalare il nostro sito ad un suo amico via email utilizzando un modulo dalle nostre pagine, vedremo adesso come far si che l'utente possa segnalare la pagina corrente ad un amico, utilizzando lo stesso modulo.

Il meccanismo è semplice, è necessario individuare e tenere sempre a disposizione il percorso della pagina corrente, memorizzarlo in una variabile e posizionandolo nella QueryString del link che porta l'utente verso il modulo di segnalazione.

Supponiamo di trovarci nel file pagina1.asp, vediamo il codice commentato:

<%@LANGUAGE = JScript%>
<%
   // Reperisco i valori del dominio e del percorso corrente
   // per memorizzarli di seguito nel link verso il modulo di segnalazione
   var dominio = Request.ServerVariables("HTTP_HOST");
   var percorso = Request.ServerVariables("SCRIPT_NAME");
%>
<html>
 <head>
  <title>Pagina 1</title>
 </head>
<body>

<div>

Pagina 1 ...<br><br>

<a href="segnala.asp?azione=modulo&url=http://<%=dominio+percorso%>">Segnala questa pagina</a>

</div>

</body>
</html>
In questo modo è possibile recuperare le variabili identificative della pagina corrente e creare il link verso il modulo in tutte le pagine del sito.

Vediamo adesso il contenuto del file segnala.asp a cui ci riferiamo:
<%@Language = JScript%>
<%
   // La variabile azione mi serve per recuperare il primo parametro dalle QueryString
   // passata nel link di segnalazione, per far si che venga mostrato a video il modulo
   var azione = new String(Request.QueryString("azione"));
   // La variabile url, invece, recupera dalla QueryString l'indirizzo della pagina da segnalare
   var url = new String(Request.QueryString("url"));
%>
<html>
 <head>
  <title>Segnala</title>
 </head>
<body>

<%
   // Se il valore della variabile modulo è "azione", vuol dire che devo mostrare a video il modulo...
   if (azione == "modulo") {
%>
<form method="post" action="segnala.asp">
   <input type="hidden" name="url" value="<%=url%>">
   Il tuo nome<br>
   <input type="text" name="tuonome"><br>
   Il nome del tuo amico<br>
   <input type="text" name="nomeamico"><br>
   La tua email<br>
   <input type="text" name="tuamail"><br>
   L'email del tuo amico<br>
   <input type="text" name="mailamico"><br>
   <input type="submit" value="Segnala">
</form>
<%
   // ... oppure invio la mail di segnalazione tramite l'oggetto CDONTS.NewMail
   } else {

      var tuonome = new String(Request.Form("tuonome"));
      var nomeamico = new String(Request.Form("nomeamico"));
      var tuamail = new String(Request.Form("tuamail"));
      var mailamico = new String(Request.Form("mailamico"));

      var sito = new String(Request.Form("url"));

      var segnala = new ActiveXObject("CDONTS.NewMail");
          segnala.From = tuamail;
          segnala.To = mailamico;
          segnala.Subject = "Segnalazione sito";
          segnala.Body = "Ciao " + nomeamico + ", " + tuonome + " ti consiglia questo sito:

" + sito;
          segnala.Send();

      Response.Write("Segnalazione inviata con successo");

   }
%>

</body>
</html>
E' possibile potenziare il servizio implementando un controllo (lato client o lato server) sui campi del modulo.

I più cliccati della sezione Asp

:: Un semplice form mail in Asp (51.682)

:: Creazione di un Guestbook in Asp (50.782)

:: Creazione di un'area di accesso riservato in Asp (45.422)

:: Connessione ad un database MySql con Asp (25.044)

:: Connessione ad un database Microsoft SQL Server con Asp (24.069)

:: Asp e database (23.123)

:: Differenza tra i metodi get e post e recupero dei dati, attraverso Asp (22.300)

:: Una semplice area di accesso riservato senza DB in Asp (21.383)

:: Riscrivere le URL con Asp (19.743)

:: Creazione di un Sondaggio in Asp (19.100)

IN EVIDENZA
DOWNLOAD