Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Un formmail con Ajax

Articolo scritto da Luca Ruggiero
Pagina 2 di 2

Lo script ASP per l'invio delle email con AJAX

Lo script ASP in oggetto usa l'oggetto CDOSYS per l'invio delle email, ma è possibile sfruttare qualsiasi oggetto che permetta di inviare email con ASP.

(L'articolo continua più sotto...)

La scelta è caduta su CDOSYS per semplicità.

Segue il codice del file email.asp:

<%@LANGUAGE = VBScript%>
<%
    Dim nome, email, messaggio
    nome = Server.HTMLEncode(Request.QueryString("nome"))
    email = Server.HTMLEncode(Request.QueryString("email"))
    messaggio = Server.HTMLEncode(Request.QueryString("messaggio"))
    If nome = "" Or email = "" Or messaggio = "" Then
        Response.Write "Tutti i campi sono obbligatori"
    Else
        Dim cdo
        Set cdo = Server.CreateObject("CDO.Message")
        With cdo
            .To = "tua@mail.ext" ' Inserisci qui la tua mail
            .From = email
            .Subject = "Messaggio da " & nome
            .TextBody = messaggio
            .Send
        End With
        Set cdo = Nothing
        Response.Write "Email inviata con successo"
    End If
%>
In caso di successo inviamo l'email, altrimenti un controllo generico e potenziabile avvisa che tutti i campi sono obbligatori.

Lo script PHP per l'invio delle email con AJAX

Passiamo adesso alla versione PHP che utilizza la sua brava funzione predefinita mail().

Segue il codice del file email.php:

<?
    $destinatario = "tua@mail.ext"; // Inserisci qui la tua mail
    $nome = $_GET["nome"];
    $email = $_GET["email"];
    $messaggio = $_GET["messaggio"];
    if ($nome == "" || $email == "" || $messaggio == "")
    {
        echo "Tutti i campi sono obbligatori";
    }
    else
    {
        mail($destinatario, "Messaggio da " . $nome, $messaggio, "From: $email");
        echo "Email inviata con successo";
    }
?>
Anche in questo caso il codice di controllo è potenziabile e lo script si comporta restituendo un errore se i cambi non sono stati compilati, oppure invia l'email.

Modifica al codice Javascript

Abbiamo precedentemente visto che la funzione Javascript di richiesta HTTP di AJAX richiama un file fittizio.

Nel caso ASP o nel caso PHP la riga:

url = "email.ext?nome=" + N + "&email=" + E + "&messaggio=" + M;
va modificata, rispettivamente, come:
url = "email.asp?nome=" + N + "&email=" + E + "&messaggio=" + M;
oppure:
url = "email.php?nome=" + N + "&email=" + E + "&messaggio=" + M;
Conclusioni

L'esempio è stato testato sia per ASP che per PHP su server Windows e su PHP su server Linux e funziona, ma è soggetto ad alcuni potenziali errori.

Sappiamo bene che una querystring, composta da un qualsiasi numero di parametri, ospita massimo 255 caratteri, quindi un mittente "chiacchierone" finirebbe per mandare lo script in errore, sforando il limite previsto.

Si tratta quindi di un sistema da considerarsi come uno short message system via email ed è necessario potenziare il controllo (oltre che verificando l'espressione regolare dell'email) effettuando un controllo sulla lunghezza dei caratteri.

Ad esempio si potrebbe impostare un maxlength sulle due caselle di testo, ad esempio di 50 caratteri per il nome e 70 per l'indirizzo email e controllare, via ASP e via PHP sia che questi due campi non siano più lunghi (se qualcuno copia il form in locale), e che il messaggio non sia superiore a 150 caratteri.

Corsi
Corso AJAXCorso AJAX
Applicazioni Web 2.0 basate su AJAX con ASP, ASP.NET e PHP. A partire da 39 €.
Corso JavascriptCorso Javascript
Guida completa allo scripting lato client. A partire da 39 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. Sconto -25% sino al 23/05/2012.
Vedi anche...
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122