realizzare form mail con dreamweaver

spelletri

Nuovo Utente
30 Gen 2010
3
0
0
salve a tutti,
sarei molto felice se qualche buona anima riuscisse a spiegarmi in parole semplici come creare un form mail da inserire in un sito in html con dreamweaver.
dato che sono alle prime armi, mi potete aiutare a capire come fare????

grazieee anticipatamente.
 
I form mail non si possono fare solo in HTML, c'è bisogno di un linguaggio dinamico come PHP o ASP. Vedo che non vuoi starti troppo a scervellare su come funzionano, quindi se mi dici quali campi ti serve che li utenti compilino, posso pensarci direttamente io :D
 
In realtà, giusto per completezza, esiste la possibilità di realizzare un form mail che avvia il Mail Agent di Default (Es. Thunderbird o Outlook Express) con i campi dell'email già prevalorizzati a quanto inserito nella form.

Tuttavia, come sguggeriva Alex è meglio l'altro approccio sopratutto poichè NON tutti i client hanno impostata l'opzione del mail agent di default.

Ciao, Ciro
 
ciao a tutti e grazie x il supporto..

allora alessandro1997 mi servirebbe un form con NOME
COGNOME
E-MAIL
MESSAGGIO

INVIA RESET

mi farebbe piacere xò se mi spiegassi cm si fa,io cn dreamweaver creo il form xò poi nn funziona, cm se mancasse qualche codice per farlo partire mi sn spiegata??sxo di sì... scusate il linguaggio poco tecnico xò sxo di farmi capire lo stesso. grazie ancora!!
 
Finché userai questo linguaggio da SMS ti farai capire veramente poco, quindi cura il tuo Italiano :D
Comunque sto lavorando al tuo script, tra poco lo posto.

EDIT: Ecco il tuo script. Crea sul tuo spazio Web, nella stessa cartella, un file form.php (è importante che si chiami così) contenente questo codice:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>Invia e-mail</title>
		<meta http-equiv="content-type" content="text/html;charset=utf-8" />
	</head>

	<body>
		<h1>Invia e-mail</h1>
		<?php
		if(isset($_GET['err']))
		{
		?>
		<p style="color: red;"><?php echo $_GET['err']; ?></p>
		<?php
		}
		elseif(isset($_GET['sent']))
		{
		?>
		<p style="color: green;">Il messaggio &egrave; stato inviato con successo!</p>
		<?php
		}
		?>
		<form action="send.php" method="post">
			<table cellspacing="10">
				<tr>
					<td><label>Nome:</label></td>
					<td><input type="text" name="name" /></td>
				</tr>
				<tr>
					<td><label>Cognome:</label></td>
					<td><input type="text" name="surname" /></td>
				</tr>
				<tr>
					<td><label>E-mail:</label></td>
					<td><input type="text" name="email" /></td>
				</tr>
				<tr>
					<td><label>Messaggio:</label></td>
					<td><textarea name="message" cols="50" rows="5"></textarea></td>
				</tr>
				<tr>
					<td><input type="submit" name="submit" value="Invia" /></td>
					<td><input type="reset" name="reset" value="Resetta" /></td>
				</tr>
			</table>
		</form>
	</body>
</html>
E poi crea un file send.php contenente questo:
PHP:
<?php
// specifica la tua email e l'oggetto del messaggio
$your_email = '[email protected]';
$subject = 'Nuovo messaggio';

// funzione per la visualizzazione degli errori
function show_error($errtxt)
{
	// creo la query per la pagina
	$query = array('err' => $errtxt);
	$query = http_build_query($query);
	
	// reindirizzo alla pagina
	header("Location: form.php?{$query}");
	
	// interrompo lo script
	exit();
}

