Sto cercando di implementare il bottone "Segnala Sito". Lo script che elabora l'invio è questo:
Codice PHP:
<?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.ilmiosito.com"; $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>Segnala [url]www.lezionario.org[/url]</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 ha inviato la mail"; break; } ?>
[url="javascript:window.history.back();"]Indietro[/url] </p> </body> </html>
Purtroppo mi restituisce sempre l'errore 5, ovvero, il server non ha inviato il messaggio. Questo da remoto (server Linux, PHP 5).
Come posso ovviare al mancato invio? Oppure c'è uno script funzionante per aggiungere "Segnala sito"? Grazie.