- Home
- Categorie
- Coding e Sistemistica
- Help Center: consigli per il tuo progetto
- Come si crea il modulo contatti nel sito?
-
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
-
Il modulo che ti ho postato è perfettamente funzionante..
L unica cosa che dovevi sostituire è l indirizzo e-mail..
Poi dove c è la voce:
header("Refresh: 2; URL=.www_misteri-patricia-cornwell .com");
dove tu hai inserito www_miste........
Li va inserito l indirizzo dove hai la sezione contatti, in modo che quando l e-mail viene spedita, vengano rindirizzati nella stessa sezioni per dar modo di riscrivere una mail, se voluto ovviamente..
Ma l indirizzo l ho devi scrivere completo di http.....
Che sistema del menga questo forum, che non si possono scrivere gli indirizzi..Dai che è una cazzata, ci sono riuscito io che l ho creato sotto un tutorial...figurati se l avessi avuto pronto...
Poi, te lo ritrovavi su un lato perche devi posizionarlo dove vuoi tu, cambiando le cordinate nella stringa, ossia quei numeri 430px 360px, giocati e vedi come posizionarlo..
<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">facci sapere...
-
Mattley ha ragione, poi comunque il problema è nel file .php anche se hai rifatto il modulo non fa niente i nomi delle variabili ora come ti ho detto io prima sono giusti quindi ricopiaci l'intero contenuto attuale di mail.php e vediamo di nuovo