// se il form è stato inviato
if(isset($_POST['submit']))
{
	// recupero i dati inviati
	$name    = isset($_POST['name'])    ? trim($_POST['name'])    : '';
	$surname = isset($_POST['surname']) ? trim($_POST['surname']) : '';
	$email   = isset($_POST['email'])   ? trim($_POST['email'])   : '';
	$message = isset($_POST['message']) ? trim($_POST['message']) : '';
	
	// controlla che i campi non siano vuoti
	if($name == '')
		show_error('Non hai inserito il tuo nome.');
	if($surname == '')
		show_error('Non hai inserito il tuo cognome.');
	if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))
		show_error('L\'e-mail che hai fornito non &egrave; valida.');
	if($message == '')
		show_error('Non hai inserito il tuo messaggio.');
	
	// crea il messaggio da inviare
	$msgtxt = "Un nuovo messaggio ti è stato inviato da un utente.\n";
	$msgtxt = "L'utente ha fornito queste informazioni:\n";
	$msgtxt = "---------------------------------------------------\n";
	$msgtxt = "Nome: {$name}\n";
	$msgtxt = "Cognome: {$surname}\n";
	$msgtxt = "E-mail: {$email}\n";
	$msgtxt = "---------------------------------------------------\n";
	$msgtxt = "{$message}\n";
	$msgtxt = "---------------------------------------------------\n";
	$msgtxt = "L'indirizzo IP dell'utente è {$_SERVER['REMOTE_ADDR']}.";
	
	// tenta di inviare il messaggio
	if(!mail($your_email, $subject, $msgtxt))
		show_error('Impossibile inviare il messaggio. Riprova pi&ugrave; tardi.');
	
	// visualizza il messaggio di avvenuto invio
	header('Location: form.php?sent=true');
}
// altrimenti
{
	// reindirizza al file del form
	show_error('Non hai inviato i dati. Ritenta.');
}
?>
Per qualsiasi problema o eventuale modifica da apportare fammi sapere ;)
 
Ultima modifica:
ciao alessandro 1197
grazie mille, sei davvero gentile ora provo e ti faccio sapere. se ho capito bene form.php devo salvarlo nella cartella principale del mio sito? e pure send.php? :book:
 
aggiunta accettazione legge a questo form

Ciao Alessandro1997,
sono nuova in questo forum e grazie a questo post, che cercavo da un po', ho trovato la risposta ai miei problemi! :)

Posso intromettermi per chiederti un'implementazioncina in questo form? Avrei bisogno di inserire anche il consenso al trattamento dei dati personali, secondo la legge sulla privacy, tramite i classici <input type="radio" name="radio" id="No" value="No" /> e <input type="radio" name="radio" id="Si" value="Si" />

Cosa va inserito in send.php? Inoltre il consenso dovrebbe essere obbligatorio.

Grazie mille :):):):):):):):):)
 
Modifica la pagina con il form così:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Invia e-mail</title>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    </head>

    <body>
        <h1>Invia e-mail</h1>
        <?php
        if(isset($_GET['err']))
        {
        ?>
        <p style="color: red;"><?php echo $_GET['err']; ?></p>
        <?php
        }
        elseif(isset($_GET['sent']))
        {
        ?>
        <p style="color: green;">Il messaggio &egrave; stato inviato con successo!</p>
        <?php
        }
        ?>
        <form action="send.php" method="post">
            <table cellspacing="10">
                <tr>
                    <td><label>Nome:</label></td>
                    <td><input type="text" name="name" /></td>
                </tr>
                <tr>
                    <td><label>Cognome:</label></td>
                    <td><input type="text" name="surname" /></td>
                </tr>
                <tr>
                    <td><label>E-mail:</label></td>
                    <td><input type="text" name="email" /></td>
                </tr>
                <tr>
                    <td><label>Messaggio:</label></td>
                    <td><textarea name="message" cols="50" rows="5"></textarea></td>
                </tr>
                <tr>
					<td><label>Privacy:</label></td>
					<td>
						<input type="radio" name="privacy" value="1" /> Consento il trattamento dei dati <br />
						<input type="radio" name="privacy" value="0" /> Non consento il trattamento dei dati
					</td>
                </tr>
                <tr>
                    <td><input type="submit" name="submit" value="Invia" /></td>
                    <td><input type="reset" name="reset" value="Resetta" /></td>
                </tr>
            </table>
        </form>
    </body>
</html>
E send.php così:
PHP:
<?php
// specifica la tua email e l'oggetto del messaggio
$your_email = '[email protected]';
$subject = 'Nuovo messaggio';

// funzione per la visualizzazione degli errori
function show_error($errtxt)
{
    // creo la query per la pagina
    $query = array('err' => $errtxt);
    $query = http_build_query($query);
    
    // reindirizzo alla pagina
    header("Location: form.php?{$query}");
    
    // interrompo lo script
    exit();
}

