Form Mail

Alice De Gaetani

Nuovo Utente
3 Ott 2013
8
0
0
Ciao a tutti! Ho provato a capire come fare leggendo le discussioni precedenti, ma sono troppo alle prime armi e non sono riuscita nel mio intento. Vorrei riuscire a creare un form per dare la possibilità agli utenti che visitano il mio sito di mandarmi un messaggio (inserendo il proprio nome e cognome, la propria mail e poi il testo) che mi arrivi nella mia casello di posta gmail.

Quello che ho fatto fino ad adesso è stato creare due file .php (form.php | send.php) con due codici che ho preso qui sul forum. Ma non so concretamente creare la form e collegarla ai due file php.

Grazie, Alice.
 

Alice De Gaetani

Nuovo Utente
3 Ott 2013
8
0
0
Nello specifico mi sono creata questo form, con il seguente codice e non so come procedere:

HTML:
<form>
<h1>Lasciami un messaggio!<br />
Send me a message!</h1>
<label for="nome"> Nome/Name:</label><input id="nome" type="text" size="39" maxlength="45" >
<label for="cognome"> Cognome/Surname:</label><input id="cognome" type="text" size="39" maxlength="45">
<label for="email"> Email:</label><input id="Email" type="text" size="39" maxlength="45">
<label for="testo"> Testo/Text:</label><textarea name="testo" id="Testo/Text" cols="32" rows="5" ></textarea>
<input type="submit" id="submit" name="submit" value="Invia/Send" />
</form>

form.JPG

Grazie, Alice.
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao devi mettere nel action del form il nome della pagina che elaborerà i dati
HTML:
<form action="send.php" method="post">
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Poi nella pagina send.php dovrai inviare la mail utilizzando i dati presi dal form ma credo tu l'abbia già preso il codice della pagina :)
 

Alice De Gaetani

Nuovo Utente
3 Ott 2013
8
0
0
non riesco :(

allora questo è l'html del form:

HTML:
<form action="send.php" method="post">
<h1>Lasciami un messaggio!<br />
Send me a message!</h1>
<label for="nome"> Nome/Name:</label><input id="nome" type="text" size="39" maxlength="45" >
<label for="surname"> Cognome/Surname:</label><input id="cognome" type="text" size="39" maxlength="45">
<label for="email"> Email:</label><input id="Email" type="text" size="39" maxlength="45">
<label for="message"> Testo/Text:</label><textarea name="testo" id="Testo/Text" cols="32" rows="5" ></textarea>
<input type="submit" id="submit" name="submit" value="Invia/Send" />
</form>

questo il contenuto di send.php (che ho preso qui dal sito):

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.');
}
?>

Al momento quando clicco su 'invia" visualizzo nella pagina web il file send.php e non arriva alcuna mail nella mia casella di posta.

Sappiate che sono davvero alle prime armi.

Grazie per l'attezione, Alice.
 
Ultima modifica di un moderatore:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Potrebbe anche essere la funzione mail().
Prima verifica che i dati arrivino tutti e poi se ancora non hai risolto prova ad usare phpmailer.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non ho guardato bene il codice, ma, anche da altri post, il problema può essere che gmail non vada d'accordo con la funzione mail().
anche altri non funziano es libero, email e altri.
il problema da molti è stato risolto abbandonando la funzione mail() e passando alla classe phpmailer (o simile).
detteo questo per un form di invio così ti conviene fare una pagina sola.

p.s.
puoi postare il link dove hai preso lo script
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
anche hotmail rientra in quelli che non funziano.
attenta però non è che lo script non invii è che vengono bloccate, cioè non è un problema di script
da varie discussioni sembra che sia un problema delle intestazioni dell'email.
per quello ti dicevo di passare alla classe phpmailler o simile.
una cosa considerato che hai un sito (dominio) per caso non hai la casella email con il nome del dominio (es. info@tuo_dominio.it)?
se l'hai e usi la funzione mail indirizzata a tale casella le amail le ricevi
 

Alice De Gaetani

Nuovo Utente
3 Ott 2013
8
0
0
Allora ragazzi, rieccomi!

L'email adesso arriva :mavieni:

però ci sarà ancora qualche problema nel codice, perché l'email contiene solo l'indirizzo ip e non i dati e il messaggio e in secondo luogo (come potete vedere se vi collegate a alicedegaetani.com) quando si clicca invia tutto il form mi appare in un'altra pagina e continua a dire che non ci sono tutti i dati, che manca il nome, ecc.

Possibili soluzioni?

Grazie, Alice.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
A me esce solo " La mail è stata inoltrata con successo. ".
Vuol dire che in questi 20 giorni hai risolto? :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Mancano i name ai tag input
HTML:
<input id="nome" type="text" size="39" maxlength="45" >
cambia
HTML:
<input id="nome" name="name" type="text" size="39" maxlength="45" >
altrimenti il dato non passa
PHP:
$name    = isset($_POST['name'])    ? trim($_POST['name'])    : '';
 
Discussioni simili
Autore Titolo Forum Risposte Data
U PHP bottone per invio mail o ritorno al form PHP 15
I [PHP] inviare form con allegato tramite una mail PHP 1
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
Cosina Andare a capo nel testo della mail ricevuta dal form php PHP 1
paloppa [PHP] Invio mail da form dubbio PHP 17
F Form mail php errore invio PHP 5
allegria [PHP] Ricevo una doppia mail dal form PHP 6
ecosito [PHP] Attivare il form mail di un template PHP 2
Samuele Ronzani Form mail HTML HTML e CSS 7
utente Form mail php - indirizzo ip PHP 9
I form invio mail HTML e CSS 1
Francesco Polese Errore form invio mail+php PHP 22
F Form mail HTML e CSS 14
P invio mail da form con dati php PHP 7
W Estrapolare un indirizzo mail di un form durante l'invio PHP 5
P Creare form e inviare via mail HTML e CSS 2
I invio mail da form PHP 1
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
R form mail in copiavuote PHP 3
F Problemi con ricezione mail dal form PHP 8
D form mail non funzionante PHP 1
Il Matta Problema Form e invio mail PHP 2
M non ci do fuori con il form mail PHP 1
M Form mail con dreamweaver cs6 PHP 2
S inviare the_title() in una mail tramite form html/php PHP 0
B Problema form mail per invio doppio allegato PHP 1
A Problema orario invio mail per form PHP 4
L Sviluppare form mail con allegato PHP 6
S Form per mandare la mail HTML e CSS 2
S php form invio mail PHP 3
L Form con invio mail PHP 1
U form mail per inviare tracciabilità corriere PHP 0
A Form mail php - ajax PHP 9
M Adattare script di "form mail con upload file" al mio form mail HTML! PHP 7
M form mail con allegato e immagine Classic ASP 4
M Form Mail: come farlo girare su server Windows? HTML e CSS 1
S Form mail php invia mail senza contenuto PHP 15
A form in php o html per raccolta mail PHP 4
E Form invio e-mail con allegato PHP 51
E Form invio e-mail con allegato PHP 0
E form mail con mysql PHP 18
N Form invio Mail con Allegato PHP 2
IImanuII Form mail in php e gmail.... PHP 0
P Inviare mail da form php anche al mittente PHP 37
C problema invio mail con form php PHP 0
IImanuII Form mail scelta se inviare il testo in html PHP 5
F Problema form mail PHP 13
F Mail con un form post PHP 3
YellowMan Form mail per WordPress in italiano WordPress 2
S Problema form mail matt's script archive PHP 3

Discussioni simili