View Full Version : Form per inviare email
DesmoColo
03-05-2007, 23:04
CIao a tutti. VOrrei fare una pagina html con all'interno una textrea, dove un utente possa scrivere il testo. Una volta scritto, L'utente clicca su un bottone e a quel punto viene inviata al mio indirizzo di posta. Ecco in dettaglioi la mia situazione:
Uso dreamweaver cs3, e ho inserito nella pagina paginaform.html il form ed il bottone;
Ho una pagina mail.php dove è contenuta la funzione mail() già implementata.
Veniamo al nocciolo:Mi servirebbe una funzioncina che premuto il bottone estragga il contenuto del form e la passi a mail.php?
come faccio a estrapolare il testo scritto dall'utente e passarlo come parametro alla mail.php?Come si associa in html una funzione a un bottone? Dove va definita?
Scusate se alcune domande possono sembrare banali, ma è la prima volta che mi trovo ad affrontare problematiche simili....
scostante
04-05-2007, 12:13
Non c'è bisongo di definire nessuna funzione, ma il codice html da inserire dipende da cosa accetta il tuo script php. In linea di massima passerai una richiesta post tramite un form:
<FORM ACTION="/path_verso_lo_script/mail.php" METHOD="POST">
Indirizzo email: <INPUT NAME="indirizzo" SIZE="50" TYPE="TEXT">
Messaggio: <TEXTAREA NAME="messaggio" ROWS="10" COLS="60"></TEXTAREA>
<INPUT TYPE="submit" VALUE="Invia" />
</FORM>
Al posto dei vari "name" dovrai ovviamente inserire il valore delle variabili che lo script prevede di ricevere. Sei hai difficoltà posta il contenuto dello script.
DesmoColo
05-05-2007, 09:13
$name = "mioindirizzo@gmail.com";
$email = $nome;
$to = $name;
$subject = "questo e' il soggetto della prova email";
$headers = "From:Luca n";
$headers .= "Reply-To:Luca";
$message = "$name:\n";
$message .= "questa è la mail per conto di di luca siamo avanti.\n";
$message .= "Please send payment to our company address.\n\n";
$message .= "Thank You.\n\n";
$mail_sent = mail( $to, $subject, $message,$headers);
echo $mail_sent ? "Mail sent" : "Mail failed";
Non ho capito se il codice del form che mi hai dao devo metterlp in una pagina php oppure va bene che sia html...:help:
scostante
06-05-2007, 13:28
No, mi sai che non hai proprio ben presente cosa vuoi fare! :)
Come faccio io a sapere se la pagina in cui c'è il form "mandami una mail" è uno script php o una pagina html?!?! Il codice che ti ho scritto è html! Ma hai almeno provato a metterlo in una pagina html vuota per provarlo?!?:mbe:
Lo script php opera in base a variabili il cui valore viene passato da una pagina html o php (il php serve per renderizzare l'html, il browser legge l'html, mica il php!!!). Il tuo script così com'è non accetta alcun valore. Se lo chiami da un link ti manda una mail "preconfezionata". Punto. Se non riesci a capire quello che c'è nello script php siamo messi male...
Lo script usa la funzione: mail($to, $subject, $message,$headers) dove gli elementi all'interno della parentesi sono i parametri della funzione: a chi la mando ($to), oggetto ($subject) e così via.
Il tuo script include tali parametri come variabili, ma definisce già di suo il loro valore a prescindere dai contenuti di un form:
$name = "mioindirizzo@gmail.com";
$email = $nome; //variabile inutile, non viene usata nel resto dello script
$to = $name;
$subject = "questo è il soggetto della prova email";
$headers = "From:Luca n";
$headers .= "Reply-To:Luca";
$message = "$name:\n";
$message .= "questa è la mail per conto di di luca siamo avanti.\n";
per fare quello che dici tu dovresti almeno fare così:
$name = "mioindirizzo@gmail.com";
$to = $name;
$mittente = $_POST['indirizzo'];
$messaggio_originale = $_POST['messaggio'];
$subject = "questo è il soggetto della prova email";
$headers = "From: " . $mittente . " Reply-To: " . $mittente;
$message = $name . ":\n questa è la mail per conto di " . $mittente . "\n";
$message .= $messaggio_originale;
$mail_sent = mail($to, $subject, $message, $headers);
echo $mail_sent ? "Mail sent" : "Mail failed";
Come puoi vedere il valore che viene assegnato a $mittente ed a $messaggio è quello definito nel form che ti ho postato l'altra volta.
<INPUT NAME="indirizzo" (...) -> $_POST['indirizzo']
<TEXTAREA NAME="messaggio" (...) -> $_POST['messaggio']
Lascio a te (come esercizio) modificare il campo "oggetto" per fare in modo che l'utente possa specificare l'oggetto della mail che ti arriva. E mi aspetto di vedere la soluzione in questo thread!!! ;)
In ogni caso uno script del genere non è sicuro: non controlla che l'indirizzo inserito dall'utente sia corretto, non controlla il contenuto del textarea, non controlla che effettivamente sia un essere umano a cliccare... Non è assolutamente adatto ad essere messo online, ma vediamo di farlo funzionare lo stesso.
DesmoColo
11-05-2007, 13:03
Ho risolto! Adesso ho capito come passare i parametri!
PS: $_POST["soggetto"];
dove soggetto è il nome della textarea
;-)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.