- Home
- Categorie
- Coding e Sistemistica
- Help Center: consigli per il tuo progetto
- Come si crea il modulo contatti nel sito?
-
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
-
Fatto, ma l'errore me lo da lo stesso. Non è che magari usano l'asp?
Comunque questo è l'errore, sempre sul file .phpParse error: parse error in d:\hosting\misteri-patricia-cornwell.com\wwwroot\mail2.php on line 40
-
Ma la linea 40 non è l'else?
strana sta cosa, comunque non demoralizziamoci proviamo il funzionamento del tuo server crea una pagina chiamata prova.php e mettici dentro questo codice:
[php]
<?PHP
$nome="scwd";
$oggetto="prova";
$mess="bla bla bla";
$mail_tua="[email protected]";
$corpo="Da $nome:
$mess.";
$header = "From: Dal tuo sito\n";
if( @mail($mail,$oggetto,$corpo,$header))
{echo "e-mail inviata con successo.";}
else
{echo "Errore! E-mail non inviata!}
?>
[/php]
Provala così com'è e vedi se ti invia un'e-mail...Apri direttamente la pagina tuosito.it/prova.php e dovrebbe inviartela...però a me funziona l'altro script...mah...
-
Niente da fare, ormai sono demoralizzata.
Probabilmente non sono capace di fare un modulo, sigh sigh