// se il form è stato inviato
if(isset($_POST['submit']))
{
    // recupero i dati inviati
    $name    = isset($_POST['name'])    ? trim($_POST['name'])    : '';
    $surname = isset($_POST['surname']) ? trim($_POST['surname']) : '';
    $email   = isset($_POST['email'])   ? trim($_POST['email'])   : '';
    $message = isset($_POST['message']) ? trim($_POST['message']) : '';
    $privacy = isset($_POST['privacy']) ? $_POST['privacy']       : 0;
    
    // controlla che i campi non siano vuoti
    if($name == '')
        show_error('Non hai inserito il tuo nome.');
    if($surname == '')
        show_error('Non hai inserito il tuo cognome.');
    if(!preg_match('/^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$/', $email))
        show_error('L\'e-mail che hai fornito non &egrave; valida.');
    if($message == '')
        show_error('Non hai inserito il tuo messaggio.');
    if(!$privacy)
		show_error('Non hai dato il consenso al trattamento dei dati.');
	
    // crea il messaggio da inviare
    $msgtxt = "Un nuovo messaggio ti è stato inviato da un utente.\n";
    $msgtxt = "L'utente ha fornito queste informazioni:\n";
    $msgtxt = "---------------------------------------------------\n";
    $msgtxt = "Nome: {$name}\n";
    $msgtxt = "Cognome: {$surname}\n";
    $msgtxt = "E-mail: {$email}\n";
    $msgtxt = "---------------------------------------------------\n";
    $msgtxt = "{$message}\n";
    $msgtxt = "---------------------------------------------------\n";
    $msgtxt = "L'indirizzo IP dell'utente è {$_SERVER['REMOTE_ADDR']}.";
    
    // tenta di inviare il messaggio
    if(!mail($your_email, $subject, $msgtxt))
        show_error('Impossibile inviare il messaggio. Riprova pi&ugrave; tardi.');
    
    // visualizza il messaggio di avvenuto invio
    header('Location: form.php?sent=true');
}
// altrimenti
{
    // reindirizza al file del form
    show_error('Non hai inviato i dati. Ritenta.');
}
?>
Non l'ho testato, ma non dovrebbe dare problemi. Fammi sapere!
 
personalizzazione

Ciao Alessandro, ho trovato il tuo codice molto utile e quindi ti ringrazio per questo. Non riesco però a fare una personalizzazione. A me serve solo il check sul acconsento o non acconsento e se l'utente spunta acconsento l'invia mi deve portare in un'altra pagina e non spedire la mail. Come posso fare???
Non so se sono stato chiaro....
Aspetto notizie e grazie in anticipo...
 
fabio

ciao alessandro
ho provato a ricopiare il tutto ma sulla mia e-mail ritorna solo la risposta dellindirizzo IP
e quando faccio INVIO mi esce sempre "Non hai inviato i dati Ritenta"

perchè??
 
Problemi sui codici sopra indicati da alessandro1997

Carissimo Alessandro,
per il mio sito web, ho creato due pagine: una form.php e l'altra send.php.
Orbene, ho inserito integralmente i tuoi codici ed ho inserito il mio indirizzo mail nell'apposito rigo nella pagina send.php, come da te indicato.
Ho effettuato delle prove e funzionano tutti gli avvisi di errori, ma quanto provo a completare correttamente il form ed effettuare la spedizione mi esce il seguente errore:

"Impossibile inviare il messaggio. Riprova più tardi."

In cosa o dove ho sbagliato?
Attendo gentili risposte. Grazie.

Chevriere
 
Ottimo codice, ma ho un problema!

Ciao Alessandro!
Sto creando un sito in linguaggio HTML utilizzando Dreamviewer e volevo inserire questo form per l'invio dei messaggi allo Staff.
L'invio mi da problemi, espondendomi la pagina con il "ritenta" per intenderci...
Inoltre, volevo chiederti, sarebbe possibile far ricaricare, e quindi apparire i messaggi d'errore e/o di conferma, nella stessa pagina in cui ho il form? Come dovrei fare? Grazie mille per l'aiuto!
 
Creare un form che in seguito mandi una mail

Salve, mi sono iscritta da poco e vendendo i vostri commenti, mi sono chiesta se potevo avere una mano anch'io da voi... Ho creato un questionario con vari campi in html, ma la funzionalità, che dovrebbe essere in php non la so fare ed è un po' complicata... C'è qualcuno che mi potrebbe dare una mano?????
Grazie.. debby...:)
 
ciao
posta la tua domanda nella sezione php (già era sbagliata tutta la precedente che avrebbe dovuto essere in html).
poi nella sezione con la tua domanda spiega quello che vuoi fare eventualmente postando il form che hai fatto
 

Discussioni simili