Un Tell a Friend in Php

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

Scritto da Luca Ruggiero nella sezione Php

Concesso in esclusiva a MrWebmaster.it - E' vietata la pubblicazione senza espresso consenso del proprietario

In molti Articoli e FAQ abbiamo visto come inviare email tramite PHP; vediamo adesso un sistema per utilizzare la funzione predefinita mail() per implementare il famoso modulo Tell a Friend ovvero un sistema per permettere ad un utente di inviare una mail ad un amico invitandolo a visitare il nostro sito, ottimo e per nulla dispendioso sistema pubblicitario.

Si crei il file tell.html in cui inserire il modulo HTML di invio dei dati; segue il codice:

<html>
    <head>
        <title>Tell a Friend</title>
    </head>
<body>

<h1 align="center">TELL A FRIEND</h1>

<p align="center">
    <form method="post" action="tell.php">
        Tuo nome<br>
        <input type="text" name="tuonome"><br>
        Tua mail<br>
        <input type="text" name="tuamail"><br>
        Nome amico<br>
        <input type="text" name="nomeamico"><br>
        Mail amico<br>
        <input type="text" name="mailamico"><br><br>
        <input type="submit" value="SEGNALA">
    </form>
</p>

</body>
</html>
Abbiamo visto che il form punta al file tell.php il quale si occupa di verificare che tutti i campi siano stati compilati correttamente; a condizioni soddisfatte la mail viene inviata secondo i criteri stabiliti dall'utente e con il testo preformattato stabilito dallo sviluppatore.

Segue il codice abbondantemente commentato:
<?PHP
    // IDENTIFICA UN POTENZIALE ERRORE
    $errore = 0;

    // RECUPERA I DATI DAL FORM
    $tuonome   = $_POST['tuonome'];
    $tuamail   = $_POST['tuamail'];
    $nomeamico = $_POST['nomeamico'];
    $mailamico = $_POST['mailamico'];

    // ESPRESSIONE REGOLARE DELL'EMAIL
    $re_1 = ereg("^[^@ ]+@[^@ ]+.+[^@ ]+$", $tuamail);
    $re_2 = ereg("^[^@ ]+@[^@ ]+.+[^@ ]+$", $mailamico);

    // CONTROLLA I CAMPI
    if     ($tuonome == "")   { $errore = 1; }
    elseif ($re_1 == FALSE)   { $errore = 2; }
    elseif ($nomeamico == "") { $errore = 3; }
    elseif ($re_2 == FALSE)   { $errore = 4; }

    // SE I CAMPI SONO STATI COMPILATI CORRETTAMENTE...
    else
    {
        // FORMATTA LA MAIL
        $sito = "http://www.mrwcorsi.it";
        $oggetto = "Ti segnalo un sito!";
        $corpo   = "Ciao " . $nomeamico . ", il tuo amico " . $tuonome . " ti segnala " . $sito;
        
        // INVIA LA MAIL CONTROLLANDO CHE L'INVIO VADA A BUON FINE
        if (mail($mailamico, $oggetto, $corpo, "From: $tuamail"))
        {
             $errore = 0;
        }
        else
        {
             $errore = 5;
        }
    }
?>
<html>
    <head>
        <title>Tell a Friend</title>
    </head>
<body>

<p align="center">
<?PHP
    switch ($errore)
    {
        case 0;
        print "Segnalazione inviata con successo";
        break;

        case 1;
        print "Inserisci il tuo nome";
        break;

        case 2;
        print "Inserisci il tuo indirizzo email";
        break;

        case 3;
        print "Inserisci il nome del tuo amico";
        break;

        case 4;
        print "Inserisci la mail del tuo amico";
        break;

        case 5;
        print "Il server non è riuscito ad inviare la mail";
        break;
    }
?>
    <br><br>
    <a href="javascript:window.history.back();">Indietro</a>
</p>

</body>
</html>
Potete copiare ed incollare i due codici rispettivamente nei file tell.html e tell.php, modificare l'indirizzo di prova http://www.mrwcorsi.it con la URL del vostro sito e... il gioco è fatto!!!

I più cliccati della sezione Php

:: Redirect in Php (103.018)

:: Upload di file in Php (33.728)

:: Refresh temporizzato in PHP (28.073)

:: Scrivere il codice di sicurezza CAPTCHA in Php (26.239)

:: Un carrello della spesa in PHP (23.743)

:: Creare un menu dinamico in Php (21.303)

:: Pagamenti online con PayPal e PHP (17.703)

:: Inviare email in formato Html con Php (16.025)

:: Convertire una stringa in maiuscolo e in minuscolo in Php (15.985)

:: Ottenere le dimensioni di un'immagine con PHP (15.486)

IN EVIDENZA
DOWNLOAD