- Home
- Categorie
- Coding e Sistemistica
- Help Center: consigli per il tuo progetto
- Come si crea il modulo contatti nel sito?
-
Come si crea il modulo contatti nel sito?
Buongiorno, ho appena pubblicato un sito e mi piacerebbe fare una pagina dove possono contattarmi. Non mi piace lasciare l'indirizzo email così com'è e vorrei tanto poter fare il modulo contatti. C'è qualcuno che mi sappia spiegare come si fa, per favore?
Ringrazio moltissimo tutti quelli che mi daranno una mano.
-
Hai bisogno di un form-mail, alcuni domini ne offrono uno gratuito, tipo Altervista e Digiland, sennò i messaggi del modulo richiedono che l'utente abbia un client di posta installato per poter far partire il messaggio, e questo non ti "nasconde" l'indirizzo mail.
Se l'hai pubblicato in uno di questi spazi, cerca tra i tool disponibili e trovi come fare per compilarlo secondo le tue esigenze.Prima di aprire un sito su Altervista, proprio per avere un form-mail, ho testato alcune form-mail offerte da altri siti ma non mi hanno soddisfatto...
-
Copia questo nel tuo html:
<div id="mail" style="position:absolute; left:430px; top:360px; margin: 0px; padding: 0px;">
<form name="form" action="mail.php" method="post">
<table width="450">
<tr>
<td><p class="testo">Nominativo:</p></td>
<td><p class="testo"><input class="testo" type="text" name="nick" size="48"></input></p></td></tr>
<tr>
<td><p class="testo">E-Mail:</p></td>
<td><p class="testo"><input class="testo" type="text" name="mail" size="48"></input></p></td>
</tr>
<tr>
<td><p class="testo">Oggetto:</p></td>
<td><p class="testo"><input class="testo" type="text" name="oggetto" size="48"></input></p></td></tr>
<tr>
<td><p class="testo">Messaggio:</td>
<td><textarea class="testo" name="messaggio" cols="37" rows="7"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2">
<input name="Invia" type="submit" /><input name="Annulla" type="reset" /></td></tr>
</table>
</form>
</div>
</body>
</html>Questo nel file php che inserirai nella cartella html:<?php
$receiverMail = "[email protected]";
$nome = trim(strip_tags(stripslashes($_POST['nick'])));
$mail = trim(strip_tags(stripslashes($_POST['mail'])));
$subject = trim(strip_tags($_POST['oggetto']));
$msg = trim(strip_tags($_POST['messaggio']));//$ip = getenv("REMOTE_ADDR");
$msgformat = "Nome: $nome\n";
$msgformat.= "Email: $mail\n\n";
$msgformat.= "Messaggio:\n\t$msg";// VALIDATION
if(empty($nome) || empty($mail) || empty($subject) || empty($msg))
{
header("Refresh: 2; URL=.tuosito-contatti.com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>Perfavore riempi tutti i campi obbligatori</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
elseif(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$", $mail))
{
header("Refresh: 2; URL=.tuosito-contatti.com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>L'indirizzo mail e' invalido</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
else
{
mail($receiverMail, $subject, $msgformat, "From: $nome <$email>");
header("Refresh: 2; URL=.tuosito-contatti.com");
echo "<h3>Il modulo di richiesta e' stato inoltratto!</h3><p>Verrete ricontattati il prima possibile.</p>";Fammi sapere se hai capito..
Ciao Matt
-
Allora io consiglio quello di Mattley perchè potrai far inviare all'utente un'e-mail direttamente dal tuo sito senza far aprire client di posta ecc.
Se ne vuoi uno che comunque apra un client di posta elettronica va benissimo quello di Gas75 (e non 65 :D)
-
Grazie mille a tutti per le dritte.
Mattleyy non so dove devo inserire il php.
devo farlo dentro o fuori del body?
Ah scusa, un'altra cosa...il mio indirizzo email devo inserirlo dove c'è scritto pippo @ tiscali.it o anche da altre parti?
Grazie mille ancora
-
shjana il php lo devi inserire in un'altro file che chiami mail.php. Ti spiego come vedi nel form postato da mattleyy c'è questo:
[HTML]
<form name="form" action="mail.php" method="post">
[/HTML]
Sotto action vedrai che la pagina a cui invii i dati è mail.php. Chiaramente puoi cambiargli il nome come vuoi, quindi in una pagina hai il normale html che usi in tutte le pagine mentre in questa nuova che crei (con estensione .php) ci infili il codice sempre riportato sopra.
Chiaramente action="mail.php" vuol dire che il file .php si chiama mail ^^
ciaociao
-
Grazie scwd, aveva ragione la mia amica a consigliarmi di postare qui.
Siete gentilissimi.
-
Scusa scwd, non funziona così com'è, forse sbaglio qualcosa
-
Allora dimmi passo dopo passo quello che fai, chiaramente dò per scontato che lo script di mattleyy funzioni scherzo ^^
-
Grazie per la pazienza scwd, allora ho inserito il div sulla pagina html
poi ho fatto un file nuovo .php e dentro gli ho inserito le stringhe che mi ha dato mattleyy.
Ti faccio vedere le stringhe modificate, così capisci se ho sbagliato qualcosa<?php
$receiverMail = "[email protected]";
$nome = trim(strip_tags(stripslashes($_POST['nick'])));
$mail = trim(strip_tags(stripslashes($_POST['mail'])));
$subject = trim(strip_tags($_POST['oggetto']));
$msg = trim(strip_tags($_POST['messaggio']));//$ip = getenv("REMOTE_ADDR");
$msgformat = "Nome: $nome\n";
$msgformat.= "Email: $mail\n\n";
$msgformat.= "Messaggio:\n\t$msg";// VALIDATION
if(empty($nome) || empty($mail) || empty($subject) || empty($msg))
{
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>Perfavore riempi tutti i campi obbligatori</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
elseif(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$", $mail))
{
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>L'indirizzo mail e' invalido</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
else
{
mail($receiverMail, $subject, $msgformat, "From: $nome <$email>");
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta e' stato inoltratto!</h3><p>Verrete ricontattati il prima possibile.</p>";</body>
</html>
-
Guarda il codice così sembra esatto, però hai chiuso il php?
Cioè il codice php va iniziato <?PHP e finito ?> e siccome nel codice non lo vedo scritto forse non cel'hai messo, ma ti dovrebbe dare errore... dimmi un pò..^^
-
Ma devo proprio scrivere <?php e finito>?
-
Eheh non proprio allora piccolo accenno: in html quando scrivi una pagina il primo e l'ultimo tag saranno <HTML> e </HTML>. In php è obbligatorio
[php]
<?PHP
//funzioni ecc ecc
?>
[/php]
Ora ti riposto il codice con il tag finale e riprovalo
[php]
<html>
<body>
<?php
$receiverMail = "[email protected]";
$nome = trim(strip_tags(stripslashes($_POST['nick'])));
$mail = trim(strip_tags(stripslashes($_POST['mail'])));
$subject = trim(strip_tags($_POST['oggetto']));
$msg = trim(strip_tags($_POST['messaggio']));
//$ip = getenv("REMOTE_ADDR");
$msgformat = "Nome: $nome\n";
$msgformat.= "Email: $mail\n\n";
$msgformat.= "Messaggio:\n\t$msg";
// VALIDATION
if(empty($nome) || empty($mail) || empty($subject) || empty($msg))
{
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>Perfavore riempi tutti i campi obbligatori</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
elseif(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$", $mail))
{
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>L'indirizzo mail e' invalido</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
else
{
mail($receiverMail, $subject, $msgformat, "From: $nome <$email>");
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta e' stato inoltratto!</h3><p>Verrete ricontattati il prima possibile.</p>";
?>
</body>
</html>
[/php]
Fammi sapere ^^ e provvederemo
-
Ho fatto copia/incolla del codice tuo, ma quando provo a lanciare un'email mi esce questo errore:
Parse error: parse error in d:\hosting\misteri-patricia-cornwell.com\wwwroot\mail.php on line 41
Poi ho rifatto il modulo da sola, perchè facendo copia/incolla di quello di mattleyy, usciva spostato sulla destra.
Grazie mille per il tempo che ti sto rubando.
-
shjana copiami tutta la pagina compresi i tag html di mail.php perchè l'errore è nella linea 41, ma del codice che ti ho ripostato sono 33 linee non ti preoccupare è un forum apposta
-
Fermi tutti
ehehe l'ho rivisto e provato
ora funziona e te lo ri-ri-riposto ora dovrebbe andarti bene mancava una parentesi anche al ciclo else finale copia questo:
[PHP]
<html>
<body>
<?php
$receiverMail = "[email protected]";
$nome = trim(strip_tags(stripslashes($_POST['nick'])));
$mail = trim(strip_tags(stripslashes($_POST['mail'])));
$subject = trim(strip_tags($_POST['oggetto']));
$msg = trim(strip_tags($_POST['messaggio']));
//$ip = getenv("REMOTE_ADDR");
$msgformat = "Nome: $nome\n";
$msgformat.= "Email: $mail\n\n";
$msgformat.= "Messaggio:\n\t$msg";
// VALIDATION
if(empty($nome) || empty($mail) || empty($subject) || empty($msg))
{
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>Perfavore riempi tutti i campi obbligatori</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
elseif(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$", $mail))
{
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>L'indirizzo mail e' invalido</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
else
{
mail($receiverMail, $subject, $msgformat, "From: $nome <$email>");
header("Refresh: 2; URL=.misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta e' stato inoltratto!</h3><p>Verrete ricontattati il prima possibile.</p>";
}
?>
</body>
</html>
[/PHP]
ora deve andare e se non va cambiamo
-
Non ti avevo copiato tutta la pagina, scusa.
Adesso te la ridò tutta, comunque l'errore esce sempre.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http_//www-w3-org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<html>
<body>
<?php
$receiverMail = "[email protected]";
$nome = trim(strip_tags(stripslashes($_POST['nick'])));
$mail = trim(strip_tags(stripslashes($_POST['mail'])));
$subject = trim(strip_tags($_POST['oggetto']));
$msg = trim(strip_tags($_POST['messaggio']));
//$ip = getenv("REMOTE_ADDR");
$msgformat = "Nome: $nome\n";
$msgformat.= "Email: $mail\n\n";
$msgformat.= "Messaggio:\n\t$msg";
// VALIDATION
if(empty($nome) || empty($mail) || empty($subject) || empty($msg))
{
header("Refresh: 2; URL=.www_misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>Perfavore riempi tutti i campi obbligatori</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
elseif(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$", $mail))
{
header("Refresh: 2; URL=.www_misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta non e' stato inoltratto</h3><p>L'indirizzo mail e' invalido</p>";
echo "<p>Verrete reindirizzati alla pagina di compilazione campi entro 5 secondi</p>";
}
else
{
mail($receiverMail, $subject, $msgformat, "From: $nome <$email>");
header("Refresh: 2; URL=.www_misteri-patricia-cornwell .com");
echo "<h3>Il modulo di richiesta e' stato inoltratto!</h3><p>Verrete ricontattati il prima possibile.</p>";
?>
</body>
</html>
-
shjana sostituisci il codice vecchio con quello che ti ho ripostato manca la fine del ciclo while proprio nel finire del codice io l'ho provato (inserendo direttamente i valori per fare prima :D) e funziona l'e-mail mi è arrivata e tutto Facci sapere se a te va
-
L'ho fatto ma non funziona, può essere un problema del server?
-
allora sono andato sul tuo sito e nella pagina Contatti.html te hai cambiato i nomi dei campi modulo:
[HTML]
<form name="form1" method="post" action="mail2.php">
<p align="center">Nominativo:
<input type="text" name="textfield">
</p>
<p align="center">
E-mail: <input type="text" name="textfield"> </p> <p align="center">
Oggetto:
<input type="text" name="textfield">
</p>
<p align="center">Messaggio:
<textarea name="textarea"></textarea>
</p>
<p align="center">
<input type="submit" name="Submit" value="Invia">
<input name="Reset" type="reset" id="Reset" value="Ripristina">
</p>
</form>
[/HTML]
Al posto di quel form metti questo che è uguale e cambiano i nomi:
[HTML]
<form name="form1" method="post" action="mail2.php">
<p align="center">Nominativo:
<input type="text" name="nick">
</p>
<p align="center">
E-mail: <input type="text" name="mail"> </p> <p align="center">
Oggetto:
<input type="text" name="oggetto">
</p>
<p align="center">Messaggio:
<textarea name="messaggio"></textarea>
</p>
<p align="center">
<input type="submit" name="Submit" value="Invia">
<input name="Reset" type="reset" id="Reset" value="Ripristina">
</p>
</form>
[/HTML]
Però non sono sicuro che risolvi...comunque sistemalo e poi al massimo facciamo una prova veloce se è il tuo server che rompe ma non penso